写在前面(声明)
声明:这里的各个内容基本都是平时看到的一些觉得有用的文章资讯的链接汇总,里面的内容都不是我的创作!
做个快乐的搬运工!
Nacos,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
社区&版本
- Nacos官方社区
- Nacos 2.0 正式发布,性能提升了 10 倍!!
概念原理
- 4 个维度搞懂 Nacos 注册中心
- 五十五张图告诉你微服务的灵魂摆渡者Nacos究竟有多强?
- 超硬核,Nacos实现原理详细讲解
- 说一下 Nacos 的健康检测机制?
- Nacos配置中心交互模型是 push 还是 pull ?
- 阿里巴巴 Nacos 分布式配置中心原理
使用
- nacos-docker镜像安装nacos并配置数据库
- Nacos 集群部署
- nacos修改默认的用户名密码
问题处理
- 解决 nacos 在 Spring boot admin 中不能监控到新服务注册的问题
- 一次 Nacos 导致的 CPU 飙高问题完整复盘
问题集锦
Nacos使用过程中发现的几个BUG处理,下载对应版本源代码,然后修改后重新打包放到本地Maven仓库即可
1.TIME_WAIT状态连接比较多的Bug修复:
将client模块的com.alibaba.nacos.client.config.impl.HttpSimpleClient.java和com.alibaba.nacos.client.naming.net.HttpClient.java两个类中的conn.disconnect()连接关闭修改为关闭流即可减少大量的TIME_WAIT状态连接(会下降到一半以下)
参考:
从nacos客户端的TIME_WAIT说起
Nacos社区Issues2.Nacos使用过程中客户端后台会报连接time out问题修复:
将client模块的com.alibaba.nacos.client.config.impl.ClientWorker.java中的超时时间修改为原来的1.5倍即可。
参考:
Nacos社区IssuesNacos使用过程中遇到重启服务器后,nacos的docker容器无法启动
使用docker restart命令重启nacos容器时,报错如下:
Error response from daemon: Cannot restart container nacos-standalone-mysql: driver failed programming external connectivity on endpoint nacos-standalone-mysql (08e59c1b4e617acf0d53c04b140563bebde809420c4f268d61841a146e4c811f): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9555 -j DNAT --to-destination 172.18.0.2:9555 ! -i br-90d384882576: iptables: No chain/target/match by that name.
(exit status 1))
经过网上搜索,发现一般这个问题都说需要使用 systemctl restart docker 命令进行重启即可;
从错误描述来看,应该是docker网络相关,因为服务器上还有其他docker,并不想重启docker服务;
且服务器上其他使用host模式的容器都正常启动了;然后我将nacos的docker容器的网络模式修改成host模式;
然后使用docker-compose -f standalone-mysql.yaml up -d 重构了容器。