版本前提
- springboot版本:2.1.6
- dubbo版本:2.7.9
- nacos版本:1.1.4
1. dubbo项目启动后出现大量休眠线程
如图,项目启动完成就有大约1000左右的线程。这些线程一直保留到程序结束,不会被销毁。
这是dubbo的bug,将项目中的dubbo版本升级到2.7.9就可以了。
<!-- dubbo starter -->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.9</version>
</dependency>
配置列表自动出现很多以接口为group的配置文件,并且有非常多nacos线程,正常吗?
#4491
2. 大量关于nacos连接的异常日志
似乎只有当nacos部署集群的时候才会出现,引入nacos后,大量的上线、下线日志,配置拉取日志、心跳日志和长轮询日志以及更多的连接拒绝、连接超时错误日志。会占用大量的空间,一不注意硬盘就满了。
这些信息价值不高,出现的异常信息是由于nacos自身的bug,并不影响nacos和应用的运行及服务。
-
升级nacos的客服端以及服务端到最新的稳定版。
-
或者关闭nacos客户端的日志输出,配置如下:
–logging.level.com.alibaba.nacos=off
此配置必须放到启动参数中,放在配置文件里无法生效,原因未知。
- 调整nacos客户端的输出级别
这种方式与上一项配置思路相同,按照网上的一些说法 “https://blog.51cto.com/u_7075695/3020019?ivk_sa=1024320u” ,可以通过调整nacos客户端的Naming和config的日志级别来解决,这种方式可能更为理想:
-Dcom.alibaba.nacos.config.log.level=error -Dcom.alibaba.nacos.naming.log.level=error
但是以上配置在我的项目中无法生效,不管是放在jvm参数中还是启动参数中。
3. nacos配置中心出现没用的配置项
项目启动后,nacos的配置列表中出现很多了以dubbo为group的api和许多mapping开头的group。
关闭dubbo的配置中心配置就可以了,可以放在启动参数或者配置文件里。
dubbo:
registry:
use-as-config-center: false
dubbo 集成 nacos注册中心 ,配置列表会自动创建很多无关的配置
#6645
4. 其他的一些配置
- nacos服务端的tomcat配置
nacos是一个springboot项目,可以调整springboot内置的tomcat参数来调整nacos的吞吐量:
#等待队列长度,当可分配的线程数全部用完之后,后续的请求将进入等待队列等待,等待队列满后则拒绝处理,默认100
server.tomcat.accept-count=2000
#最大工作线程数,默认200
server.tomcat.max-threads=500
-
nacos客户端的连接配置
#调高连接超时时间,默认是3s。需要配置到JVM参数
-Dcom.alibaba.nacos.client.naming.ctimeout=10
#nacos客户端向服务端发送心跳的时间间隔,默认5s
–spring.cloud.nacos.discovery.heart-beat-interval=15