当前位置: 首页 > news >正文

SpringBoot3+ApolloClient2.3.0集成Apollo2.4.0示例

一、Docker-Compose部署Apollo

  • 构建docker-compose启动文件
version: '3'
services:apollo-configservice:image: apolloconfig/apollo-configservice:latestnetworks:- apollo-networkports:- "20001:8080"environment:- SPRING_PROFILES_ACTIVE=dev- SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/ApolloConfigDB?characterEncoding=utf8- SPRING_DATASOURCE_USERNAME=root- SPRING_DATASOURCE_PASSWORD=123456- SPRING_DATASOURCE_DRIVER_CLASS_NAME=com.mysql.cj.jdbc.Driver- EUREKA_CLIENT_SERVICE_URL_DEFAULTZONE=http://apollo-configservice:8080/eureka/- EUREKA_INSTANCE_PREFER_IP_ADDRESS=true- EUREKA_INSTANCE_IP_ADDRESS=宿主机IP地址depends_on:- mysqlhealthcheck:test: ["CMD", "curl", "-f", "http://localhost:8080/health"]interval: 30stimeout: 10sretries: 15apollo-adminservice:image: apolloconfig/apollo-adminservice:latestnetworks:- apollo-networkports:- "20002:8090"depends_on:- apollo-configserviceenvironment:- SPRING_PROFILES_ACTIVE=dev- SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/ApolloConfigDB?characterEncoding=utf8- SPRING_DATASOURCE_USERNAME=root- SPRING_DATASOURCE_PASSWORD=123456- SPRING_DATASOURCE_DRIVER_CLASS_NAME=com.mysql.cj.jdbc.Driver- EUREKA_CLIENT_SERVICE_URL_DEFAULTZONE=http://apollo-adminservice:8090/eureka/- EUREKA_INSTANCE_PREFER_IP_ADDRESS=truehealthcheck:test: ["CMD", "curl", "-f", "http://localhost:8090/health"]interval: 30stimeout: 10sretries: 15restart: alwaysapollo-portal:image: apolloconfig/apollo-portal:latestnetworks:- apollo-networkports:- "20003:8070"depends_on:- apollo-configservice- apollo-adminserviceenvironment:- APOLLO_PORTAL_AUTH_ENABLED=true- APOLLO_PORTAL_AUTH_TYPE=database- SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/ApolloPortalDB?characterEncoding=utf8- SPRING_DATASOURCE_USERNAME=root- SPRING_DATASOURCE_PASSWORD=123456- SPRING_DATASOURCE_DRIVER_CLASS_NAME=com.mysql.cj.jdbc.Driver- APOLLO_PORTAL_ENVS=dev- DEV_META=http://apollo-configservice:8080- EUREKA_CLIENT_SERVICE_URL_DEFAULTZONE=http://apollo-configservice:8080/eureka/- EUREKA_INSTANCE_PREFER_IP_ADDRESS=truehealthcheck:test: ["CMD", "curl", "-f", "http://localhost:8070/health"]interval: 30stimeout: 10sretries: 5mysql:image: mysql/mysql-server:8.0.26container_name: mysql_apollonetworks:- apollo-networkenvironment:MYSQL_ROOT_PASSWORD: 123456MYSQL_DATABASE: ApolloConfigDB,ApolloPortalDBvolumes:- ./mysql-data:/var/lib/mysql- ./sql/:/docker-entrypoint-initdb.dports:- "3310:3306"healthcheck:test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]interval: 10stimeout: 5sretries: 10volumes:mysql-data:networks:apollo-network:driver: bridge
  • 启动后修改ApolloConfigDB.ServerConfig表的eureka.service.url=http://172.31.0.3:8080/eureka/**
    • 注意:由于我这里是使用docker部署的,所以需要作如下修改:
修改前:eureka.service.url: http://localhost:8080/eureka/
修改后:eureka.service.url: http://172.31.0.3:8080/eureka/
注意:- 这里的 172.31.0.3 是 apollo-configservice 容器的ip地址- 此ip地址使用 docker inspect apollo-configservice 命令查询获取,"IPAddress"选项值
  • 访问http://宿主机IP:20003/
    • 账号/密码:apollo/apollo23
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

