云服务器上搭建Apollo

云服务器上搭建Apollo

一、Apollo分布式配置中心简介

Apollo(阿波罗)是携程的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景(本篇采用apollo版本)

1、Apollo基础模型

  • 用户在配置中心对配置进行修改并发布
  • 配置中心通知Apolllo客户端有配置更新
  • Apollo客户端从配置中心拉取最新的配置、更新本地配置并通知到应用
    云服务器上搭建Apollo_第1张图片

2、Apollo对比Spring Cloud Config

云服务器上搭建Apollo_第2张图片

二、打包部署Apollo服务端

官方GitHub:https://github.com/ctripcorp/apollo

1、将GitHub上的源码克隆到服务器

mkdir -p /data/apollo
 cd /data/apollo
git clone https://github.com/ctripcorp/apollo.git

其中几个比较重要的项目:

  • apollo-portal:提供Web界面供用户管理配置
  • apollo-adminservice:提供配置管理接口,提供配置修改、发布等接口,接口服务对象为Portal以及Eureka
  • apollo-configservice:提供配置获取接口,提供配置更新推送接口,接口服务对象为Apollo客户端
  • apollo-client:Apollo提供的客户端程序,为应用提供配置获取、实时更新等功能
    云服务器上搭建Apollo_第3张图片
    配置发布的大致过程:用户在Portal操作配置发布,Portal调用Admin Service的接口操作发布,Admin Service发布配置后,发送ReleaseMessage给各个Config Service,Config Service收到ReleaseMessage后,通知对应的客户端

2、数据库初始化

ApolloPortalDB:执行scripts\docker-quick-start\sql\apolloportaldb.sql

ApolloConfigDB:执行scripts\docker-quick-start\sql\apolloconfigdb.sql

3修改数据库配置

 vi /data/apollo/apollo-1.4.0/scripts/build.sh
    修改配置文件如下:
    # apollo config db info
    apollo_config_db_url=jdbc:mysql://IP:3306/ApolloConfigDB?characterEncoding=utf8
    apollo_config_db_username=*******
    apollo_config_db_password=*******
    # apollo portal db info 
    apollo_portal_db_url=jdbc:mysql://IP:3306/ApolloPortalDB?characterEncoding=utf8 
    apollo_portal_db_username=********
    apollo_portal_db_password=********
    # meta server url, different environments should have different meta server addresses 
    dev_meta=http://localhost:8080
    #fat_meta=http://localhost:8080
    #uat_meta=http://localhost:8080
    #pro_meta=http://localhost:8080

4. 打包项目

./build.sh

5.解压资源包

切换到 /data/apollo/apollo-1.5.0/apollo-configservice/target,解压apollo-configservice-1.5.0-github.zip
切换到目录 /data/apollo/apollo-1.5.0/apollo-adminservice/target,解压apollo-adminservice-1.5.0-github.zip
切换到 /data/apollo/apollo-1.5.0/apollo-portal/target,解压apollo-portal-1.5.0-github.zip  

6自定义启动和暂停文件

切换到目录 /data/apollo/apollo-1.5.0
创建start.sh文件,编辑内容如下:
#!/bin/sh
       sh /data/apollo-1.5.0/apollo-configservice/target/scripts/shutdown.sh
       sh /data/apollo-1.5.0/apollo-adminservice/target/scripts/shutdown.sh
       sh /data/apollo-1.5.0/apollo-portal/target/scripts/shutdown.sh

       # 打包         
       # 启动apollo-configservice 端口8080
        sh /data/apollo-1.5.0/apollo-configservice/target/scripts/startup.sh

       # 启动apollo-adminservice 端口8090
        sh /data/apollo-1.5.0/apollo-adminservice/target/scripts/startup.sh

       # 启动apollo-adminservice 端口8070
        sh /data/apollo-1.5.0/apollo-portal/target/scripts/startup.sh 
保存即可  

切换到目录  
data/apollo/apollo-1.5.0
创建end.sh文件,编辑内容如下:
#!/bin/sh

       sh /data/apollo-1.5.0/apollo-configservice/target/scripts/shutdown.sh
       sh /data/apollo-1.5.0/apollo-adminservice/target/scripts/shutdown.sh
       sh /data/apollo-1.5.0/apollo-portal/target/scripts/shutdown.sh


最后执行

./start.sh即可

6注意

项目运行时可能出现找不到配置的问题
解决:修改startup.sh指定要注册的IP+PORT,通过JVM System Property在运行时传入,如
-Deureka.instance.homePageUrl=http:// 指 定 的 I P : {指定的IP}: IP:{指定的Port}

export JAVA_OPTS="$JAVA_OPTS -Deureka.instance.homePageUrl=http://IP:Port -Dserver.port=$SERVER_PORT -Dlogging.file=$LOG_DIR/$SERVICE_NAME.lo
g -XX:HeapDumpPath=$LOG_DIR/HeapDumpOnOutOfMemoryError/"

喜欢小编的这篇文章请点一个赞
请关注小编微信公众号:
云服务器上搭建Apollo_第4张图片

你可能感兴趣的:(apollo,linux,分布式)