分布式网络通讯项目:集群与分布式理论简介

Posted 看,未来

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式网络通讯项目:集群与分布式理论简介相关的知识,希望对你有一定的参考价值。

前言

很显然啊,这个项目是上一个集群项目的延伸,所以代码的篇幅不会有那么多,就是一些 “易筋” 嘛,主要还是理论 + 实践。

“集群聊天室”项目日报
“集群聊天室”GitHub地址


集群 && 分布式

集群:每台服务器独立运行一个工程的所有模块。
分布式:一个工程拆分成多个模块,每一个模块运行在独立的服务器主机上,所有服务器协同工作共同提供服务。每个模块称为一个节点,根据节点的并发需求,可以针对节点再做集群。


聊天服务器面对的挑战

对于单机服务器:

1、受限于硬件资源,并发量上不去。
2、整个系统的耦合性太高,模块化的解耦合是有,但是总的来说还是属于一个项目,一旦要更新优化,就要整个项目进行重新编译部署。
3、有些模块属于CPU密集型,有些模块属于IO密集型,全堆在一起了,有点浪费资源,短板效应明显。

对于集群服务器:
1、水平扩充了硬件资源。
2、对于上面那个问题2,嗯。。。心照不宣。
3、对于上述第三个问题,依旧有点尴尬。
4、某一台服务器出问题了不影响其他服务器。

对于分布式服务器:
1、提高了并发性能。
2、将模块解耦合。
3、可以将CPU密集型的服务器放在CPU好的服务器上,IO密集型的放到带宽好的服务器上,需要做大量存储的模块放到硬盘大的服务器上、、、
4、某个节点挂了,就GG了。

所以,处于扬长避短,我们采用:集群 + 分布式 的服务器部署模式。
(本系列不讲容灾备份,技术不太够,只听说过一点理论,没试过)


大系统模块划分中的问题

1、各模块之间可能会存在大量重复的代码(时间推移,各管一块,就有可能出现重复)
2、各模块之间怎么互相访问?
3、哪些模块需要做容灾?做集群?


这个项目就是来写一个分布式网络通信的框架,除了容灾,本篇提出的问题都会得到解答。

以上是关于分布式网络通讯项目:集群与分布式理论简介的主要内容,如果未能解决你的问题,请参考以下文章

分布式 - 一步步深入(理论汇总)

分布式 - 一步步深入(理论汇总)

cap原则(cap定理)与base理论

GFS分布式文件系统集群(理论篇)

分布式理论与ZooKeeper相关概念

分布式理论与ZooKeeper相关概念