apollo-springboot 整合使用

该博客介绍了如何在Spring Boot应用中集成Apollo配置中心和SkyWalking监控。首先,通过添加Apollo的Maven依赖并配置相关属性,实现了动态配置的加载。然后,利用环境变量启动应用,连接到Apollo配置服务器。接着,展示了Dockerfile和docker-entrypoint.sh脚本,用于在Docker环境中部署应用,并根据环境变量选择是否启用SkyWalking监控。最后,提供了两个Docker运行示例,分别展示启用和不启用SkyWalking的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

依赖:

  <!-- Add apollo configuration -->
        <dependency>
            <groupId>com.ctrip.framework.apollo</groupId>
            <artifactId>apollo-client</artifactId>
            <version>${apollo.version}</version>
         </dependency>            


<apollo.version>1.4.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

启动:

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=10.160.3.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://10.160.3.153:8080'   == apollo 配置中心的config 的ip:port

  -e 'AGENT_SERVICE_NAME=ICIL-ESOLUTION-APPLICATION'  ==skywalking 代理项目名== 项目名

  -e 'AGENT_COLLECTOR_ADDRESS=10.160.3.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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值