当前位置: > 财经>正文

全网最全的Apollo教程从入门到精通 基金理财从入门到精通的过程包括哪些步骤和内容

2023-09-07 15:43:02 互联网 未知 财经

全网最全的Apollo教程从入门到精通

第1章 Apollo项目实战 能力目标 掌握Apollo安装掌握Apollo配置操作能够实现SpringBoot集成Apollo能够实现Apollo适用功能【自动刷新、监听器、配置加密、1灰度发布】 1 Apollo应用

项目地址:https://github.com/ctripcorp/apollo

使用手册(多读多看):https://github.com/ctripcorp/apollo/wiki

1.1 初识Apollo

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

服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。

Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有较好的支持。

1)核心功能:

统一管理不同环境、不同集群配置:1:Apollo提供了一个统一界面集中式管理不同环境(environment)、不同集群(cluster)、不同命名空间(namespace)的配置。2:同一份代码部署在不同的集群,可以有不同的配置,比如zk的地址等3:通过命名空间(namespace)可以很方便的支持多个不同应用共享同一份配置,同时还允许应用对共享的配置进行覆盖4:配置界面支持多语言(中文,English)热发布:用户在Apollo修改完配置并发布后,客户端能实时(1秒)接收到最新的配置,并通知到应用程序。版本发布管理:所有的配置发布都有版本概念,从而可以方便的支持配置的回滚。灰度发布:支持配置的灰度发布,比如点了发布后,只对部分应用实例生效,等观察一段时间没问题后再推给所有应用实例。权限管理、发布审核、操作审计:1:应用和配置的管理都有完善的权限管理机制,对配置的管理还分为了编辑和发布两个环节,从而减少人为的错误。2:所有的操作都有审计日志,可以方便的追踪问题。客户端配置信息监控:可以方便的看到配置在被哪些实例使用提供Java和.Net原生客户端:1:提供了Java和.Net的原生客户端,方便应用集成2:支持Spring Placeholder,Annotation和Spring Boot的ConfigurationProperties,方便应用使用(需要Spring 3.1.1+)3:同时提供了Http接口,非Java和.Net应用也可以方便的使用提供开放平台API:1:Apollo自身提供了比较完善的统一配置管理界面,支持多环境、多数据中心配置管理、权限、流程治理等特性。2:不过Apollo出于通用性考虑,对配置的修改不会做过多限制,只要符合基本的格式就能够保存。3:在我们的调研中发现,对于有些使用方,它们的配置可能会有比较复杂的格式,如xml, json,需要对格式做校验。4:还有一些使用方如DAL,不仅有特定的格式,而且对输入的值也需要进行校验后方可保存,如检查数据库、用户名和密码是否匹配。5:对于这类应用,Apollo支持应用方通过开放接口在Apollo进行配置的修改和发布,并且具备完善的授权和权限控制部署简单:1:配置中心作为基础服务,可用性要求非常高,这就要求Apollo对外部依赖尽可能地少2:目前唯一的外部依赖是MySQL,所以部署非常简单,只要安装好Java和MySQL就可以让Apollo跑起来3:Apollo还提供了打包脚本,一键就可以生成所有需要的安装包,并且支持自定义运行时参数

2)谁在用它

国内很多大厂都在用Apollo作为分布式配置中心,如果你们的网站也在用,在https://github.com/ctripcorp/apollo/issues/451可以进行登记。

携程、华为、京东、智联招聘、中国移动、360金融、中通快递、转转、贝壳网、土巴兔、平安银行、有赞等众多国内大厂在用Apollo。

1.2 Apollo单机部署

我们接下来实现Apollo安装,安装前我们先介绍一下单机版装的架构,如下图:

上图展示了Apollo单机部署架构,我们对其中每个节点进行解释说明:

Apollo Config Service:提供配置的读取、推送等功能,服务对象是 Apollo 客户端。Apollo Admin Service:提供配置的修改、发布等功能,服务对象是Apollo Portal。Apollo Portal:Apollo 的管理界面,进行不同项目的配置(项目配置、权限配置等),服务对象是开发者和开放平台API。

环境说明:

MySQL:MySQL建议用5.7,版本要求5.6.5+Apollo服务端:JDK1.8+Apollo客户端:JDK1.7+

Apollo安装方式有多种,官方提供了快速安装模式和Docker安装模式,我们把两种安装模式都实现一次,但如果是生产环境请使用分布式部署方案

(https://github.com/ctripcorp/apollo/wiki/%E5%88%86%E5%B8%83%E5%BC%8F%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97)

1.2.1 快速安装

1)JDK版本:

