⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

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


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

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

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

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

1. 依赖工具

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

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

  • JDK :1.8+
  • MySQL :5.6.5+
  • Maven
  • IntelliJ IDEA

2. 创建数据库

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

  • ApolloPortalDB
  • ApolloConfigDB

在 Apollo 项目下的 scripts 目录,提供了对应的初始化脚本: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 新建 Application

2、配置 IDEA Application 配置 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 启动 Application

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

4. PortalService

1、新建 IDEA Application

2、配置 IDEA Application 配置 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/ 。http://localhost:8070/

5. Demo

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


1、新建 IDEA Application

2、配置 IDEA Application 配置 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 个小时左右。

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

知识星球

文章目录
  1. 1. 1. 依赖工具
  2. 2. 2. 创建数据库
    1. 2.1. 2.1 创建 ApolloPortalDB
    2. 2.2. 2.2 创建 ApolloConfigDB
  3. 3. 3. ConfigService && AdminService
  4. 4. 4. PortalService
  5. 5. 5. Demo
  6. 6. 666. 彩蛋