二、创建本地SpringBoot3.3.4示例项目

  • pom文件:
<properties><java.version>17</java.version><spring-boot.version>3.3.4</spring-boot.version><apollo.version>2.3.0</apollo.version></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- Apollo 客户端 --><dependency><groupId>com.ctrip.framework.apollo</groupId><artifactId>apollo-client</artifactId><version>${apollo.version}</version></dependency></dependencies>
  • application.yml
server:port: 8081spring:application:name: apolloapp:id: demo-2026
apollo:meta: http://宿主机IP:20001bootstrap:enabled: trueeagerLoad:enabled: truenamespaces: applicationaccess-key:# 下一步中的访问密钥secret: xxx
  • 密钥

    • 注意:点击管理密钥后,密钥需启用
      在这里插入图片描述
      在这里插入图片描述
  • 启动类

import com.ctrip.framework.apollo.spring.annotation.EnableApolloConfig;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;// @EnableApolloConfig("apollo.yml") // 指定创建的Namespace(如果没有新创建Namespace,可不设置)
@SpringBootApplication
public class ApolloApplication {public static void main(String[] args) {SpringApplication.run(ApolloApplication.class, args);}
}
  • 访问层
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {@Value("${test-config:apollo}")private String appName;@GetMapping("/hello")public String hello() {return "Hello from " + appName;}
}

三、验证

  • 浏览器访问:http://localhost:8081/hello
    在这里插入图片描述
  • 修改apollo中配置值
    在这里插入图片描述
  • 再次访问
    在这里插入图片描述
    代码示例:https://gitee.com/hyb_repository/demo-2026
http://www.dtcms.com/a/577390.html

相关文章:

  • UDP的recvfrom会返回一个完整的数据报
  • Rust实战教程:做一个UDP聊天软件
  • 基于遥感解译与GIS技术生态环境影响评价图件制作
  • 用asp制作一个简单的网站零基础学电脑培训班
  • 广东如何进行网站制作排名做网站在哪里买空间域名
  • 数据结构(长期更新)第6讲:双向链表
  • Debian系统的多内核共存
  • HTTPS 请求抓包,从原理到落地排查的工程化指南(Charles / tcpdump / Wireshark / Sniffmaster)
  • Debian 12 笔记本合盖不休眠设置指南
  • 线性代数 - 奇异值分解(SVD Singular Value Decomposition)- 奇异值在哪里
  • 商城网站开发的完整流程图视频制作价格明细
  • 如何保证Redis和Mysql数据缓存一致性?
  • 八股-Mysql 基础篇(1)
  • 建设公司网站需要准备什么科目苏州建网站的公司
  • Git 某个分支恢复到某个特定的 commit 状态
  • 【Prompt学习技能树地图】生成知识提示技术的深度解析与应用
  • 家用电脑怎么做网站服务器创意设计之都
  • 使用 Spire.XLS for Python 将 Excel 转换为 PDF
  • vue3封装el-dialog
  • 河南郑州网站顾问大连建设工程信息网官网入口
  • 记录一次K8S跨命名空间访问 xxx.xxx.svc.cluster.local 类似内部服务不通的问题
  • Go Slice 实现原理深度解析:从底层机制到工程实践
  • 网站开发需要什么基础只是怎么下载文件
  • Centos 7安装Apache Drill
  • AI与电力的深度绑定:算力与能源分配的趋势分析
  • 【轨物洞见】 新型能源体系建设:十五五规划建议推进能源转型
  • 第四代核反应堆:未来能源的“安全高效革命”
  • HarmonyOS实战项目:打造沉浸式AR导航应用(空间计算与虚实融合)
  • 建行信用卡网站官网入口2022好用值得推荐的搜索引擎
  • 多模态化学信息重建系统CIRS-图像处理单元复现源码:从化学结构图像到图形化基元的转化