[root@skywalking ~]# java -versionjava version "1.8.0_144"Java(TM) SE Runtime Environment (build 1.8.0_144-b01)Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

2)MySQL版本:

SELECT VERSION()-----------------5.7.32-log

3)安装包下载:

Apollo已经准备好了一个Quick Start安装包apollo-quick-start.zip,里面包含了可以自动启动的jar包、以及所有依赖jar包、数据库脚本、内置Tomcat容器等,安装包共63M,大家只需要下载到本地,就可以直接使用,免去了编译、打包过程。

Github下载地址:https://github.com/nobodyiam/apollo-build-scripts

Quick Start只针对本地测试使用,所以一般用户不需要自己下载源码打包,只需要下载已经打好的包即可。不过也有部分用户希望在修改代码后重新打包,那么可以参考如下步骤:

1:修改apollo-configservice, apollo-adminservice和apollo-portal的pom.xml,注释掉spring-boot-maven-plugin和maven-assembly-plugin2:在根目录下执行mvn clean package -pl apollo-assembly -am -DskipTests=true3:复制apollo-assembly/target下的jar包,rename为apollo-all-in-one.jar

4)创建数据库:

Apollo服务端共需要两个数据库:ApolloPortalDB和ApolloConfigDB,我们把数据库、表的创建和样例数据都分别准备了sql文件,只需要导入数据库即可。

注意:如果你本地已经创建过Apollo数据库,请注意备份数据。我们准备的sql文件会清空Apollo相关的表。

5)配置数据库连接:

我们的数据库地址不是固定的,Apollo服务端需要知道如何连接到你前面创建的数据库,因此需要修改数据库连接地址,在安装包里有一个启动脚本demo.sh,修改ApolloPortalDB和ApolloConfigDB相关的数据库连接串信息:

# apollo config db infoapollo_config_db_url="jdbc:mysql://192.168.200.129:3306/ApolloConfigDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai"apollo_config_db_username=rootapollo_config_db_password=root# apollo portal db infoapollo_portal_db_url="jdbc:mysql://192.168.200.129:3306/ApolloPortalDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai"apollo_portal_db_username=rootapollo_portal_db_password=root

6)启动服务:

Quick Start脚本会在本地启动3个服务,分别使用8070, 8080, 8090端口,请确保这3个端口当前没有被使用,如果端口没有被使用,我们可以直接启动程序,启动程序执行demo.sh脚本即可,启动过程比较慢。

./demo.sh start

当看到如下输出后,就说明启动成功了!

==== starting service ====Service logging file is ./service/apollo-service.logStarted [10768]Waiting for config service startup.......Config service started. You may visit http://localhost:8080 for service status now!Waiting for admin service startup....Admin service started==== starting portal ====Portal logging file is ./portal/apollo-portal.logStarted [10846]Waiting for portal startup......Portal started. You can visit http://localhost:8070 now!

启动完成后访问 http://192.168.200.129:8070/,可以看到Apollo配置界面,登录账号apollo,密码admin

1.2.2 Docker容器安装

如果您对Docker非常熟悉,可以使用Docker的方式快速部署Apollo,从而快速的了解Apollo。确保docker-quick-start文件夹已经在本地存在,如果本地已经clone过Apollo的代码,则可以跳过此步骤。

在docker-quick-start目录下执行docker-compose up,第一次执行会触发下载镜像等操作,需要耐心等待一些时间。

搜索所有apollo-quick-start开头的日志,看到以下日志说明启动成功:

apollo-quick-start | ==== starting service ====apollo-quick-start | Service logging file is ./service/apollo-service.logapollo-quick-start | Started [45]apollo-quick-start | Waiting for config service startup.......apollo-quick-start | Config service started. You may visit http://localhost:8080 for service status now!apollo-quick-start | Waiting for admin service startup......apollo-quick-start | Admin service startedapollo-quick-start | ==== starting portal ====apollo-quick-start | Portal logging file is ./portal/apollo-portal.logapollo-quick-start | Started [254]apollo-quick-start | Waiting for portal startup.......apollo-quick-start | Portal started. You can visit http://localhost:8070 now!

不过基于Docker安装需要注意一些问题:

1:数据库的端口映射为13306,所以如果希望在宿主机上访问数据库,可以通过localhost:13306,用户名是root,密码留空。2:如要查看

版权声明: 本站仅提供信息存储空间服务,旨在传递更多信息,不拥有所有权,不承担相关法律责任,不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请发送邮件至 举报,一经查实,本站将立刻删除。