docker部署Apollo配置中心

Apollo开源地址:https://github.com/ctripcorp/apollo

安装部署

1、把Apollo源码clone下来
在这里插入图片描述

2、添加docker-compose.yml 文件

version: "3"

services:
  apollo-configservice:                                         ##容器服务名
    container_name: apollo-configservice                        ##容器名
    build: apollo-configservice/src/main/docker/                ##Dockerfile路径
    image: apollo-configservice                                 ##镜像名
    ports:
      - "9080:8080"                                             ##容器端口映射
    volumes:
      - "/root/mydata/apollo/logs/100003171:/opt/logs/100003171"    ##将/opt/logs/100003171目录挂载到宿主机的/Users/mobin/opt/logs/100003171方便在宿主机上查看日志
    environment:
      - spring_datasource_url=jdbc:mysql:///:3306/ApolloConfigDB?characterEncoding=utf8
      - spring_datasource_username=root
      - spring_datasource_password=root

  apollo-adminservice:
    container_name: apollo-adminservice
    build: apollo-adminservice/src/main/docker/
    image: apollo-adminservice
    ports:
      - "9090:8090"
    depends_on:
      - apollo-configservice
    volumes:
      - "/root/mydata/apollo/logs/100003172:/opt/logs/100003172"
    environment:
      - spring_datasource_url=jdbc:mysql:///:3306/ApolloConfigDB?characterEncoding=utf8
      - spring_datasource_username=root
      - spring_datasource_password=root

  apollo-portal:
    container_name: apollo-portal
    build: apollo-portal/src/main/docker/
    image: apollo-portal
    ports:
      - "9070:8070"
    depends_on:
      - apollo-adminservice
    volumes:
      - "/root/mydata/logs/apollo/100003173:/opt/logs/100003173"
    environment:
      - spring_datasource_url=jdbc:mysql:///:3306/ApolloPortalDB?characterEncoding=utf8
      - spring_datasource_username=root
      - spring_datasource_password=root

3、下载Apollo包

将这三个包分别放到Apollo-adminservice、Apollo-portal、Apollo-configservice的docker包下面(不用解压)
在这里插入图片描述
4、修改dockerfile,将如下位置修改成自己下载的版本号,其他不用动
修改成自己下载的版本号述
5、执行下图中的两个sql文件,创建数据库,进行初始化
在这里插入图片描述
6、将整个项目打包成zip文件上传到Linux系统并执行以下命令
unzip apollo.zip
cd apollo
docker-compose up -d
然后看到以下命令输出,说明创建成功在这里插入图片描述
docker ps -a查看容器状况
在这里插入图片描述
如上图所示则为启动成功,如果不成功则输入以下命令查看日志
docker logs 容器id号
7、输入IP跟端口号http:///:9070就可以看到管理界面了
在这里插入图片描述
账号:apollo
密码:admin
进去就可以创建项目了 (test-01我创建的)在这里插入图片描述

【注意!】
【注意!】
【注意!】

上面容器启动后可能会报错,我就是在启动容器后报错
进入apollo-portal容器,修改配置文件,看我下图命令找到要修改文件在这里插入图片描述
将下面的IP地址改成宿主机的IP 端口号改成apollo-configservice容器映射的端口
在这里插入图片描述
修改数据库ApolloConfigDB的ServerConfig表中的eureka.service.url字段 将IP地址改成宿主机的IP 端口号改成apollo-configservice容器映射的端口
http://IP:9080/eureka/

然后基本就没有问题了,大功告成!!!

测试也说一下吧
pom.xml

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

properties

# 应用全局唯一的身份标识
app.id=test-01

spring.application.name=provider
# Apollo Meta Server 地址
apollo.meta = http://宿主机IP:9080
# 自定义本地配置文件缓存路径
#apollo.cacheDir = ./config
# 设置在应用启动阶段就加载 Apollo 配置
apollo.bootstrap.enabled=true
# 注入 application namespace
apollo.bootstrap.namespaces=mysql

controller name是Apollo中添加的一个配置

@RestController
public class TestController {

   @Value("${name}")
   private String gn;

   @GetMapping("/")
   public String list() {
       System.out.println(gn);

       return "11" + gn;
   }
}

事件监听

@Configuration
public class ApolloConfig {

    @Bean
    public void config() {
        // config instance is singleton for each namespace and is never null
        Config config = ConfigService.getAppConfig();
        config.addChangeListener(changeEvent -> {
            System.out.println("Changes for namespace " + changeEvent.getNamespace());
            for (String key : changeEvent.changedKeys()) {
                ConfigChange change = changeEvent.getChange(key);
                System.out.println(String.format("Found change - key: %s, oldValue: %s, newValue: %s, changeType: %s", change.getPropertyName(), change.getOldValue(), change.getNewValue(), change.getChangeType()));
            }
        });
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值