IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 多环境Apollo配置中心搭建整合SpringBoot -> 正文阅读

[Java知识库]多环境Apollo配置中心搭建整合SpringBoot

Apollo多环境分布式部署

Apollo分布式部署,本次采用三台服务器。portal服务一台、fat环境一台(adminservice和configservice)、uat环境一台(adminservice和configservice)。环境搭建完毕,整合SpringBoot实现多环境切换。

一、 Apollo各个模块简介(引用自Apollo官网)

1.Config Service

  • 提供配置获取接口
  • 提供配置更新推送接口(基于Http long polling)
  • 接口服务对象为Apollo客户端
    在这里插入图片描述

2.Admin Service

  • 提供配置管理接口
  • 提供配置修改、发布等接口
  • 接口服务对象为Portal

3.Meta Server

  • Portal通过域名访问Meta Server获取Admin Service服务列表(IP+Port)
  • Client通过域名访问Meta Server获取Config Service服务列表(IP+Port)
  • Meta Server从Eureka获取Config Service和Admin Service的服务信息,相当于是一个Eureka Client
  • 增设一个Meta Server的角色主要是为了封装服务发现的细节,对Portal和Client而言,永远通过一个Http接口获取Admin Service和Config Service的服务信息,而不需要关心背后实际的服务注册和发现组件
  • Meta Server只是一个逻辑角色,在部署时和Config Service是在一个JVM进程中的,所以IP、端口和Config Service一致

4.Eureka

  • 基于Eureka和Spring Cloud Netflix提供服务注册和发现
  • Config Service和Admin Service会向Eureka注册服务,并保持心跳
  • 为了简单起见,目前Eureka在部署时和Config Service是在一个JVM进程中的(通过Spring Cloud Netflix)

5.Portal

  • 提供Web界面供用户管理配置
  • 通过Meta Server获取Admin Service服务列表(IP+Port),通过IP+Port访问服务
  • 在Portal侧做load balance、错误重试

6.Client

  • Apollo提供的客户端程序,为应用提供配置获取、实时更新等功能
  • 通过Meta Server获取Config Service服务列表(IP+Port),通过IP+Port访问服务
  • 在Client侧做load balance、错误重试

二、 本次环境搭建说明

1.服务器说明

  • Portal 192.168.16.129
  • FAT环境 192.168.16.130
  • UAT环境 192.168.16.131

2.服务部署说明

  • Portal 服务只需要部署一个即可(数据库只需要一个),一个Portal可以管理多个环境。
  • 每一个环境对应一套AdminService和ConfigService,每个环境需要对应一个数据库。

3.部署结构图

在这里插入图片描述

三、环境搭建

1.服务包下载

  • apollo-portal
  • apollo-adminservice
  • apollo-configservice

解压之后目录如下:
在这里插入图片描述

2.配置Portal服务

  • 修改数据库地址:
    修改 apollo-portal/config/application-github.properties 文件
spring.datasource.url = jdbc:mysql://192.168.1.9:3306/apolloportaldb?characterEncoding=utf8&serverTimezone=Asia/Shanghai
spring.datasource.username = root
spring.datasource.password = 1234
  • 修改portal管理的meta所在的地址

修改 apollo-portal/config/apollo-env.properties 文件
此处只有fat和uat环境因此只需配置这两个环境对应的meta地址即可

fat.meta=http://192.168.16.130:8080
uat.meta=http://192.168.16.131:8080

3.配置Admin服务

  • 修改fat环境的数据库地址:
    修改 apollo-adminservice/config/application-github.properties 文件
    此处的数据地址为fat环境configservice服务所使用的的数据库
spring.datasource.url = jdbc:mysql://192.168.1.9:3306/apolloconfigdb-fat?characterEncoding=utf8&serverTimezone=Asia/Shanghai
spring.datasource.username = root
spring.datasource.password = 1234

  • 修改uat环境的数据库地址:
    修改 apollo-adminservice/config/application-github.properties 文件
    此处的数据地址为uat环境configservice服务所使用的的数据库
spring.datasource.url = jdbc:mysql://192.168.1.9:3306/apolloconfigdb-uat?characterEncoding=utf8&serverTimezone=Asia/Shanghai
spring.datasource.username = root
spring.datasource.password = 1234

4.配置Config服务

  • 修改fat环境的数据库地址:
    修改 apollo-configservice/config/application-github.properties 文件
    此处的数据地址为fat环境configservice服务所使用的的数据库
spring.datasource.url = jdbc:mysql://192.168.1.9:3306/apolloconfigdb-fat?characterEncoding=utf8&serverTimezone=Asia/Shanghai
spring.datasource.username = root
spring.datasource.password = 1234

  • 修改uat环境的数据库地址:
    修改 apollo-configservice/config/application-github.properties 文件
    此处的数据地址为fat环境configservice服务所使用的的数据库
spring.datasource.url = jdbc:mysql://192.168.1.9:3306/apolloconfigdb-uat?characterEncoding=utf8&serverTimezone=Asia/Shanghai
spring.datasource.username = root
spring.datasource.password = 1234

5.服务启动

记得开放服务器的端口:portal 默认端口 8070; admin默认端口 8090 ; config默认端口 8080

首先启动两个环境的admin 服务和config服务

sh ./apollo-adminservice/scripts/startup.sh

sh ./apollo-configservice/scripts/startup.sh

在这里插入图片描述

在这里插入图片描述

再启动portal服务

sh ./apollo-portal/scripts/startup.sh

在这里插入图片描述

访问 192.168.16.129:8070 portal服务

默认用户名密码 apollo admin

在这里插入图片描述

在这里插入图片描述

四、整合SpringBoot

1.所需的依赖

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

2.编写SpringBoot的配置文件

分别对应fat 和 uat环境
在这里插入图片描述
application.yml

app:
  id: demo           #指定Apollo应用的唯一标识

spring:
  profiles:
    active: uat      #指定激活哪一个环境的配置文件
server:
  port: 9000

application-fat.yml

apollo:
  meta: http://192.168.16.130:8080              #指定fat环境下config服务所在的地址和端口
  bootstrap:
    namespaces: application,datasource          #指定加载哪些命名空间(namespace需要和Apollo的命名空间一致;默认只加载application 需要开启下面的两个配置项)
    enabled: true
    eagerLoad:
      enabled: true

application-uat.yml

apollo:
  meta: http://192.168.16.131:8080
  bootstrap:
    namespaces: application,datasource
    enabled: true
    eagerLoad:
      enabled: true

3.编写测试接口

value注解内部的值要和Apollo服务中配置的key保持一致

@RestController
public class DemoController {

    @Value("${redis.url:127.0.0.1}")
    private String redisUrl;

    @Value("${datasource.url:127.0.0.1}")        
    private String dataSource;

    @GetMapping("/apollo/demo")
    public String demo(){
        return redisUrl;
    }

    @GetMapping("/apollo/test")
    public String test(){
        return dataSource;
    }
}
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-01-08 13:51:00  更:2022-01-08 13:53:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:00:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码