zoukankan      html  css  js  c++  java
  • apollo 项目配置中心开源框架部署

    apollo 于我带来的好处

    1. 项目之前的配置信息全部都在 resources 目录下,当然这里我使用的是 Spring Boot 搭建的项目。使用 apollo 后,配置信息全部转移到 apollo 中管理,之后在 apollo 中修改配置后,只需要重启服务器就好了。

    2. 热刷新 业务配置,修改 apollo 中的配置后,不需要重启服务器,直接再次访问接口,即可获取到配置中的信息。这里的热刷新肯定不是随口一说或者集成一下 apollo 就可以刷新,需要自己写代码,集成 apollo 的 client,监听 apollo 的配置修改,然后进行数据刷新。

    3. apollo 的功能还是很多的,比如 灰度发布 之后也需要用到。

    apollo 如何在 win 上启动

    1. 在 win 上一般情况下启动时,会出现数据库配置找不到的问题,解决方案如下

    2. 如果 端口 需要修改,就需要去调整 configservice、adminservice、portal 三个模块下的 application.yml 配置文件的 server.port 属性,并在改配置文件下面新增数据库配置

    spring
      datasource:
        url: jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
        username: root
        password: 123456
    

    3. 以上数据库的配置,根据不同的模块进行修改即可,然后按照下面所说的启动顺序去启动项目。

    apollo服务端部署步骤

    1. 下载 apollo master 的代码

    2. win 上修改 build.bat,mac 上修改 build.sh 文件里面的 MySql 数据库配置信息,包括 eurake 注册中心的端口修改

    3. 运行 build 文件

    4. 将 adminservice、configservice、portal 三个模块中 target 目录下的 xxx-github-xxx.zip 文件解压,并上传至 centos 服务器中

    5. 运行三个解压包中的 script 目录下的 start 脚本

    6. 访问路径 ip:port

    apollo service 启动顺序

    1. config service

    2. admin service

    3. portal service

    apollo client 配置步骤

    1. 引入 apollo-client 1.3.0 依赖

    2. 启动类上加上注解 @EnableApolloConfig

    3. yml or properties 配置文件中写上访问 apollo 的配置

    集成 apollo client 所需要注意的地方

    1. 依赖我使用的是 apollo-client 1.3.0 ,这个版本支持 yml 配置文件的。

    2. 将 apollo client 配置信息写在 application.properties 或者 bootstrap.properties/yml 都是可以的。

    3. 重点注意 apollo.meta 这个配置,配置指向的是 apollo 中 eurake 启动的地址,而不是,不是,不是 apollo管理界面的地址

    在 docker 容器中部署 apollo

    1. 编写 Dockerfile,默认 apollo 的源码是自带 Dockerfile

    > apollo-configservice 的 Dockerfile 配置,这里需要注意的是 unzip -d 会默认在指定的目录下创建一个解压文件包对应的名称目录,所以在赋予启动脚本命令及启动时,需要注意路径!
    
    > http://mirrors.aliyun.com/alpine/v3.8 使用 docker 构建镜像时,可能会下载失败,重启一下 docker 就可以正常下载了。
    
    > 重启命令:systemctl restart docker
    
    # Dockerfile for apollo-configservice
    # 1. Copy apollo-configservice-${VERSION}-github.zip to current directory
    # 2. Build with: docker build -t apollo-configservice .
    # 3. Run with: docker run -p 8080:8080 -d -v /tmp/logs:/opt/logs --name apollo-configservice apollo-configservice
    
    FROM openjdk:8-jre-alpine
    MAINTAINER ameizi <sxyx2008@163.com>
    
    ENV VERSION 1.5.0-SNAPSHOT
    ENV SERVER_PORT 8080
    # DataSource Info
    ENV DS_URL ""
    ENV DS_USERNAME ""
    ENV DS_PASSWORD ""
    
    RUN echo "http://mirrors.aliyun.com/alpine/v3.8/main" > /etc/apk/repositories 
        && echo "http://mirrors.aliyun.com/alpine/v3.8/community" >> /etc/apk/repositories 
        && apk update upgrade 
        && apk add --no-cache procps unzip curl bash tzdata 
        && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
        && echo "Asia/Shanghai" > /etc/timezone
    
    ADD apollo-configservice-${VERSION}-github.zip /apollo-configservice/apollo-configservice-${VERSION}-github.zip
    
    RUN unzip /apollo-configservice/apollo-configservice-${VERSION}-github.zip -d  /apollo-configservice 
        && rm -rf /apollo-configservice/apollo-configservice-${VERSION}-github.zip 
        && sed -i '$d' /apollo-configservice/apollo-configservice-${VERSION}-github/scripts/startup.sh 
        && chmod +x /apollo-configservice/apollo-configservice-${VERSION}-github/scripts/startup.sh 
        && echo "tail -f /dev/null" >> /apollo-configservice/apollo-configservice-${VERSION}-github/scripts/startup.sh
    
    EXPOSE $SERVER_PORT
    
    CMD ["/apollo-configservice/apollo-configservice-1.5.0-SNAPSHOT-github/scripts/startup.sh"]
    

    2. 构建脚本命令

    > docker build -t apollo-configservice:v1 .
    

    3. 运行 apollo-configservice 镜像

    > docker run -p 58080:8080 -d -v /root/apollo/apollo-configservice/logs:/opt/logs --name apollo-configservice apollo-configservice:v1 
    

    4. 查看容器运行日志

    > docker logs -f -t apollo-configservice
    

    ps:未完待续...

  • 相关阅读:
    python 多进程操作
    python 什么是全局解释器锁GIL
    cloudstack api调用python
    cloudstack模板
    微型计算器
    a++与=++a的区别
    js自调用函数的实现方式
    .net利用NPOI导入导出Excel
    linux系统下c程序分多文件实现
    线程的优先级
  • 原文地址:https://www.cnblogs.com/gaofangye/p/12575802.html
Copyright © 2011-2022 走看看