Nacos 1.2.0版本引入公司落地使用记录

NACOS适配Docker部署修改

Eureka在奈飞那边已经是不维护状态,而且在我们之前的使用过程中偶发性会有一些http请求超时的日志,
nacos的长连接实时刷新、分组分集群、权重路由、管理界面、附带配置中心等功能点,让我下定决心准备落地尝新一波~

目前业务服务全部部署在公司的Docker服务上,nacos集群模式是要写死地址在配置文件里面的(2019.01.17),所以在引入nacos作为注册中心我还需要对源码做一些适配修改,修改点如下:

集群模式ip列表注册与刷新

ServerListService的getApacheServerList是读取cluster.conf地址列表的入口,所以通过特有环境变量判断一下当前部署环境,虚机就走原逻辑,若是docker则走自定义逻辑,上报自己最新的服务列表地址。

Docker服务的ip地址与端口映射

部署在docker上,服务真实暴露端口与容器的端口是映射关系,例如nacos在容器里面启动端口为8848,外部端口举例可能为33268,nacos集群列表之间会彼此发送心跳来同步状态,所以涉及此处的地址与端口我们都要修改成对外真实端口,ParamUtil、InetUtils、RunningConfig、ServerListManager等类的相关内容都做动态判断修改即可,幸亏改的地方不多,多希望阿里把这块代码逻辑抽象一下考虑一下docker部署的情况统一全局改动一下就能支持就好了。

服务下线不删除?

改完之后发现服务下线不删除,细细排查一番,发现nacos下线实例是在请求本地localhost+运行server端口号的地址来操作下线的,而我修改了端口映射,所以适配修改的时候要把端口这块也要改一下。
nacos有自动关闭健康检查机制,最开始我发现有实例下线健康状态没变,剔除实例前会判断这个开关状态,在这里我把这个开关状态判断去除掉了, 直接进入心跳时间差判断处理逻辑。

日志路径

日志路径就比较简单了,在SpringApplicationRunListener的实现类的声明周期方法environmentPrepared方法设置自己希望的日志输出路径即可~。

就此,一些小修改完毕,nacos成功部署在公司docker服务上,大家如果有相关需求可以大概参看以下我这个很粗略的介绍,应该是够用的哈哈~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值