linux 下安装部署 apollo, 本地 springboot 整合 apollo 获取参数(亲测成功)

本贴最后更新于 1600 天前,其中的信息可能已经水流花落

1.linux 部署 apollo

1.1.环境准备

 jdk : 1.8+      mysql  5.6.5+

1.2.下载上传到服务器

两种方式:

1.2.1.下载源码自己编译(需要修改源码的可以选择)

  https://github.com/ctripcorp/apollo

1.2.2.下载官方编译好的

  https://github.com/ctripcorp/apollo/releases

我选择的是第二种,本地下载这三个文件:
在这里插入图片描述
新建一个 apollo 目录,在 apollo 下新建 apollo-adminservice,apollo-configservice,apollo-portal 三个目录,将三个压缩包分别上传到对应的文件夹下面,分别解压后删除压缩包,解压后的目录结构:

解压命令:unzip xxx.zip

在这里插入图片描述

1.3.下载 sql 文件,生成数据库

地址:https://github.com/nobodyiam/apollo-build-scripts/tree/master/sql
下载两个数据库文件并加载到自己的数据库上:
在这里插入图片描述

1.4.修改配置

1.4.1.分别修改三个服务下的数据连接配置文件 /config/application-github.properties

在这里插入图片描述

1.4.2.分别修改三个服务下的启动端口号配置文件 /scripts/startup.sh(可选)

三个服务默认端口号:
apollo-adminservice:8090;
apollo-configservice:8080;
apollo-portal:8070;
我修改为:
apollo-adminservice:8001;
apollo-configservice:8002;
apollo-portal:8003;
在这里插入图片描述

1.4.3.修改 apollo-portal 服务的下的 meta 配置:apollo-portal/config/apollo-env.properties

这里的地址是 apollo-configservice 的服务地址,分别是不同环境下的服务地址,这里我只配置了(开发-dev)环境下的地址。(服务器 ip+ 端口)
在这里插入图片描述

1.4.4.修改数据库中的 meta 地址

修改 apolloconfigdb 数据库中 serverconfig 表中的 eureka.service.url:其中的地址为 apollo-configservice 的服务地址:
在这里插入图片描述

1.5.在 apollo 目录下编写启动 start.sh 和关闭 shutdown.sh 脚本

start.sh:

#!/bin/bash
/usr/apollo/apollo-configservice/scripts/startup.sh
/usr/apollo/apollo-adminservice/scripts/startup.sh
/usr/apollo/apollo-portal/scripts/startup.sh

shutdown.sh

#!/bin/bash
/usr/apollo/apollo-adminservice/scripts/shutdown.sh
/usr/apollo/apollo-configservice/scripts/shutdown.sh
/usr/apollo/apollo-portal/scripts/shutdown.sh

在这里插入图片描述

1.6.启动服务访问 apollo

运行 start.sh,启动三个服务后:输入如下地址
http://自己的ip地址:8003/
这是 portal 的服务地址(注意自己修改的端口号)

在这里插入图片描述
账号:apollo,密码:admin;
在这里插入图片描述

2.springBoot 整合 apollo 并获取参数

2.1.项目引入 apollo 依赖

 <dependency>
            <groupId>com.ctrip.framework.apollo</groupId>
            <artifactId>apollo-client</artifactId>
            <version>1.4.0</version>
 </dependency>

2.2.apollo 发布配置

新建项目:
在这里插入图片描述
在这里插入图片描述
点击新增配置:
在这里插入图片描述
填写配置点击提交:
在这里插入图片描述
点击发布:
在这里插入图片描述
在这里插入图片描述

2.2 添加 eureka 注册地址(网络策略)

分布式部署的时候,本地访问服务器上的 Apollo,apollo-configservice 和 apollo-adminservice 需要把自己的 IP 和端口注册到 Meta Server(apollo-configservice 本身)。
参考官官方给的解决方案:

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

在这里插入图片描述
解决步骤:
在这里插入图片描述

在服务器下的 admin 和 config 服务的 startup.sh 分别添加:

-Deureka.instance.ip-address=服务器ip地址

添加在 export JAVA_OPTS 的下面:
在这里插入图片描述
添加之后,重启三个服务,用之前写好的 shutdown.sh 关闭,start.sh 启动。

2.3.application.yml

spring:
  application:
    name: apollo-test

server:
  port: 80

#apollo相关配置
# apollo 相关配置
app:
  id: apollo-test # 与 Apollo 配置中心中的 AppId 一致

apollo:
  meta: http://自己服务器ip地址:8002 # Apollo 中的 Eureka 注册中心地址
  #cluster:  # 指定 Apollo 集群,默认为 default,相同集群实例使用对应集群的配置
  #cacheDir:  # 配置缓存目录,网络不可用时任然可提供配置服务
  bootstrap:
    enable: true # 启用 apollo

2.4.启动类添加 @EnableApolloConfig 注解:

在这里插入图片描述

2.5.controller 获取:

在这里插入图片描述
访问得到 applo 配置:
在这里插入图片描述

  • apollo
    2 引用
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3190 引用 • 8214 回帖 • 1 关注
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    946 引用 • 943 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...