请问如何实现分布式
请问如何实现分布式,比如我写一个简单的socket服务器端程序(服务器只有一个ip地址,监听一个端口),如何实现分布式,让多台服务器并发?或者有什么分布式的资料,书籍推荐,谢谢。
回复 1# leiing
前面加个load balance,但是这个跟分布式没毛关系呀
6.824: Distributed Systems
您先给看看吧,最好弄个观后感
回复 2# lxyscls
负载均衡不是用分布式实现的?我还初次接触,不大清楚分布式的概念。我先看看资料,谢谢。
回复 3# leiing
分布式只是多进程编程。。。不同的需求不同的分布式架构。。。就是进程搭积木过家家。。。
独立思考一下,别想多了
本帖最后由 yulihua49 于 2017-07-10 17:17 编辑
cokeboL 发表于 2017-07-10 14:17
回复 3# leiing
分布式只是多进程编程。。。不同的需求不同的分布式架构。。。就是进程搭积木过家家。 ...
单纯的多进程不是分布式,而是并行的一种。
分布式是指在不同节点进行作业。就是同时使用多台服务器共同进行作业。
分布的方法,可以使用负载均衡器,把负载分布到各个服务器。
分布的目的:
1.增加系统的处理能力。
2.容错,容灾。
分布式需要相应的算法,不是原来的集总算法放到分布式架构就可以的。
本帖最后由 cokeboL 于 2017-07-10 17:28 编辑
回复 5# yulihua49
我只是打比方,我也想多写一点来着,但是不同类型的项目,分布式架构区别太大了
最为典型的是 web服务 和 MMORPG游戏,一个是用户间没什么交互,另一个是强交互
web服务以电商为例,可以大搞维服务架构,把不同的功能拆成不同服务器,由前端根据不同的需要去请求不同的
服务,扩展起来容易
但是MMORPG则大不相同,微服务这种好像是搞电商那帮人提出来的,然后一些游戏开发者看到了硬往游戏上去
套用,简单的游戏项目,比如也是若交互的,还好,放到MMORPG上,套微服务,都是作死。。。
分布式只是个服务集群的叫法,想描述具体架构,就得绑上特定的项目需求。
同并行道理一样,分布式所有的节点都是克隆人,不同的是分布式没有明确的中心
就跟比特币交易一样。。其他,大部分时候也是一样的。只是学术理论太纠结这块了 多谢各位大牛的耐心解答。
其实我只是想简单的了解,用途就是一般通用型C/S服务器,服务器就绑定一个ip,监听一个端口,为客户端服务。可一台服务器的处理能力毕竟有限,如果客户端多了,我想添加两台,十台,一百台服务器,这些服务器之间应该怎样结合?对客户端来说能否透明,就是一个ip,一个端口?
初次接触,不知道这应该是叫负载均衡,还是分布式???:D 分布式就是横向扩展的一种方式,以你的问题为例:通用型C/S服务器,服务器就绑定一个ip,监听一个端口,为客户端服务
当客户端增加到一定程度时,单台服务器无法支撑,这里有好几种扩展的方式:
1)通过前面加LVS之类的负载均衡器将业务分布到后端的多个机器上去
2)将服务器的程序功能进行拆分,每一个功能是单独的程序,那么业务瓶颈的地方就可以增加实例的个数,但这些实例通过一种方式来组织,这种组织形式其实就是分布式,分布式不是说就一定没有Master,比如这些实例都有一个master来管理,而前面的功能路由可以由master来处理,当然也可以采用DHT之类的无master方式,但这个都只是方式,他们都属于分布式
进而可以继续演进,比如存储瓶颈,那么可以采用分库分表、集群或NoSQL来继续分担,这也是分布式的过程
回复 9# heguangwu
谢谢,感觉这是很大的一块儿,不知道这方面有没有专门的书籍?准备买本学下。
页:
[1]
2