依赖:
<!-- Add apollo configuration --> <dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</artifactId> <version>${apollo.version}</version> </dependency> <apollo.version>1.9.0</apollo.version>
主类:
@Cacheable @EnableSwagger2 @EnableRetry @SpringBootApplication @EnableApolloConfig public class Application {
application.properties (也可以不配置)
#The App Id app.id = MILESTONE-SUBSCRIPTION-SERVICE //应用名称 # Apollo Meta Server , it will be diable when docker deployed apollo.meta = http://192.168.3.153:8080 //apollo conifg server #The configuration cache directory apollo.cacheDir = ./config //配置缓存路径 apollo.bootstrap.enabled = true # application namespace apollo.bootstrap.namespaces = application,application.yml
注入非默认application
namespace或多个namespace的配置示例
apollo.bootstrap.namespaces = application,FX.apollo,application.yml
启动:
java -Denv=$AP_ENV -jar /opt/milestone-subscription-service-0.0.1-SNAPSHOT.jar--apollo.meta=$CONFIG_SERVERS
java -Denv=dev -jar milestone-subscription-service-0.0.1-SNAPSHOT.jar --apollo.meta=192.168.18.129:8080
$AP_ENV= 可以是: dev , pd , test, qa
$CONFIG_SERVERS: apollo 配置服务的config 服务的IP:port
配和docker 使用
Dockerfile:
FROM frolvlad/alpine-oraclejre8:slim VOLUME /tmp ADD milestone-subscription-service-0.0.1-SNAPSHOT.jar /opt/milestone-subscription-service-0.0.1-SNAPSHOT.jar COPY agent/ /usr/local/skyagent/ WORKDIR /opt COPY docker-entrypoint.sh . ENV AP_ENV=$AP_ENV EXPOSE 7015 ENTRYPOINT ["sh", "docker-entrypoint.sh"]
docker-entrypoint.sh:
#!/bin/sh if [ x"$AP_ENV" = x ] then echo "AP_ENV IS NULL , USE DEFAULT DEV AS DEFAULT !" echo "dev=$AP_ENV" else echo "AP_ENV IS $AP_ENV !" fi if [ x"$AGENT_SERVICE_NAME" = x ] then echo "No MS Trace Agent $AGENT_COLLECTOR_ADDRESS Setting, @@ NOT USE MS TRACE !" java -Denv=$AP_ENV -jar /opt/milestone-subscription-service-0.0.1-SNAPSHOT.jar--apollo.meta=$CONFIG_SERVERS else echo " USE MS TRACE Agent to start the service !" java -Denv=$AP_ENV -javaagent:/usr/local/skyagent/skywalking-agent.jar=agent.service_name=$AGENT_SERVICE_NAME,collector.backend_service=$AGENT_COLLECTOR_ADDRESS $JAVA_OPTS -jar /opt/milestone-subscription-service-0.0.1-SNAPSHOT.jar --apollo.meta=$CONFIG_SERVERS fi
docker run :
#############Start with skywalking sudo docker run -it -d --restart unless-stopped --name ICIL-ESOLUTION-APPLICATION -m 400m --memory-reservation 200m --net host -v /opt/docker/logs/icil-epluss-service/log/:/tmp/esolutions/logger/info -v /etc/localtime:/etc/localtime:ro -e 'AP_ENV=dev' -e 'JAVA_OPTS=-Xmx128m -Xss512k' -e 'CONFIG_SERVERS=http://10.190.30.153:8080' -e 'AGENT_SERVICE_NAME=ICIL-ESOLUTION-APPLICATION' -e 'AGENT_COLLECTOR_ADDRESS=109.160.30.153:11800' icildev/debug:icil-esolution-application-v1.4 #############Start without skywalking sudo docker run -it -d --restart unless-stopped --name ICIL-ESOLUTION-APPLICATION -m 400m --memory-reservation 200m --net host -v /opt/docker/logs/icil-epluss-service/log/:/tmp/esolutions/logger/info -v /etc/localtime:/etc/localtime:ro -e 'AP_ENV=dev' -e 'JAVA_OPTS=-Xmx128m -Xss512k' -e 'CONFIG_SERVERS=http://10.190.30.153:8080' icildev/debug:icil-esolution-application-v1.4
-e 'CONFIG_SERVERS=http://109.160.30.153:8080' == apollo 配置中心的config 的ip:port
-e 'AGENT_SERVICE_NAME=ICIL-ESOLUTION-APPLICATION' ==skywalking 代理项目名== 项目名
-e 'AGENT_COLLECTOR_ADDRESS=102.160.30.153:11800' ==skywalking 的collecor 的ip:port
-v /etc/localtime:/etc/localtime:ro 时间同步
docker run -it -d --restart unless-stopped --name icil-reception-service -m 500m --memory-reservation 200m --net host -v /opt/docker/logs/app/log/:/tmp/icil-payment-service/ -v /etc/localtime:/etc/localtime:ro -e 'AP_ENV=dev' -e 'JAVA_OPTS=-Xmx256m -Xss1024k' -e 'CONFIG_SERVERS=http://192.168.31.123:8080' -e 'AGENT_SERVICE_NAME= reception-service' -e 'AGENT_COLLECTOR_ADDRESS=192.168.123.177:11800' 192.168.192.33:5000/dockerreponsitoryreception-service:tr_1.0.0
分类:
配置中心Apollo
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?