分布式系统设计注意点

今天看了陈硕前辈的博客,对分布式系统设计提出的注意几点非常受益匪浅,做点读后笔记。

注意:

1.设计集群要方便重启,能自动连接,重启速度快

2.不要使用生命周期比进程多得ipc,比如共享内存

3.不要使用父子进程传递数据,不如pipe

4.DNS解析不要用,使用自己的名字服务,可用elang编写,使用paxos算法

5.建立维修通道,节点状态,服务进程等

6.分布式系统是以进程为基本单位的。

7.通信模型的编程风格,以消息为事件,采用事件驱动分发,reactor

8.考虑对方失去响应的情况

9.心跳包:包括进程的启动时间和负载,不要单独起心跳线程,而是在工作线程中启动

10.消息格式不要用C STRUCT或是bit fields,避免协议版本,建议使用google protocol buffers,apache thrift的消息打包格式

11.采用正则表达式在运行期间替换,避免重启时编译,部署

12.信号量不要用,读写锁基本不用。

13.建议用一个线程一个消息循环非阻塞模式

14.用心跳包实现重启

15.进程间通信用tcp

16 使用四元组标志唯一进程:ip(hostname):port:start_time_pid

你可能感兴趣的:(分布式系统设计注意点)