开源配置中心Apollo + SpringCloud生产环境搭建
开源配置中心ApolloApollo概述pollo阿波罗是携程框架部门研发的开源配置管理中心能够集中化管理应用不同环境、不同集群的配置配置修改后能够实时推送到应用端并且具备规范的权限、流程治理等特性。Apollo从设计之初就立志于成为一个有治理能力的配置发布平台目前提供了以下的特性统一管理不同环境、不同集群的配置Apollo提供了一个统一界面集中式管理不同环境environment)、 不同集群cluster、不同命名空间namespace的配置。同一份代码部署在不同的集群可以有不同的配置,比如zookeeper的地址等通过命名空间namespace可以很方便地支持多个不同应用共享同一份配置同时还允许应用对共享的配置进行覆盖配置修改实时生效热发布版本发布管理所有的配置发布都有版本概念从而可以方便地支持配置的回滚灰度发布点了发布后只对部分应用实例生效等观察一段时间没问题后再推给所有应用实例客户端配置信息监控可以在界面上方便地看到配置在被哪些实例使用提供Java和.Net原生客户端提供了Java和.Net的原生客户端方便应用集成支持Spring Placeholder, Annotation和Spring Boot方便应用提供开放平台APIApollo自身提供了比较完善的统一配置管理界面支持多环境、多数据中心配置管理、权限、流程治理等特性。部署简单配置中心作为基础服务可用性要求非常高这就要求Apollo对外部依赖尽可能地少目前唯一的外部依赖是MySQL所以部署非常简单搭建Apollo服务端安装环境Linux这里就不细致讲解了...采用桥连接进行网络通信下载Apollo:apollo-quick-start-1.5.0.zip配置数据库Apollo服务端共需要两个数据库ApolloPortalDB和ApolloConfigDB我们把数据库、表的创建和样例数据都分别准备了sql文件只需要导入数据库即可。本人的linux 已经装好了mysql并且允许远程配置linux MySQL与 windows 远程通信连接! 开启mysql远程配置为了方便操作linux的mysql 连接windows的数据库使用linux中操作#事前建议关闭防火墙#查看防火墙状态firewall-cmd--state#停止firewallsystemctl stop firewalld.service#禁止firewall开机启动systemctl disable firewalld.service#启动mysql mysql目录下bin/mysqld_safe--usermysql #这里回车后会停留直接再按回车即可#登录mysqlbin/mysql-uroot-p#mysql远程配置# 用户 密码mysql grant all privileges on*.*to root%identified byokwith grant option;mysql flush privileges;#刷新#退出mysql exit#在线安装一些配置, 需要联网yum install zip unzip curlWindows 测试远程连接 连接上了就可以远程操作数据库了阿波罗安装目录下copy 执行安装Apollo注意安装目录根据自己情况决定!工具上传至Linux中解压缩upzip appllo-quick-start-1.5.0.zip删除压缩文件rm -rf appllo-quick-start-1.5.0.zip起别名方便操作而已可以不干修改配置文件demo.sh阿波罗配置数据库文件vi demo.sh设置访问数据库的密码…测试直接安装目录下./demo.sh start启动时候比较慢, 因为内部要启动两个应用…接下来就可以进行访问了Apollo 使用登录Apollo输入默认用户名密码apollo/admin即可登录到应用中随便创建一个要被管理配置的 项目controller .yml 测试加入依赖pom.xml!-- 引入阿波罗依赖 --dependenciesdependencygroupIdcom.ctrip.framework.apollo/groupIdartifactIdapollo-client/artifactIdversion1.1.0/version/dependency/dependencies.yml 配置.yml#阿波罗配置name:aaa# 用于测试更改的属性#阿波罗配置apollo:bootstrap:enabled:truemeta:http://192.168.1.110:8080app:id:apollo# 输入创建的appid项目设置阿波罗操作新增 修改 提交 发布测试运行SpringCloud生产环境搭建大致分为三个板块独立服务apiserver其中像是eureka、gateway等就是独立服务而Netflix Fegin就是api主要做程序之间通讯的对外暴露接口以及熔断处理等操作而server主要用作调用持久层、业务逻辑等。相互嵌套依赖调用...注意依赖注解的使用即可