免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8541 | 回复: 17

[算法] 请问如何实现分布式 [复制链接]

论坛徽章:
2
巳蛇
日期:2014-10-26 22:38:12天蝎座
日期:2016-01-08 09:25:17
发表于 2017-07-10 09:46 |显示全部楼层
请问如何实现分布式,比如我写一个简单的socket服务器端程序(服务器只有一个ip地址,监听一个端口),如何实现分布式,让多台服务器并发?
或者有什么分布式的资料,书籍推荐,谢谢。

论坛徽章:
14
水瓶座
日期:2014-06-10 09:51:0215-16赛季CBA联赛之江苏
日期:2017-11-27 11:42:3515-16赛季CBA联赛之八一
日期:2017-04-12 14:26:2815-16赛季CBA联赛之吉林
日期:2016-08-20 10:43:1215-16赛季CBA联赛之广夏
日期:2016-06-23 09:53:58程序设计版块每日发帖之星
日期:2016-02-11 06:20:00程序设计版块每日发帖之星
日期:2016-02-09 06:20:0015-16赛季CBA联赛之上海
日期:2015-12-25 16:40:3515-16赛季CBA联赛之广夏
日期:2015-12-22 09:39:36程序设计版块每日发帖之星
日期:2015-08-24 06:20:002015亚冠之德黑兰石油
日期:2015-08-07 09:57:302015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2017-07-10 10:59 |显示全部楼层
回复 1# leiing

前面加个load balance,但是这个跟分布式没毛关系呀
6.824: Distributed Systems
您先给看看吧,最好弄个观后感

评分

参与人数 1信誉积分 +5 收起 理由
shang2010 + 5 赞一个!

查看全部评分

论坛徽章:
2
巳蛇
日期:2014-10-26 22:38:12天蝎座
日期:2016-01-08 09:25:17
发表于 2017-07-10 12:37 |显示全部楼层
回复 2# lxyscls

负载均衡不是用分布式实现的?我还初次接触,不大清楚分布式的概念。我先看看资料,谢谢。

论坛徽章:
36
子鼠
日期:2013-08-28 22:23:29黄金圣斗士
日期:2015-12-01 11:37:51程序设计版块每日发帖之星
日期:2015-12-14 06:20:00CU十四周年纪念徽章
日期:2015-12-22 16:50:40IT运维版块每日发帖之星
日期:2016-01-25 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之福建
日期:2016-04-07 11:25:2215-16赛季CBA联赛之青岛
日期:2016-04-29 18:02:5915-16赛季CBA联赛之北控
日期:2016-06-20 17:38:50技术图书徽章
日期:2016-07-19 13:54:03程序设计版块每日发帖之星
日期:2016-08-21 06:20:00
发表于 2017-07-10 14:17 |显示全部楼层
回复 3# leiing

分布式只是多进程编程。。。不同的需求不同的分布式架构。。。就是进程搭积木过家家。。。
独立思考一下,别想多了

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
发表于 2017-07-10 17:09 |显示全部楼层
本帖最后由 yulihua49 于 2017-07-10 17:17 编辑
cokeboL 发表于 2017-07-10 14:17
回复 3# leiing

分布式只是多进程编程。。。不同的需求不同的分布式架构。。。就是进程搭积木过家家。 ...

单纯的多进程不是分布式,而是并行的一种。
分布式是指在不同节点进行作业。就是同时使用多台服务器共同进行作业。
分布的方法,可以使用负载均衡器,把负载分布到各个服务器。

分布的目的:
1.增加系统的处理能力。
2.容错,容灾。

分布式需要相应的算法,不是原来的集总算法放到分布式架构就可以的。

论坛徽章:
36
子鼠
日期:2013-08-28 22:23:29黄金圣斗士
日期:2015-12-01 11:37:51程序设计版块每日发帖之星
日期:2015-12-14 06:20:00CU十四周年纪念徽章
日期:2015-12-22 16:50:40IT运维版块每日发帖之星
日期:2016-01-25 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之福建
日期:2016-04-07 11:25:2215-16赛季CBA联赛之青岛
日期:2016-04-29 18:02:5915-16赛季CBA联赛之北控
日期:2016-06-20 17:38:50技术图书徽章
日期:2016-07-19 13:54:03程序设计版块每日发帖之星
日期:2016-08-21 06:20:00
发表于 2017-07-10 17:27 |显示全部楼层
本帖最后由 cokeboL 于 2017-07-10 17:28 编辑

