【Apollo】分布式配置中心Apollo环境搭建

Apollo简介

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

Apollo整体架构原理

 

一、Apollo(阿波罗)环境搭建

在此用的是centos6.7系统,IP:192.168.106.242

安装需要mysql数据库,建议5.7以上,jdk1.8

1、下载aploll配置中心 https://github.com/nobodyiam/apollo-build-scripts

下载完成后,上传到linux机器上

解压:

[root@common apollo]# unzip apollo-build-scripts-master.zip 

2、新建mysql数据库

Apollo服务端共需要两个数据库:ApolloPortalDB和ApolloConfigDB,新建这两个库,并从解压后的apollo-build-scripts-master目录中找到sql目录,对sql文件导入到对应的库中。

3、配置demo.sh

解压后的apollo-build-scripts-master目录中有一个demo.sh,编辑此文件,修改如下内容

前两个红框内是数据库连接修改,写成自己的数据地址、用户名和密码即可

最后一个红框内是apollo的一些配置, 写成部署apollo机器的ip:端口

修改完成后,启动:

[root@common apollo-build-scripts-master]# ./demo.sh start

访问:http://192.168.106.242:8080/

访问:http://192.168.106.242:8070/

apollo的默认帐号:apollo 密码:admin ,登录后界面如下,点击“创建项目”

 

输入相应的内容并提交,加新增一个配置

点击发布按钮,变量发布成功

 

二、Springboot 整合Apollo

在spingboot 框架在此不说,我用的是2.0.2版本

 pom.xml加入以入依赖

<!-- apollo-client -->
<dependency>
    <groupId>com.ctrip.framework.apollo</groupId>
    <artifactId>apollo-client</artifactId>
    <version>1.0.0</version>
</dependency>
<dependency>
    <groupId>com.ctrip.framework.apollo</groupId>
    <artifactId>apollo-core</artifactId>
    <version>1.0.0</version>
</dependency>

<!-- springcloud -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    <version>2.0.1.RELEASE</version>
</dependency>

 

在application.yml 中加入配置

server:
  port : 8081

spring:
  application:
    name: demo-01

eureka:
  client:
    service-url:
      defaultZone: http://192.168.106.242:8080/eureka #部署apollo服务的ip

 

在resources 目录下新建如下配置文件:

app.properties内容:

app.id=apollo_example

app.id就是在apollo界面中,创建项目时的id

apollo-env.properties内容,其中ip为部署apollo服务的机器ip

local.meta=http://192.168.106.242:8080
dev.meta=http://192.168.106.242:8080
fat.meta=${fat.meta}
uat.meta=${uat.meta}
lpt.meta=${lpt.meta}
pro.meta=${pro.meta}

同时在C:\opt\settings(目录自己建)下新建server.properties,写入:env=DEV,我们在开发环境下测试

新建一个controller

package com.example.demo.controller;


import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/apollo")
public class ApolloController {

    //test为默认值
    @Value("${appolo_config:test}")
    private String configStr;

    @RequestMapping("/getConfig")
    public String getConfig(){
        return configStr;
    }
}

在主启动类上加上@EnableApolloConfig注解。

启动springboot项目测试

 

“张三“ 就是我们在apollo中设置的内容

 

注:在阿里云或百度云服务器上部署apollo时,Eureka会用服务器的内网ip,导致我们的项目在连接apollo时,无法连接,打开你的ip:8080 eureka可以发现此问题的根源----Eureka是内网地址,我本地或公网无法访问到, 怎么办???

不着急,apollo做为一个成熟的框架,肯定不会这么low,问题在于自己对apollo不是很精通,翻阅资料发现,加一点配置就可以了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章