# apollo 单机部署 (快速安装)

Apollo 官网:https://www.apolloconfig.com/#/zh/deployment/quick-start-docker
官网单机部署的方式分为两种:普通部署和 docker 部署。

# 1、普通部署

需要安装 MySQLJava 环境。
Apollo 服务端共需要两个数据库: ApolloPortalDB (apollo 页面) 和 ApolloConfigDB (apollo 使用的),把数据库、表的创建和样例数据都分别准备了 sql 文件,只需要导入数据库即可。
ps:数据库Mysql的版本建议在5.7以上, 最低要求5.6.4以上

然后建立数据库连接,进入到快速包下面 ( apollo-quick-start ), 下面有 demo.sh , 进行编辑:
将对应的数据库名和地址修改成自己的。

在启动服务之前需要确认 807080808090 端口未被占用,然后直接启动 ./demo.sh

./demo.sh start

等待启动完毕之后,通过你的外网 ip 访问 807080808090 这几个端口就可以了。

# 2、docker 部署

基于上述环境,我们暂停 demo.sh 的执行: ./demo.sh stop , 在快速包中 ( apollo-quick-start ) 使用 docker-compose up 运行;

# 3、SpringBoot 中集成

先添加 maven 依赖

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

然后去 yml 文件里面增加以下配置

server:
  port: 8000
app:
  id: apolloTest
apollo:
  bootstrap:
    enabled: true
  meta: http://服务器外网地址:8080

最后,在启动类上开启 apollo: @EnableApolloConfig

@SpringBootApplication
@EnableApolloConfig
public class ApolloTestApplication {
    public static void main(String[] args) {
        SpringApplication.run(ApolloTestApplication.class, args);
    }
}

在服务器部署的 Apollo 会有问题,客户端请求的时候地址会出现服务器的内网地址,那肯定是访问不到的。

所以我们进行以下设置:
指定应用的 AppId

app.id=apolloTest

在服务启动设置上配置 apollo 参数;

-Dapollo.configService=http://服务器外网地址:8080

如果上述方法不管用,那么还有一种解决方案,但是这种方案只适用于普通部署,不适用于 docker 部署。

# 4.eureka 内网访问解决方案参考

参考下图,我们增加配置
-Deureka.instance.ip-address=你的公网IP