apollo使用笔记

apollo界面 略

这里面涉及项目的创建,命名等。 暂略。

项目中配置apollo

pom.xml中引入(下列配置只是示例,不能直接用):

<dependency>
	<groupId>com.test.ddd.gfs</groupId>
	<artifactId>apollo-client</artifactId>
	<version>1.1.4</version>
</dependency>

application.yml中添加:

#apollo配置
app:
  id: maas-crmInfo # 这个是集群名称,必传
apollo:
  bootstrap:
    eagerLoad:
      enabled: true
    enabled: true
    namespaces: crm-application # 这个是命名空间

发现了吧,application.yml中没有常规的配置了,因为都放到apollo平台了。

apollo本地化

那么apollo可以本地化吗?如果不能本地话,那么调试起来太不方便了。
答案肯定是能。
1、先准备zip包(从网上找个即可)。 Win_opt.zip放到c:\opt下。
2、idea右键Edit Configurations,vm options填入:
-Dapollo.private.key=C:\opt\data\maas-fpInfo\apollo_key_gen\apollo_private_key

然后启动项目,本地的opt目录就会生成所需文件。
主要的文件有2个。
第一个,C:\opt\settings\server.properties文件。
sit配置示例:

env=SIT
apollo.meta=http://apolloconfig.test.sit
idc=sit+e8e7bcec11c6728bfdddasdfasdfd56c00
#idc=uat+e8e7bcec11c34857234132e0edc61030d56c00

本地化配置示例:

env=Local # 其实配置了local之后下面的参数无效了,因为直接从本地读取了
apollo.meta=http://apolloconfig.test.sit
idc=sit+e8e7bcec11c6728bfdddasdfasdfd56c00

第二个,C:\opt\data\maas-crmInfo\config-cache\maas-crmInfo+sit+e8e7bcec11c6728bf39yoiwueo1030d56c00+crm-application.properties文件
配置也会自动生成,改一些参数为本地即可。

linux手动创建apollo文件夹

如果opt已有其他文件,怕覆盖,那么也可以手动创建目录。

脚本(先把项目编号处替换为实际的appid),脚本:

mkdir -p /opt/data/项目编号/apollo_key_gen;
mkdir -p /opt/data/项目编号/config-cache;
touch /opt/data/项目编号/apollo_key_gen/apollo_private_key;
mkdir -p /opt/settings;
touch /opt/settings/server.properties;
chmod -R 755 /opt/*;

apollo热更新机制值的借鉴

对接的时候嫌麻烦,实际用起来后是比较方便的,尤其是它的热更新,@Value值发布后可以实时生效,连重启服务都不用,确实666。
个人感觉,机制可能是点发布会根据在线列表将变动发到每个对应节点,因为对接的时候引入了apollo的jar包,里面肯定有类似于监听器的功能,收到变动然后刷新spring上下文,就实现了热更新。

apollo密码加密 todo

apollo问题排查

apollo启动报错(注:这不是错误)

注:这里的namespace和实际配置的可能不一样,但并不是错误,因为默认就会打印application。
只要配置可以正确拉回来,以及界面实例节点可以正确展示,就说明apollo没问题。

2024-04-24 19:54:56.942 main tUuid: sonUuid: forUuid: -- WARN custom [com.ctrip.framework.apollo.internals.RemoteConfigRepository_loadApolloConfig] - Load config failed, will retry in 1 SECONDS. appId: test-app, cluster: prod+ffffffffffffff, namespaces: application

配置拉取不到

1、网络不通
例如vpn没连,或多个vpn冲突,连不上肯定拉不回来。
2、app.id未设置
相当于没配置集群,那谁知道从哪里拉呢?
3、pom.xml没有引入apollo
这属于低级错误了,但是确实可能出现,没有引入就不会走apollo的流程,当然拉取不到了。

版本不对

例如1.1.4是新版,老版本的可能有问题。

apollo报错404是有问题吗

一开始以为有问题,后来发现即使有这个报错服务也正常,说明并没有问题。

apollo什么时候会拉取配置

1、服务启动时,会拉取最新配置。
2、apollo发布时,会把最新配置发到各个节点。
如果本地配置不是最新,会覆盖。
如果本地已经有了配置,那么说明不影响服务了。

除此之外还会有交互吗?
之前遇到过问题,有人说不会。
实测日志中搜索apollo,发现有交互。
1、日志中每秒一次心跳向apollo请求。
2、有时报错404但是不影响服务。

记录这个主要是对机制进一步了解。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值