Apollo 源码解析 —— 调试环境搭建

本文详细介绍Apollo配置中心的环境搭建过程,包括依赖工具、数据库创建、服务端启动及示例应用配置。涵盖JDK、MySQL、Maven、IDEA等工具需求,ApolloPortalDB与ApolloConfigDB的创建步骤,以及ConfigService、AdminService与PortalService的启动配置。并通过Demo应用展示如何读取Apollo中的配置。

点击上方“芋道源码”,选择“设为星标

做积极的人,而不是积极废人!

源码精品专栏

 

摘要: 原创出处 http://www.iocoder.cn/Apollo/build-debugging-environment/ 「芋道源码」欢迎转载,保留摘要,谢谢!

  • 1. 依赖工具

  • 2. 创建数据库

    • 2.1 创建 ApolloPortalDB

    • 2.2 创建 ApolloConfigDB

  • 3. ConfigService && AdminService

  • 4. PortalService

  • 5. Demo

  • 666. 彩蛋


阅读源码最好的方式,是使用 IDEA 进行调试 Apollo 源码,不然会一脸懵逼。

胖友可以点击「芋道源码」扫码关注,回复 git018 关键字
获得艿艿添加了中文注释的 Apollo 源码地址。

阅读源码很孤单,加入源码交流群,一起坚持!

1. 依赖工具

老艿艿:本文参考 《Apollo 官方文档 —— 开发指南》 ,进行精简。
官方很良心,文档很细心。

建议胖友后面阅读 Apollo 设计文档

  • 《Apollo 配置中心介绍》

  • 《Apollo 配置中心设计》

  • 《Apollo核心概念之“Namespace”》

  • JDK :1.8+

  • MySQL :5.6.5+

  • Maven

  • IntelliJ IDEA

2. 创建数据库

Apollo 服务端共有两个数据库:

  • ApolloPortalDB

  • ApolloConfigDB

在 Apollo 项目下的  scripts 目录,提供了对应的初始化脚本:

2.1 创建 ApolloPortalDB

通过各种 MySQL 客户端导入 sql/apolloportaldb.sql 脚本。例如笔者喜欢用 Navicat 。

基情提示:Navicat 导入 SQL 脚本,可阅读文章:《navicat里导入和导出.sql文件》 。

导入成功后,表结构如下:

2.2 创建 ApolloConfigDB

通过各种 MySQL 客户端导入 sql/apolloconfigdb.sql 脚本。

导入成功后,表结构如下:

3. ConfigService && AdminService

同时启动 apollo-adminserviceapollo-configservice 项目,基于 apollo-assembly 项目来启动

1、新建 IDEA Application

2、配置 IDEA Application

  • Main classcom.ctrip.framework.apollo.assembly.ApolloApplication

  • VM options

    -Dapollo_profile=github
    -Dspring.datasource.url=jdbc:mysql://localhost:33061/ApolloConfigDB?  characterEncoding=utf8
    -Dspring.datasource.username=root
    -Dspring.datasource.password=123456
    -Dlogging.file=/Users/yunai/apollo-assembly.log

    • spring.datasource  配置连接 ApolloConfigDB 数据库。

    • loggine.file 配置日志输出文件。

  • Use classpath of  moduleapollo-assembly

3、启动 IDEA Application

启动时间需要 3 分钟左右,请耐心等待。当打开 http://localhost:8080/ 看到 APOLLO-ADMINSERVICE 和 APOLLO-CONFIGSERVICE 注册到 Eureka 中,代表启动成功。

4. PortalService

1、新建 IDEA Application

2、配置 IDEA Application

  • Main classcom.ctrip.framework.apollo.portal.PortalApplication

  • VM options

    -Dapollo_profile=github,auth
    -Ddev_meta=http://localhost:8080/
    -Dserver.port=8070
    -Dspring.datasource.url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
    -Dspring.datasource.username=root
    -Dspring.datasource.password=
    -Dlogging.file=/Users/yunai/apollo-portal.log

    • spring.datasource  配置连接 ApolloPortalDB 数据库。

    • loggine.file 配置日志输出文件。

  • Use classpath of  moduleapollo-portal

内置账号

  • username :Apollo

  • password :admin

3、启动 IDEA Application

启动时间很快。当打开 http://localhost:8070/ 。

5. Demo

考虑到下面的测试,需要创建测试的应用,编号为 100004458 。如下图所示:


1、新建 IDEA Application

2、配置 IDEA Application

  • Main classcom.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo

  • VM options

    -Denv=dev
    -Ddev_meta=http://localhost:8080

  • Use classpath of  moduleapollo-demo

3、启动 IDEA Application

  • 成功后,输出日志如下:

    Apollo Config Demo. Please input key to get the value. Input quit to exit.
    
  • 输入 "timeout" ,回车,输出如下:

    timeout
    > [apollo-demo][main]2018-04-22 11:12:43,345 INFO  [com.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo] Loading key : timeout with value: 6666
    
    • 此处便是我们在 Apollo Portal  中配置的 "timeout" 值。

666. 彩蛋

官方文档真的是完善。搭建环境 + 写文章,只花了 3 个小时左右。

另外,本文写的比较简单,详细的建议多看看官方文档。



欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢

已在知识星球更新源码解析如下:

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 20 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值