windows 下部署apollo多环境服务

 

一、单环境部署

 

1.按照官方文档步骤操作

https://github.com/nobodyiam/apollo-build-scripts

 

2.修改demo.sh

原:

Apollo服务端需要知道如何连接到你前面创建的数据库,所以需要编辑demo.sh,修改ApolloPortalDB和ApolloConfigDB相关的数据库连接串信息。

注意:填入的用户需要具备对ApolloPortalDB和ApolloConfigDB数据的读写权限。

#apollo config db info
apollo_config_db_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
apollo_config_db_username=用户名
apollo_config_db_password=密码(如果没有密码,留空即可)

# apollo portal db info
apollo_portal_db_url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
apollo_portal_db_username=用户名
apollo_portal_db_password=密码(如果没有密码,留空即可)
注意:不要修改demo.sh的其它部分

修改后:

apollo_config_db_url=jdbc:mysql://localhost:3306/apolloconfigdb?serverTimezone=UTC
apollo_config_db_username=root
apollo_config_db_password=root

# apollo portal db info
apollo_portal_db_url=jdbc:mysql://localhost:3306/apolloportaldb?serverTimezone=UTC
apollo_portal_db_username=root
apollo_portal_db_password=root

2.1.注意:此处我将 characterEncoding=utf8 替换成serverTimezone=UTC 如果没替换会报错

报错信息:           

java.sql.SQLException: The server time zone value '?ț???????' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:76)
	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)
	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455)
	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)
	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
	at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:117)
	at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:123)
	at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:365)
	at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:194)
	at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:460)

2.2.如果 characterEncoding=utf-8&serverTimezone=UTC 同时存在也会异常 


***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine suitable jdbc url


Action:

Consider the following:
	If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
	If you have database settings to be loaded from a particular profile you may need to activate it (the profiles github are currently active).

 

3.修改之后启动

 

4.启动成功

5.http://localhost:8070/

 

二、多环境部署

注意:

apollo-portal 服务和 ApolloPortalDB 数据库只需要在生产环境部署一套

apollo-configservice、apollo-adminservice 服务和 ApolloConfigDB 需要在每个环境部署各一套

各个服务:

环境地址服务名
localhost:8070apollo-portal
DEVlocalhost:8080
localhost:8090
apollo-configservice
apollo-adminservice
PROlocalhost:8081
localhost:8091
apollo-configservice
apollo-adminservice

数据库:

环境地址数据表名称
localhost:3306ApolloPortalDB
DEVlocalhost:3306ApolloConfigDB
PROlocalhost:3306ApolloConfigDB2

1.按照需要做好准备工作

https://github.com/ctripcorp/apollo/wiki/%E5%88%86%E5%B8%83%E5%BC%8F%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97#221-%E8%8E%B7%E5%8F%96%E5%AE%89%E8%A3%85%E5%8C%85

2.获取安装包

  这边不需要点别的操作,直接从GitHub Release页面下载预先打好的安装包(取最新的即可)

 

3.解压

注意:在windows模拟多环境portal只需要一个就好,但是adminservice和configservice都需要两份

4.数据库准备

  

apolloconfigdb每个环境都需要自己各自的库所以拷贝了一份apolloconfigdb2

5. 修改配置
apollo-configservice-1.7.1-github

打开config目录下application-github.properties,修改DB地址

spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8&serverTimezone=UTC
spring.datasource.username = root
spring.datasource.password = root

apollo-configservice-1.7.1-github2

打开config目录下application-github.properties,修改DB地址

apollo-adminservice-1.7.1-github

打开config目录下application-github.properties,修改DB地址

# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8&serverTimezone=UTC
spring.datasource.username = root
spring.datasource.password = root

apollo-adminservice-1.7.1-github1 

打开config目录下application-github.properties,修改DB地址

# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB2?useSSL=false&characterEncoding=utf8&serverTimezone=UTC
spring.datasource.username = root
spring.datasource.password = root

apollo-portal-1.7.1-github

# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloPortalDB?useSSL=false&characterEncoding=utf8&serverTimezone=UTC
spring.datasource.username = root
spring.datasource.password = root

 

6.修改多环境配置

6.1添加多环境配置:

dev.meta=http://localhost:8080
pro.meta=http://localhost:8081

6.2 数据库中加入上面的dev,pro,多环境直接“,”隔开

6.3  修改 apolloconfigdb2  http://localhost:8081/eureka/

启动configservice的时候会启动其自带的Eureka。adminservice需要注册到Eureka中,apollo-configservice-1.7.1-github1和apollo-adminservice-1.7.1-github2链接的是apolloconfigdb2 

根据7.3启动的端口8081,eureka.service.url修改为http://localhost:8081/eureka/,adminservice才能注册到正确的Eureka

7.启动五个jar包

启动要按照configservice、adminservice、portal 的顺序启动。因为启动configservice的时候会启动其自带的Eureka。adminservice需要注册到Eureka中。portal需要发现各环境的adminservice。
这里特别注意,多环境下,一定要先将所有环境的adminservice和configservice都启动后,最后再启动portal。     

  

   7.1  F:\projectjar\apollo\apollo-configservice-1.7.1-github  ------  java -jar apollo-configservice-1.7.1.jar --server.port=8080
     
   7.2  F:\projectjar\apollo\apollo-adminservice-1.7.1-github  ------  java -jar apollo-adminservice-1.7.1.jar --server.port=8090
     
    7.3 F:\projectjar\apollo\apollo-configservice-1.7.1-github1  ------  java -jar apollo-configservice-1.7.1.jar --server.port=8081
     
    7.4 F:\projectjar\apollo\apollo-adminservice-1.7.1-github2  ------  java -jar apollo-adminservice-1.7.1.jar --server.port=8091
         
    7.5 F:\projectjar\apollo\apollo-portal-1.7.1-github                 ----- java -jar apollo-portal-1.7.1.jar --server.port=8070

8. 都启动成功后验证

8.1 localhost:8080

8.2  localhost:8081 

8.3  localhost:8070 可以看到两个环境

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值