回复 5# yulihua49

我只是打比方,我也想多写一点来着,但是不同类型的项目,分布式架构区别太大了
最为典型的是 web服务 和 MMORPG游戏,一个是用户间没什么交互,另一个是强交互
web服务以电商为例,可以大搞维服务架构,把不同的功能拆成不同服务器,由前端根据不同的需要去请求不同的
服务,扩展起来容易

但是MMORPG则大不相同,微服务这种好像是搞电商那帮人提出来的,然后一些游戏开发者看到了硬往游戏上去
套用,简单的游戏项目,比如也是若交互的,还好,放到MMORPG上,套微服务,都是作死。。。

分布式只是个服务集群的叫法,想描述具体架构,就得绑上特定的项目需求。

论坛徽章:
154
2022北京冬奥会纪念版徽章
日期:2015-08-07 17:10:5720周年集字徽章-年
日期:2022-10-26 16:44:2015-16赛季CBA联赛之深圳
日期:2022-11-02 14:02:4515-16赛季CBA联赛之八一
日期:2022-11-28 12:07:4820周年集字徽章-20	
日期:2023-07-19 08:49:4515-16赛季CBA联赛之八一
日期:2023-11-04 19:23:5115-16赛季CBA联赛之广夏
日期:2023-12-13 18:09:34
发表于 2017-07-10 17:52 来自手机 |显示全部楼层
同并行道理一样,分布式所有的节点都是克隆人,不同的是分布式没有明确的中心

就跟比特币交易一样。。其他,大部分时候也是一样的。只是学术理论太纠结这块了

论坛徽章:
2
巳蛇
日期:2014-10-26 22:38:12天蝎座
日期:2016-01-08 09:25:17
发表于 2017-07-11 10:43 |显示全部楼层
多谢各位大牛的耐心解答。
其实我只是想简单的了解,用途就是一般通用型C/S服务器,服务器就绑定一个ip,监听一个端口,为客户端服务。可一台服务器的处理能力毕竟有限,如果客户端多了,我想添加两台,十台,一百台服务器,这些服务器之间应该怎样结合?对客户端来说能否透明,就是一个ip,一个端口?
初次接触,不知道这应该是叫负载均衡,还是分布式???

论坛徽章:
15
2015七夕节徽章
日期:2015-08-21 11:06:172017金鸡报晓
日期:2017-01-10 15:19:56极客徽章
日期:2016-12-07 14:07:30shanzhi
日期:2016-06-17 17:59:3115-16赛季CBA联赛之四川
日期:2016-04-13 14:36:562016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-01-28 06:20:0015-16赛季CBA联赛之新疆
日期:2016-01-25 14:01:34IT运维版块每周发帖之星
日期:2016-01-07 23:04:26数据库技术版块每日发帖之星
日期:2016-01-03 06:20:00数据库技术版块每日发帖之星
日期:2015-12-01 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
发表于 2017-07-11 15:27 |显示全部楼层
分布式就是横向扩展的一种方式,以你的问题为例:通用型C/S服务器,服务器就绑定一个ip,监听一个端口,为客户端服务
当客户端增加到一定程度时,单台服务器无法支撑,这里有好几种扩展的方式:
1)通过前面加LVS之类的负载均衡器将业务分布到后端的多个机器上去
2)将服务器的程序功能进行拆分,每一个功能是单独的程序,那么业务瓶颈的地方就可以增加实例的个数,但这些实例通过一种方式来组织,这种组织形式其实就是分布式,分布式不是说就一定没有Master,比如这些实例都有一个master来管理,而前面的功能路由可以由master来处理,当然也可以采用DHT之类的无master方式,但这个都只是方式,他们都属于分布式
进而可以继续演进,比如存储瓶颈,那么可以采用分库分表、集群或NoSQL来继续分担,这也是分布式的过程

论坛徽章:
2
巳蛇
日期:2014-10-26 22:38:12天蝎座
日期:2016-01-08 09:25:17
发表于 2017-07-11 16:05 |显示全部楼层
回复 9# heguangwu

谢谢,感觉这是很大的一块儿,不知道这方面有没有专门的书籍?准备买本学下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP