# datacenter 

## 部署前需要的基础信息

1.物理世界的IP以及端口号

例如：
172.16.42.210:8080
 
2.activemq 的IP 端口号以及账号密码  

例如： 
user:admin 
password: admin
broker-url: tcp://172.17.11.222:61616

3.数据库地址 以及账号密码，数据中心使用的是postgresql  数据库 默认端口号为：5432

例如：
driver-class-name:                  org.postgresql.Driver
url:                                jdbc:postgresql://10.30.128.200:5432/datacenter
username:                           postgres
password:                           123qwe!@#

4.eureka 的IP以及端口号

例如：10.30.128.200:8761

### 调整项目yml 文件配置 

针对不同的私有项目部署会有不同的yml配置  因为每个项目使用的ip和端口号不能保证对接的项目都是一致的

![yml](./img/datacenter_001.png)

新建一个文件夹命名 -后面针对部署的项目的名称， 内部在建一个以项目名结尾的yml 

![yml](./img/datacenter_002.png)

yml文件内的内容：
```
# spring-cloud相关配置
eureka:
  client:                                   #客户端注册进eureka服务列表内
    service-url:
      defaultZone:                          http://eureka-service:8761/eureka

  instance:
    # 实例ID
    # instance-id:                            ${spring.application.name}:${server.port}:${project.version}
    # 优先使用IP地址方式进行注册服务
    prefer-ip-address:                      true

#启用监控
management:
  endpoints:
    web:
      exposure:
        include:
          - "*"  # 开放所有端点health，info，metrics，通过actuator/+端点名就可以获取相应的信息。默认打开health和info
  endpoint:
    health:
      #未开启actuator/health时，我们获取到的信息是{"status":"UP"}，status的值还有可能是 DOWN。开启后打印详细信息
      show-details:                       always

server:
  port: 28080

spring:
  datasource:
    url:                                jdbc:postgresql://data-center:5432/datacenter
    username:                           postgres
    password:                           123qwe!@#

  activemq:
    user:                               admin
    password:                           admin
    broker-url:                         tcp://activemq:61616

  servlet:
    multipart:
      max-request-size:                500MB        # 限制上传的多个文件的总大小
      max-file-size:                   500MB        # 限制单个文件的最大值

```

上面就是 新建的yml  文件中的内容 data-center 指的是数据中心数据库IP，activemq是MQ的IP，eureka-service是 eureka的IP

### build.gradle 配置

在build.gradle最后面添加如下代码
```
task buildProd {
    doFirst {
        sourceSets.main.resources.srcDirs = ["src/main/resources", "src/main/resources-prod"]
        test.onlyIf {
            project.hasProperty("needTest")
        }
    }
    finalizedBy(build)
}
```
然后更新 gradle 配置，就会看到人下图：

![yml](./img/datacenter_004.png)

点击buildProd 就会生成一个war包,直接复制到tomcat的webapps 文件夹中部署就可以了

![yml](./img/datacenter_005.png)


### hosts 文件配置
上面提到了data-center、activemq、eureka-service 是配置在服务器的hosts 文件中的，下面是可能用到的例子

```
172.17.11.174  api.sagacloud.cn
172.17.11.168  data-platform
172.17.11.168  activemq
172.17.11.175  qr-code
127.0.0.1  data-center
172.17.11.174  eureka-service
```

### 注意事项
注意在主文件yml 中 application下的名字，部署ibms 的时候会用到
![yml](./img/datacenter_006.png)





 




