spring cloud微服务搭建配置中心之携程开源框架Apollo
1、Apollo(阿波罗)
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景,是一款可靠的分布式配置管理中心框架。
https://github.com/apolloconfig/apollo
https://www.apolloconfig.com/#/zh/README
2、下载Apollo
进入Apollo官网,找到官网发布的版本进行下载。点击Releases(https://github.com/apolloconfig/apollo/releases),选择想要下载的版本信息,找到Assets进行下载。在下载的时候我们会发现Assets下面有很多个包,具体我们需要下载那个呢?这里就需要在
介绍一下这个配置中心Apollo了。其实Apollo不是由一个服务组成的,而是由三个主要的服务组成,分别为:Config Service服务、Admin Service 服务、Portal Server服务。Apollo最主要的就是这三个工程,需要用这三个工程进行部署才能使用配置中心。
Portal Server服务:管理配置界面,对应有一个PortalDB数据库,Portal Server是用来管理不同的环境的,不管对接了多少个环境,Portal Server和PortalDB数据库只需要部署一份就可以了。需要在PortalDB数据库添加具体有那些环境。
Config Service 服务和 Admin Service 服务:每个环境都有一个Config和Admin,对应每个环境都有一个自己的ConfigDB库。也就是说我们可以配置多套Config和Admin服务。
通过介绍之后,现在就知道需要那些包了吧。目前之讲解单机版,每个服务只部署一个即可。选择好版本后分别下载:apollo-adminservice-x.xx-github.zip、apollo-adminservice-x.xx-github.zip和apollo-adminservice-x.xx-github.zip,本人下载的是1.9.2版本。读友可以根据需要自行下载版本。
3、创建数据库
我们下载成功后,就需要创建相应的数据库了。Apollo服务端共需要两个数据库:ApolloPortalDB和ApolloConfigDB,数据库、表的创建和样例数据都分别准备了sql文件,我们只需要导入数据库即可。
下载地址:
https://github.com/apolloconfig/apollo/blob/master/scripts/sql/apolloconfigdb.sql
在/scripts/sql/下面,里面有两个sql脚本进行下载导入Mysql数据库即可。注意官网提示对MySQL数据库版本有限制:Apollo的表结构对timestamp使用了多个default声明,所以需要5.6.5以上版本。
输入Sql语句查看Mysql数据库版本:
SHOW VARIABLES WHERE Variable_name = 'version';
目前只部署的为一个环境,如果部署多个环境的话需要准备多个configdb数据库。需要在polloconfigdb.sql中稍作修改。
4、修改配置数据库连接信息
配置apollo-configservice和apollo-adminservice 的数据库连接信息,分别进入:/apollo-adminservice/config和 /apollo-configservice/config目录,分别编辑文件:application-github.properties
#修改数据库连接配置信息。
spring.datasource.url = jdbc:mysql://fill-in-the-correct-server:3306/ApolloConfigDB?characterEncoding=utf8
spring.datasource.username = FillInCorrectUser
spring.datasource.password = FillInCorrectPassword
fill-in-the-correct-server :替换为数据库连接地址
FillInCorrectUser:数据库用户名称
FillInCorrectPassword:数据库密码
配置apollo-portal的数据库连接信息,进入/apollo-portal/config 目录,编辑文件:application-github.properties
#修改数据库连接配置信息。
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 1234qwer fill-in-the-correct-server :替换为数据库连接地址
FillInCorrectUser:数据库用户名称
FillInCorrectPassword:数据库密码
配置完apollo-portal的数据库连接后,数据库配置就配置完成了。
5、修改端口号
启动之前,我们可以修改服务的端口号,服务有默认端口号如果不修改会使用默认端口:adminservice:8090,configservice:8080,apollo-portal:8070,分别进入三个工程里面/scripts目录下startup.sh脚本里面,可以查看和修改当前端口号以及更改日志输出地址。
我们分别修改端口和配置日志地址:
SERVICE_NAME=apollo-configservice 服务名称
SERVER_PORT=${SERVER_PORT:=7800} 服务端口
LOG_DIR=D:/apollo/logs-local/100003171 输出日志路径 SERVICE_NAME=apollo-adminservice
SERVER_PORT=${SERVER_PORT:=7850}
LOG_DIR=D:/apollo/logs-local/100003172 SERVICE_NAME=apollo-portal
LOG_DIR=D:/apollo/logs-local/100003173
SERVER_PORT=${SERVER_PORT:=8000}
更改端口后,apollo-configservice不以8080端口启动的情况下,要修改ApolloConfigDB库的ServerConfig表的eureka.service.url的value值为http://localhost:7800/eureka/,端口从数据库默认的8080改为7800。
6、配置portal的meta service环境信息
我们进入/apollo-portal/config目录下面会发现该服务比其他两个多了一个配置文件apollo-env.properties,apollo-env可以指定不同环境的configservice的连接地址。由于我们configservice和adminservice只配置了一套,所以只是使用了一个环境,配置dev就行了。如果后续配置多个则根据需要配置相应的地址。
local.meta=http://localhost:7800
dev.meta=http://localhost:7800
#fat.meta=http://fill-in-fat-meta-server:8080
#uat.meta=http://fill-in-uat-meta-server:8080
lpt.meta=${lpt_meta}
#pro.meta=http://fill-in-pro-meta-server:8080
7、启动应用
应用启动顺序:configservice -> adminservice -> portal,每个服务启动成功后再启动下一个服务,因为有依赖关系。执行scripts/startup.sh 启动程序
即停止服务顺序应该为: portal -> adminservice -> configservice ,执行scripts/shutdown.sh 停止程序
启动成功后,访问http://localhost:8000,可以访问管理界面。默认的用户名是apollo,密码是admin。

登录成功:

spring cloud微服务搭建配置中心之携程开源框架Apollo的更多相关文章
- Spring Cloud微服务集成配置中心
1. 搭建Spring Cloud Config配置中心(见上一篇博客) 2. 创建微服务项目bounter-simon-app,pom文件如下: <?xml version="1.0 ...
- Spring Cloud 入门教程 - 搭建配置中心服务
简介 Spring Cloud 提供了一个部署微服务的平台,包括了微服务中常见的组件:配置中心服务, API网关,断路器,服务注册与发现,分布式追溯,OAuth2,消费者驱动合约等.我们不必先知道每个 ...
- spring cloud微服务搭建第一天
martin fowler大神提出微服务的概念后,各种微服务的技术满天飞,现在用的比较多的是spring cloud和阿里的dubbo,由于dubbo 在16年10月份就停止更新了,这里我们讲解spr ...
- spring cloud微服务搭建(一)
martin fowler大神提出微服务的概念后,各种微服务的技术满天飞,现在用的比较多的是spring cloud和阿里的dubbo,由于dubbo 在16年10月份就停止更新了,不过好像前些天又更 ...
- 【spring colud】spring cloud微服务项目搭建【spring boot2.0】
spring cloud微服务项目搭建 =================================== 示例版本: 1.spring boot 2.0版本 2.开发工具 IntellJ IDE ...
- Spring Cloud微服务(一):公共模块的搭建
本demo后台采用spring cloud微服务,前端选用vue,进行前后端分离搭建.具体项目见git:光头才能强 创建文件夹,并分别创建以下jar工程 创建公共模块(后续有需要,还会增加).无论是d ...
- 如何优化Spring Cloud微服务注册中心架构?
作者: 石杉的架构笔记 1.再回顾:什么是服务注册中心? 先回顾一下什么叫做服务注册中心? 顾名思义,假设你有一个分布式系统,里面包含了多个服务,部署在不同的机器上,然后这些不同机器上的服务之间要互相 ...
- 只需五分钟-用Maven快速搭建Spring Cloud微服务
Maven安装手册 1.准备安装包 安装包: apache-maven-3.5.4-bin.zip (最好JDK 1.7及以上版本) 集成包: eclipse-maven3-plugin.zip 2 ...
- Servlet+MyBatis项目转Spring Cloud微服务,多数据源配置修改建议
一.项目需求 在开发过程中,由于技术的不断迭代,为了提高开发效率,需要对原有项目的架构做出相应的调整. 二.存在的问题 为了不影响项目进度,架构调整初期只是把项目做了简单的maven管理,引入spri ...
- Spring Cloud微服务系列文,服务调用框架Feign
之前博文的案例中,我们是通过RestTemplate来调用服务,而Feign框架则在此基础上做了一层封装,比如,可以通过注解等方式来绑定参数,或者以声明的方式来指定请求返回类型是JSON. 这种 ...
随机推荐
- java处理集合工具
public static <K, V> Map<K, V> parseListToMap(Collection<V> list, Function<V, K ...
- chrome Dev Tools 性能分析 performance
chrome 的performance用来分析性能优化性能非常好用,下面以一个页面来举例 性能分析 性能分析最好使用隐私无痕模式,以保证干净的环境下,避免chrome插件对性能分析结果的影响 Perf ...
- YOLO3论文中文版
文章目录 YOLO3论文中文版 摘要 1.引言 2. 解决方案 2.1 边界框预测 2.2 类预测 2.3 多尺度预测 2.4 特征提取器 2.5 训练 3.我们的做法 4. 失败的尝试 5.这一切意 ...
- 数据分析04-pandas(apply函数、排序、数据合、分组聚合、透视表、交叉表及项目分析)
数据分析-04 排序 按标签(行)排序 按标签(列)排序 按某列值排序 数据合并 concat merge & join 分组聚合 分组 聚合 透视表与交叉表 透视表 交叉表 项目:分析影响学 ...
- 2022-12-09:上升的温度。以下的数据输出2和4,2015-01-02 的温度比前一天高(10 -> 25),2015-01-04 的温度比前一天高(20 -> 30),sql语句如何写? DR
2022-12-09:上升的温度.以下的数据输出2和4,2015-01-02 的温度比前一天高(10 -> 25),2015-01-04 的温度比前一天高(20 -> 30),sql语句如 ...
- 2022-06-16:给定一个数组arr,含有n个数字,都是非负数, 给定一个正数k, 返回所有子序列中,累加和最小的前k个子序列累加和。 假设K不大,怎么算最快? 来自亚马逊。
2022-06-16:给定一个数组arr,含有n个数字,都是非负数, 给定一个正数k, 返回所有子序列中,累加和最小的前k个子序列累加和. 假设K不大,怎么算最快? 来自亚马逊. 答案2022-06- ...
- 2022-05-06:给你一个整数数组 arr,请你将该数组分隔为长度最多为 k 的一些(连续)子数组。分隔完成后,每个子数组的中的所有值都会变为该子数组中的最大值。 返回将数组分隔变换后能够得到的元
2022-05-06:给你一个整数数组 arr,请你将该数组分隔为长度最多为 k 的一些(连续)子数组.分隔完成后,每个子数组的中的所有值都会变为该子数组中的最大值. 返回将数组分隔变换后能够得到的元 ...
- 2021-04-02:给定一个正方形或者长方形矩阵matrix,实现zigzag打印。[[0,1,2],[3,4,5],[6,7,8]]的打印顺序是0,1,3,6,4,2,5,7,8。
2021-04-02:给定一个正方形或者长方形矩阵matrix,实现zigzag打印.[[0,1,2],[3,4,5],[6,7,8]]的打印顺序是0,1,3,6,4,2,5,7,8. 福大大 答案2 ...
- Netty(1)——NIO基础
本篇主要介绍Java NIO的基本原理和主要组件 Netty是由JBOSS提供的Java开源网络应用程序框架,其底层是基于Java提供的NIO能力实现的.因此为了掌握Netty的底层原理,需要首先了解 ...
- 计蒜客蓝桥杯省赛模拟G
题目 一天蒜头君得到 n 个字符串 si,每个字符串的长度都不超过 1010. 蒜头君在想,在这 n 个字符串中,以 si 为后缀的字符串有多少个呢? 输入格式 第一行输入一个整数 n. 接下来 n ...