![](https://csdnimg.cn/release/download_crawler_static/3138423/bg1.jpg)
— “构建一个分布式系统的简单方案 答陈硕的 分布式系统中的进程
”标识 一文
by 沈东良 http://blog.csdn.net/shendl/
”对分布式系统中的进程标识 一文的疑问
刚才看到陈硕先生的一篇 blog:“ ”分布式系统中的进程标识 ,地址:
http://www.cnblogs.com/Solstice/archive/2011/03/29/1998412.html
我不同意该文的观点,因此在这里抛砖引玉,提出一个
构建一个分布式系统的简单方案。
“文中说: 正确做法:以四元组 ip:port:start_time:pid 作为分布式系统
中进程的 gpid ,其中 start_time 是 64-bit ”整数,表示进程的启动时刻。
第一个问题:没有 port 的进程怎么命名?
“文中这样回答: 根据陈硕在《分布式系统的工程化开发方法》一文中的观点
“ 在程序里内置 http ”服务器 ,分布式系统中的每个进程都应该提供一个管理
接口,对外提供一个维修探查通道,可以查看进程的全部状态。这个管理接口
就是一个 TCP server ,它会侦听某个 port ”。
1,cat,uuid,utime 这些程序都要提供一个内嵌的 http 服务器?有必要吗?
第三方程序你怎么该?
2, 我至今没有见过一个操作系统自动给所有进程提供 http 服务的。如果
真的应该在每一个程序里内置 http 服务,那么肯定有操作系统会提供这种服
务。
3 , 如果程序提供 http 服务,那么程序的安全就会有疑问。http 通讯很
容易被拦截。http 服务如果开着,那么攻击方可以不停测试用户名、密码,从
而攻进操作系统。成为安全隐患。
第二个问题:time 作为唯一的区分是否可靠?
如果操作系统的时间发生调整,那么有可能 time 会回到从前,从而可能导
致多个进程有一个进程号。可能性虽小,但不能排除。