服务器之Apollo单机部署(快速安装)

部署Apollo

apollo单机部署(快速安装)

Apollo官网:Apollo
官网单机部署的方式分为两种:普通部署和docker部署。

普通部署

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


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

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

==== starting service ====
Service logging file is ./service/apollo-service.log
Started [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.log
Started [10846]
Waiting for portal startup......
Portal started. You can visit http://localhost:8070 now!

首先会启动erueka服务,然后启动portal 配置中心,最后访问[http://服务器外网地址:8070](http://服务器外网地址:8070)即可;账号:apollo,密码:admin;具体如下图所示:
 

docker部署

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

SpringBoot集成Apollo

这一步就是个坑😂,创建SpringBoot不多说,在maven仓库找到客户端;


取最新版即可(截至2022年10月21日):

<!-- https://mvnrepository.com/artifact/com.ctrip.framework.apollo/apollo-client -->
<dependency>
    <groupId>com.ctrip.framework.apollo</groupId>
    <artifactId>apollo-client</artifactId>
    <version>2.0.1</version>
</dependency>

错误配置:

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


需要对应起来,新增配置key:service,value:hello world,并且是已发布

public class TestController {

    @Value(value = "${service}")
    private String name;

    @RequestMapping("test")
    public String test(){
        return "hello world -->"+name;
    }
}

本文作者:xbhog

本文链接:https://www.cnblogs.com/xbhog/p/16812650.html

<think>嗯,用户正在寻找Apollo配置中心部署教程。从对话历史看,用户之前可能接触过一些系统部署相关的技术内容(比如引用中提到的Docker命令),但这次明确聚焦在Apollo这个具体工具上。 用户的需求很清晰——需要部署指南。不过考虑到Apollo部署涉及多个组件(ConfigService/AdminService/Portal等),应该优先提供官方推荐的标准方案,同时突出关键注意事项。用户可能是个中间件工程师或DevOps,正在搭建微服务配置管理体系。 注意到引用[2]提到过Docker命令,推测用户环境可能偏向容器化部署,所以重点整理Docker Compose方案更实用。但也不能忽略物理机部署的场景,毕竟有些企业仍用传统服务器部署中最容易出错的是数据库初始化和服务连通性,需要特别强调: 1 数据库部分必须手动执行SQL初始化脚本,否则服务启动会报错 2 Eureka地址配置必须保持所有组件一致,否则服务无法注册 3 Portal的元数据配置要指向实际AdminService地址 用户可能没意识到Apollo对Java环境的依赖,需要明确JDK版本要求。另外生产环境一定会关心高可用方案,虽然用户没直接问,但教程里应该包含集群部署的关键提示。 最后补充的“常见问题”是预判用户后续可能遇到的坑,比如端口冲突或内存不足——这些在初次部署时极高概率会出现。如果用户后续遇到具体问题,可以再深入排查。</think>以下是Apollo配置中心的详细部署教程,包含主流部署方式和关键步骤: --- ### 一、部署方式选择 1. **快速体验**:Docker Compose(单机模式) 2. **生产环境**:Kubernetes集群部署 3. **传统服务器**:物理机/虚拟机部署 --- ### 二、Docker Compose部署(推荐开发测试) #### 1. 准备工作 ```bash # 下载官方部署包 git clone https://github.com/apolloconfig/apollo-quick-start cd apollo-quick-start ``` #### 2. 修改数据库配置 编辑`docker-compose.yml`: ```yaml environment: # 修改为你的MySQL连接信息 SPRING_DATASOURCE_URL: jdbc:mysql://your_mysql:3306/ApolloConfigDB?useSSL=false SPRING_DATASOURCE_USERNAME: root SPRING_DATASOURCE_PASSWORD: YourPassword123 ``` #### 3. 启动服务 ```bash docker-compose up -d ``` > **关键组件**: > - ConfigService(端口8080) > - AdminService(端口8090) > - Portal(端口8070)[^1] #### 4. 验证部署 访问控制台: ``` http://localhost:8070 默认账号: apollo/admin ``` --- ### 三、生产环境部署要点 #### 1. 数据库要求 ```sql CREATE DATABASE ApolloConfigDB DEFAULT CHARSET utf8mb4; CREATE DATABASE ApolloPortalDB DEFAULT CHARSET utf8mb4; ``` > 需手动执行官方SQL脚本初始化表结构[^2] #### 2. 集群部署架构 ```mermaid graph LR Portal-->|管理|AdminService集群 Client-->|读取配置|ConfigService集群 AdminService-->ConfigService ConfigService-->Eureka注册中心 ``` #### 3. Kubernetes部署示例 ```yaml # ConfigService部署片段 apiVersion: apps/v1 kind: Deployment metadata: name: apollo-configservice spec: replicas: 3 template: spec: containers: - name: configservice image: apolloconfig/config-service:2.1.0 env: - name: SPRING_DATASOURCE_URL value: "jdbc:mysql://mysql-service/ApolloConfigDB" ``` --- ### 四、配置中心接入流程 1. **应用接入**(Spring Boot示例): ```properties # application.properties app.id=your-application-id apollo.meta=http://configservice-ip:8080 ``` 2. **配置发布**: - 在Portal创建AppID - 添加Namespace(如application.yml) - 发布配置项 --- ### 五、常见问题解决 1. **服务注册失败** 检查Eureka地址:`eureka.service.url` 需指向ConfigService集群 2. **数据库连接异常** 验证数据库权限及`max_allowed_packet`(建议>64MB) 3. **配置推送延迟** 调整通知间隔:`apollo.refreshInterval=5`(秒) > 官方推荐生产环境配置: > - ConfigService至少2节点 > - MySQL主从集群 > - 开启配置加密(`server.encrypt.key`)[^2] ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值