一  apollo部署

0.euraka  自行部署,这里不做说明


1.下载
docker pull apolloconfig/apollo-configservice:2.4.0
docker pull apolloconfig/apollo-adminservice:2.4.0
docker pull apolloconfig/apollo-portal:2.4.0
下载 初始化数据库表两个https://github.com/apolloconfig/apollo/blob/master/scripts/sql/profiles/mysql-default/


3.导入mysql 两个数据库

4.修改数据库中表ServerConfig的配置   注意要修改  eureka.service.url=http://192.168.30.21:8848/eureka/

# 部署configservice,修改mysql地址、用户名密码
# 注意有坑,看下文踩坑! -e EUREKA_INSTANCE_IP_ADDRESS=172.22.176.1
docker run -p 8080:8080 \
    -e SPRING_DATASOURCE_URL="jdbc:mysql://fill-in-the-correct-server:3306/ApolloConfigDB?characterEncoding=utf8" \
    -e SPRING_DATASOURCE_USERNAME=FillInCorrectUser -e SPRING_DATASOURCE_PASSWORD=FillInCorrectPassword \
    -d -v D:/az/apollo/config:/opt/logs --name apollo-configservice apolloconfig/apollo-configservice:2.4.0

# 部署adminservice ,修改mysql地址、用户名密码
docker run -p 8090:8090 \
    -e SPRING_DATASOURCE_URL="jdbc:mysql://fill-in-the-correct-server:3306/ApolloConfigDB?characterEncoding=utf8" \
    -e SPRING_DATASOURCE_USERNAME=FillInCorrectUser -e SPRING_DATASOURCE_PASSWORD=FillInCorrectPassword \
    -d -v /tmp/logs:/opt/logs --name apollo-adminservice apolloconfig/apollo-adminservice:2.4.0
    
# 部署portal  ,修改mysql地址、用户名密码
# APOLLO_PORTAL_ENVS(可选): 对应ApolloPortalDB中的apollo.portal.envs配置项,如果没有在数据库中配置的话,可以通过此环境参数配置
#DEV_META/PRO_META(可选): 配置对应环境的Meta Service地址,以${ENV}_META命名,需要注意的是如果配置了ApolloPortalDB中的apollo.portal.meta.servers配置,则以apollo.portal.meta.servers中的配置为准
docker run -p 8070:8070 \
    -e SPRING_DATASOURCE_URL="jdbc:mysql://er:3306/ApolloPortalDB?characterEncoding=utf8" \
    -e SPRING_DATASOURCE_USERNAME=FillInCorrectUser -e SPRING_DATASOURCE_PASSWORD=FillInCorrectPassword \
    -e APOLLO_PORTAL_ENVS=dev,pro \
    -e DEV_META=http://fill-in-dev-meta-server:8080 -e PRO_META=http://fill-in-pro-meta-server:8080 \
    -d -v /tmp/logs:/opt/logs --name apollo-portal apolloconfig/apollo-portal:2.4.0

5. 分别启动三个应用
 这里注册euraka的地址需要指定为主机地址,否则会变成内部网络,导致java程序无法获取配置
docker run -p 8080:8080  -e EUREKA_INSTANCE_IP_ADDRESS=192.168.30.21  -e SPRING_DATASOURCE_URL="jdbc:mysql://XXXX:3306/ApolloConfigDB?characterEncoding=utf8"  -e SPRING_DATASOURCE_USERNAME=xxxx  -e SPRING_DATASOURCE_PASSWORD=xxxxxx  -d  -v D:/az/apollo/config:/opt/logs  --name apollo-configservice    apolloconfig/apollo-configservice:2.4.0
 
这里注册euraka的地址需要指定为主机地址,否则会变成内部网络,导致java程序无法获取配置
docker run -p 8090:8090 -e EUREKA_INSTANCE_IP_ADDRESS=192.168.30.21 -e SPRING_DATASOURCE_URL="jdbc:mysql://XXXXXXXX:3306/ApolloConfigDB?characterEncoding=utf8"   -e SPRING_DATASOURCE_USERNAME=xxvvvv   -e SPRING_DATASOURCE_PASSWORD=xxxxxx   -d -v D:/az/apollo/admin:/opt/logs  --name apollo-adminservice  apolloconfig/apollo-adminservice:2.4.0

这里需要设置3个环境  dev,test,prod
docker run -p 8070:8070 -e SPRING_DATASOURCE_URL="jdbc:mysql://xxxxxxxxx:27541/ApolloPortalDB?characterEncoding=utf8"   -e SPRING_DATASOURCE_USERNAME=xxxxxxxx -e SPRING_DATASOURCE_PASSWORD=xxxxxx  -e APOLLO_PORTAL_ENVS="dev,test,prod"  -e DEV_META=http://192.168.30.21:8080 -e TEST_META=http://192.168.30.21:8080 -e PROD_META=http://192.168.30.21:8080 -d -v D:/az/apollo/portal:/opt/logs  --name apollo-portal    apolloconfig/apollo-portal:2.4.0

6. 打开本地 http://localhost:8070/signin  登录   账号:apollo 密码:admin

7.修改 apollo 账号的密码 为xxxxx

8.添加用户  cladmin  密码为 xxxxx

9.管理员登录,然后修改系统参数http://localhost:8070/server_config_manage.html

特别强调要修改  organizations=[{"orgId":"clkf","orgName":"开发部"}]      apollo.portal.envs=DEV,TEST,PROD  
configView.memberOnly.envs=DEV,TEST,PROD      apollo.portal.meta.servers ={"DEV":"http://192.168.30.21:8072","TEST":"http://192.168.30.21:8072",,"PROD":"http://192.168.30.21:8072"}

http://192.168.30.21:8080/configs/cl-tssssss/default/application?ip=192.168.30.21

二 springboot 集成

   1.jar包依赖

<dependency>
    <groupId>com.ctrip.framework.apollo</groupId>
    <artifactId>apollo-client</artifactId>
    <version>2.4.0</version>
</dependency>

2.在启动类添加注解

@EnableApolloConfig

3.在aplication-xxx.properties里面添加

app.id=cl-sssss-server
apollo.meta=http://192.168.30.21:8080
env=TEST
apollo.cluster=default
apollo.bootstrap.enabled=true
apollo.bootstrap.eagerLoad.enabled=true
apollo.bootstrap.namespaces=application,cl.datasource,cl.redis,cl.eureka,cl.terminal.kafka
apollo.autoUpdateInjectedSpringProperties=true

更多推荐