Asp.Net Core与携程阿波罗(Apollo)的第一次亲密接触

![img](https://img2018.cnblogs.com/blog/641760/201811/641760-20181127115945429-343409605.png) 一、瞎扯点什么 1.1 阿波罗

​ 阿波罗是希腊神话中的光明之神、文艺之神,同时也是罗马神话中的太阳神;他是光明之神,从不说谎,光明磊落,在其身上找不到黑暗,也被称作真理之神。他非常聪明,通晓世事,是预言之神。

后世各种各样的项目都喜欢以阿波罗命名,比如著名的美国登月计划:阿波罗计划;

既然携程以阿波罗(Apollo)命名项目,那我们我们接下来看看,携程阿波罗能给我们程序员带来怎样的光明(我希望这个光明是可以每天下午6点钟的太阳 哈哈);

下面看看.net core和Apollo会碰撞出什么样的火花吧

二、携程阿波罗(Apollo) 2.1简单介绍

在这之前,我们先看官方是怎么介绍的:

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

讲的很清楚,携程阿波罗(后面简称Apollo)是一个分布式配置中心,就是管理配置程序配置地方;Apollo服务端基于Spring Boot和Spring Cloud开发(对的,就是微服务框架),打包后可以直接运行,不需要额外安装Tomcat等应用容器。

Apollo有以下特点:

统一管理不同环境、不同集群的配置

配置修改实时生效(热发布)

版本发布管理

灰度发布

权限管理、发布审核、操作审计

客户端配置信息监控

提供Java和.Net原生客户端

提供开放平台API

部署简单

具体每一项展开是什么意思,我就不多说了,更多介绍请看Apollo配置中心介绍

再多说一句,截止到这篇博客编写时间为止,Apollo在github已经有9300+个star了;

并拥有众多的生产使用案例;

2.2使用场景

我们设想一下,我们微服务架构中,我们一个每一个服务都可能部署到5~10机器上,我们有很几十个各种各样的服务;比如某一天,我们机房因为网络问题,必须更换数据库服务器ip,业务接口ip等;如果人工去一台机一台机地改,哇,那就就头痛了。。。

不止是微服务,做开发这么多年,经常因配置的问题引发生产环境的bug。有些年久的项目,几百个密密麻麻的配置项,经常容易搞混,有时好几个项目有好多同样的配置项,经常被配置问题,或者配置衍生的问题搞得奄奄一息;这时候或者选用一个配置管理中心,也是个不错的选择;

有人说,我做了用了Jenkins或者什么做了自动化部署的,不是提交一下代码就可以了吗;确实,自动化部署环境确实也可以做到配置的“一处更改,所有引用起效”的效果;但是,镜像的打包失败,打包时间过长等问题,也需要考虑进来的;

所以,综合来说,在配置人工管理困难的时候或者说成本较高的时候;使用配置中心是一个合理的选择;

img

三、Apollo的安装与配置 3.1 环境

windows10 64bit 专业版
8G内存

这次是我的本地环境,不是腾讯云了

3.2 安装

我也在学习中,演示的是本地测试环境的安装与配置,生产环境请参考分布式部署指南;

我这里是普通方式的安装,docker方式请参考Apollo Quick Start Docker部署

1、依次安装以下程序

Java 1.8+

Mysql 5.6.5+ (Apollo的表结构对timestamp使用了多个default声明,所以需要5.6.5以上版本。)

GitBash (安装参考)

下载apollo-build-scripts项目到本地

2、创建数据库

分别执行下面两个初始化的数据库sql:

apolloconfigdb.sql

apolloportaldb.sql

执行完成我们得到:

1542806085229

3、修改配置文件

修改刚刚下载项目apollo-build-scripts根目录下面的demo.sh

#!/bin/bash # apollo config db info apollo_config_db_url=jdbc:mysql://`139.199.196.67`:3306/ApolloConfigDB?characterEncoding=utf8 apollo_config_db_username=`root` apollo_config_db_password=`password` # apollo portal db info apollo_portal_db_url=jdbc:mysql://`139.199.196.67`:3306/ApolloPortalDB?characterEncoding=utf8 apollo_portal_db_username=`root` apollo_portal_db_password=`password`

4、启动

gitbash执行:

./demo.sh start

静候片刻,看到以下表示启动成功(不一定一模一样):

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zygjwx.html