几个集群的总结(二)dubbo
dubbo部分
官方用户手册:http://dubbo.io/books/dubbo-user-book/
注册中心:zookeeper。
所以需要有一个zookeeper集群,zk集群节点数量为奇数2n+1,n>0。一般3台机子即可。
Provider组:2+台机子
Consumer组:2+台机子
管控台:1台
所以一共需要3+2+2+1=8台机子(最少的数目)。
架构图如下:
dubbo集群机构图需要注意的是:
①dubbo版本问题,2.5.3版本@service注解不能被继承,如果和spring的事物注解@transaction放在一起会导致事物问题。
Dubbo的优雅关机,kill pid (kill -9 pid不会优雅关机)。原因:dobbo优雅关机是使用JDK的ShutdownHook来实现的。
JDK提供了Java.Runtime.addShutdownHook(Thread
hook)方法,可以注册一个JVM关闭的钩子,这个钩子可以在一下几种场景中被调用:
1)程序正常退出
2)使用System.exit()
3)终端使用Ctrl+C触发的中断
4)系统关闭
5)OutOfMemory宕机
6)使用Kill pid命令干掉进程(注:在使用kill -9 pid时,是不会被调用的)
②dubbo线程模型中的线程数目和linux系统中用户线程数限制,一般需要调整。
调整时要注意:
1、尽量不要使用 root 用户来部署应用程序,避免资源耗尽后无法登录操作系统。
2、普通用户的线程数限制值要看可用物理内存容量来配置
计算方式:
default_nproc = total_memory/128K
ulimit -a # 显示目前资源限制的设定
ulimit -u #用户最多可开启的程序数目
重启, 使之生效:#reboot。
总结的比较抽象,集群搭建不复杂,敲一堆命令搞定,dubbo相关的细节参考官方文档。
完。