免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 23126 | 回复: 11
打印 上一主题 下一主题

【好书推荐】实战为上!如何从运维人的角度理解“分布式系统”?(获奖名单已公布) [复制链接]

论坛徽章:
146
2015年亚洲杯之日本
日期:2015-04-28 13:32:012015年亚洲杯之朝鲜
日期:2015-05-06 10:16:442015年亚洲杯之日本
日期:2015-05-06 10:21:342015年亚洲杯纪念徽章
日期:2015-05-13 17:16:442015亚冠之北京国安
日期:2015-05-13 17:18:292015亚冠之鹿岛鹿角
日期:2015-05-13 17:19:062015亚冠之德黑兰石油
日期:2015-05-27 16:47:402015亚冠之塔什干棉农
日期:2015-05-28 15:24:122015亚冠之卡尔希纳萨夫
日期:2015-06-01 13:52:392015亚冠之柏斯波利斯
日期:2015-06-04 17:37:292015亚冠之阿尔纳斯尔
日期:2015-06-16 11:31:202015亚冠之塔什干火车头
日期:2015-06-23 10:12:33
跳转到指定楼层
[收藏(0)] [报告]
发表于 2017-05-26 14:25 |只看该作者 |正序浏览
获奖公布:
得技术图《人人都是架构师:分布式系统架构落地与瓶颈突破》的同学有:@fenyun689 @ chenxing2 @ 东风玖哥 @nail78 @laputa73


请以上5位获奖人员在7月30日前将姓名、电话、邮箱、公司、职务、快递地址站短给yejia80550708,以便尽快给大家发放礼品

话题背景:
一提起“分布式系统”,大家的第一感觉就是好高大上啊,深不可测,看各类大牛关于分布式系统的演讲或者书籍,也大多是一脸懵逼。搭建数据架构时,进行服务端架构设计,都无疑会使用分布式的部署案例。其广泛应用于:
1、已经拥有海量用户的巨头公司;
2、需要应用未来用户快速增长的初创团队;
3、要靠高性能、可伸缩的系统特性来为广大开发者提供第三方服务的解决方案提供商。

本期话题主要是针对那些刚开始入门分布式系统,或有初步的架构经验的同学,主要就什么是分布式系统、分布式系统有哪些优势、分布式系统会面临哪里挑战、如何来设计分布式等方面的话题来展开讨论。


问题方向:(请用大白话的形式简述)
1.什么是分布式系统?当下主流开源分布式系统架构都有哪些?
2.为什么要用分布式系统?该系统有哪些优势?
3.在设计分布式系统时,需要考虑哪些因素?也就是说,如何合理将一个系统拆分成多个子系统部署到不同机器上?
4.在系统架构的过程中,预想下,你将会面临哪些挑战和困难?


活动时间:2017年5月26日—6月26日


活动奖励:
活动结束后,我们将选取5位讨论精彩的同学,送《人人都是架构师:分布式系统架构落地与瓶颈突破》

作者: 高翔龙   
出版社:电子工业出版社
ISBN:9787121312380
上架时间:2017-5-3
出版日期:2017 年5月
开本:16开
页码:200
版次:1-1
所属分类:计算机 > 软件与程序设计 > 分布式系统设计


购书链接:https://item.jd.com/12180592.html

内容简介:《人人都是架构师:分布式系统架构落地与瓶颈突破》首先从分布式服务案例开始介绍,重点为大家讲解了大规模服务化场景下企业应该如何实施服务治理;然后在大流量限流/消峰案例中,笔者为大家讲解了应该如何有效地对流量实施管制,避免大流量对系统产生较大冲击,确保核心业务的稳定运行;接着笔者为大家讲解了分布式配置管理服务;之后的几章,笔者不仅为大家讲解了秒杀、限时抢购场景下热点数据的读/写优化案例,还为大家讲解了数据库实施分库分表改造后所带来的一系列影响的解决方案。

样章试读: 人人都是架构师:分布式系统架构落地与瓶颈突破.doc (48 KB, 下载次数: 0)

论坛徽章:
8
2017金鸡报晓
日期:2017-01-10 15:13:2915-16赛季CBA联赛之天津
日期:2019-06-20 14:25:4015-16赛季CBA联赛之天津
日期:2019-08-20 23:06:5319周年集字徽章-庆
日期:2019-08-27 13:24:4219周年集字徽章-19
日期:2019-09-06 18:55:5019周年集字徽章-年
日期:2019-09-06 18:55:5019周年集字徽章-周
日期:2019-09-20 17:18:2220周年集字徽章-CU
日期:2020-11-11 13:06:03
11 [报告]
发表于 2017-06-26 14:51 |只看该作者
本帖最后由 aloki 于 2017-06-26 14:54 编辑

终于编辑好了,真麻烦呀

论坛徽章:
8
2017金鸡报晓
日期:2017-01-10 15:13:2915-16赛季CBA联赛之天津
日期:2019-06-20 14:25:4015-16赛季CBA联赛之天津
日期:2019-08-20 23:06:5319周年集字徽章-庆
日期:2019-08-27 13:24:4219周年集字徽章-19
日期:2019-09-06 18:55:5019周年集字徽章-年
日期:2019-09-06 18:55:5019周年集字徽章-周
日期:2019-09-20 17:18:2220周年集字徽章-CU
日期:2020-11-11 13:06:03
10 [报告]
发表于 2017-06-26 14:46 |只看该作者
本帖最后由 aloki 于 2017-06-26 14:54 编辑

1.什么是分布式系统?当下主流开源分布式系统架构都有哪些?
     所谓的分布式系统就好比如一家全国性的银行,用户在这家银行任何一家分行开户后,就可以在这家银行全国任何一家分行执行存取款、转帐等操作。用户只看到帐户上金额的变化,并不知道这背后的数据信息是怎样从他开户的分行传输到总行和其它分行的。再举一个简单一点的例子,分布式系统就像一家大酒店的厨房,客人向服务员点完菜之后,厨房的厨师们有的负责洗菜,有的负责切菜,有的负责配菜,还有的负责炒菜,最终客人并不知道这道菜是哪几位厨师完成的。
     当下主流开源分布式系统架构都有Hadoop、Spark、Storm。

2.为什么要用分布式系统?该系统有哪些优势?
     投资界有句名言,叫做“不要把鸡蛋放在一个篮子里”。对于现代的系统而言更是如此。厂商的机子不可能保证永远不坏,我们也无法保证黑客不会入侵我们的系统,最为关键的是,我们自己无法保证自己的程序不会出bug。所以问题无法避免,错误也不可避免,我们只能鸡蛋分散到不同的篮子里,来减轻一锅端的风险。这就是为什么需要分布式系统的原因。
     分布式系统的优势有:
     1、性能的可扩展性--毕竟任何主机(哪怕是小型机、超级计算机)都会有性能的极限。而分布式系统可以通过不断扩张主机的数量以实现横向水平性能的扩展。
     2、故障的独立性--软件不是完美的,网络不是完美的,甚至机器本身也不可能是完美的,随时可能会出错,为了避免故障,一般分布式系统要设计成被允许出现部分故障而不影响整个系统的正常使用。

3.在设计分布式系统时,需要考虑哪些因素?也就是说,如何合理将一个系统拆分成多个子系统部署到不同机器上?
     在设计分布式系统时,应考虑以下几个问题:
     ·系统如何拆分为子系统?
     ·通信过程中的安全如何考虑?
     ·如何让子系统可以扩展?
     ·子系统的可靠性如何保证?
     ·数据的一致性是如何实现的?


4.在系统架构的过程中,预想下,你将会面临哪些挑战和困难?
      在系统架构的过程中,将会面临的挑战和困难有:
      ·异构性:分布式系统由于基于不同的网络、操作系统、计算机硬件和编程语言来构造,必须要考虑一种通用的网络通信协议来屏蔽异构系统之间的差异。一般交由中间件来处理这些差异。
      ·缺乏全球时钟:在程序需要协作时,它们通过交换消息来协调它们的动作。紧密的协调经常依赖于对程序动作发生时间的共识,但是,实际上网络上计算机同步时钟的准确性受到极大的限制,即没有一个正确时间的全局概念。这是通过网络发送消息作为唯一的通信方式这一事实带来的直接结果。
  ·一致性:数据被分散或者复制到不同的机器上,如何保证各台主机之间的数据的一致性将成为一个难点。
     ·故障的独立性:任何计算机都有可能故障,且各种故障不尽相同。他们之间出现故障的时机也是相互独立的。一般分布式系统要设计成被允许出现部分故障而不影响整个系统的正常使用。
     ·并发:分布式系统的目的,是为了更好的共享资源。那么系统中的每个资源都必须被设计成在并发环境中是安全的。
     ·透明性:分布式系统中任何组件的故障、或者主机的升级、迁移对于用户来说都是透明的,不可见的。
     ·开放性:分布式系统由不同的程序员来编写不同的组件,组件最终要集成成为一个系统,那么组件所发布的接口必须遵守一定的规范且能够被互相理解。
     ·安全性:加密用于给共享资源提供适当的保护,在网络上所有传递的敏感信息,都需要进行加密。拒绝服务攻击仍然是一个有待解决的问题。
     ·可扩展性:系统要设计成随着业务量的增加,相应的系统也必须要能扩展来提供对应的服务。

论坛徽章:
0
9 [报告]
发表于 2017-06-07 17:17 |只看该作者
现在分布式已经不鲜见了,正在广泛应用。
占坑学习

论坛徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30数据库技术版块每日发帖之星
日期:2015-12-01 06:20:002015亚冠之首尔
日期:2015-11-04 22:25:43IT运维版块每日发帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27狮子座
日期:2014-05-12 11:00:00辰龙
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34IT运维版块每日发帖之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之新疆
日期:2016-06-07 14:10:01
8 [报告]
发表于 2017-06-06 18:07 |只看该作者
本帖最后由 laputa73 于 2017-06-06 18:17 编辑



1.什么是分布式系统?当下主流开源分布式系统架构都有哪些?
分布式系统,可以是把不同任务分给不同节点,也可以是把一个任务拆成很多份,分散到不同节点完成,最后再组装起来。
gearman,hadoop,spark这些都算是分布式架构
2.为什么要用分布式系统?该系统有哪些优势?
主要解决性能的横向扩展,还有通过集群解决高可用
3.在设计分布式系统时,需要考虑哪些因素?也就是说,如何合理将一个系统拆分成多个子系统部署到不同机器上?
   总体而言,就是先竖拆,再横拆。
4.在系统架构的过程中,预想下,你将会面临哪些挑战和困难?
  想想就头疼。最难的是数据存储的CAP问题。
  还有服务调用的治理问题。
  排查,维护,都是问题。
分布式最原始的动力就是解决单机性能不够的问题。
但是分布式会带来很多问题。典型的如CAP问题。
比较简单的分布式,是把系统按功能拆开,部署在不同机器,通过远程访问接口,这个相对容易。比如web和appsvr分开,appsvr和数据库分开。
web, app这些无状态的相对也容易,搞成集群。数据库也可以读写分离。
难点在于这个方案如果搞不定了,需要再大规模的分布式了,难度就几何级数上升了。

dubbo的这个图很能说明问题

论坛徽章:
4
IT运维版块每日发帖之星
日期:2015-08-04 06:20:00IT运维版块每日发帖之星
日期:2015-10-10 06:20:002015亚冠之阿尔艾因
日期:2015-11-08 10:27:01CU十四周年纪念徽章
日期:2020-11-05 14:10:23
7 [报告]
发表于 2017-06-06 17:17 |只看该作者
1.什么是分布式系统?当下主流开源分布式系统架构都有哪些?
   分布式系统就是在同一网络内互相连接的机器,采用分而治之的方法处理同一任务的系统。开源的分布式系统有hadoop,spark等,hadoop是数据进行分布式处理,spark是计算分布式处理。

2.为什么要用分布式系统?该系统有哪些优势?
  很好解释,这里有十个馒头要消灭,一个人吃和十个人一起吃,肯定是十个人吃得快,所以海量数据要选分布式系统。分布式的优势就海量的数据处理的速度快。

3.在设计分布式系统时,需要考虑哪些因素?也就是说,如何合理将一个系统拆分成多个子系统部署到不同机器上?
   安全问题,单点多了,单点估障的机会就多了,分布式系统一致性就非常重要。zookeeper,chubby,etcd等都是保证分布式一致性的。

4.在系统架构的过程中,预想下,你将会面临哪些挑战和困难?
  分布式系统的管理和运维要比普通系统复杂

论坛徽章:
8
15-16赛季CBA联赛之青岛
日期:2017-05-25 14:27:3415-16赛季CBA联赛之深圳
日期:2017-07-19 09:39:23CU十四周年纪念徽章
日期:2017-08-29 16:08:0115-16赛季CBA联赛之佛山
日期:2017-08-30 19:12:5515-16赛季CBA联赛之山西
日期:2017-12-20 13:50:5519周年集字徽章-19
日期:2019-09-12 16:11:0719周年集字徽章-庆
日期:2019-09-12 16:13:3215-16赛季CBA联赛之北控
日期:2020-04-26 16:30:57
6 [报告]
发表于 2017-06-05 22:12 |只看该作者
1.什么是分布式系统?当下主流开源分布式系统架构都有哪些?
分布式系统是个由多个互相连接的处理资源组成的计算机系统,它们在整个系统的控制下协同执行同一个任务,最少依赖于集中的程序、数据或硬件。当下主流开源分布式系统架构有dubbo和zookeeper等

2.为什么要用分布式系统?该系统有哪些优势?
(1)快速:分布式系统由于使用了并行处理技术,因此它总的计算能力比单个的大型集中式系统强很多。
(2)可靠:分布式系统中工作负载都是分散在多台机器上,单个机器故障只会使一台机器停机,而不会影响其他机器,
(3)扩充:分布式系统允许系统在需求增长时逐渐进行扩充。
(4)灵活:分布式系统中将多台计算机连在一起,可以使工作能够在最合适的计算机上完成。
(5)成本低廉:分布式系统通常就是在一个系统中使用集中在一起的大量廉价CPU,可以得到比单个大型集中式系统好的多的性能价格比。

3.在设计分布式系统时,需要考虑哪些因素?也就是说,如何合理将一个系统拆分成多个子系统部署到不同机器上?
(1)服务接口注意容错
(2)后台升级要对用户透明
(3)衡量后台服务失败的影响

4.在系统架构的过程中,预想下,你将会面临哪些挑战和困难?
(1)管理问题:不同计算机的文件数据需要复制,形成不必要的存储成本;同时设备必须要互相兼容。
(2)通信网络问题:由于网络会损失信息,因此需要专门的软件进行恢复,当网络出现过载时也必须对它进行改造替换或加入另外的网络扩容。
(3)安全问题:容易造成对保密数据的访问。

论坛徽章:
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
5 [报告]
发表于 2017-06-03 11:38 |只看该作者
很多时候,不少人搞不清楚什么是分布式,什么是集群服务

可以这么说,分布式是很学院化的概念,真正做到的应该很少很少

论坛徽章:
40
水瓶座
日期:2013-08-15 11:26:422015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之乌兹别克斯坦
日期:2015-03-27 14:01:172015年亚洲杯之约旦
日期:2015-03-31 15:06:442015亚冠之首尔
日期:2015-06-16 23:24:37IT运维版块每日发帖之星
日期:2015-07-01 22:20:002015亚冠之德黑兰石油
日期:2015-07-08 09:32:07IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-10-10 06:20:00IT运维版块每日发帖之星
日期:2015-10-11 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
4 [报告]
发表于 2017-06-01 15:16 |只看该作者
占坑更新 围观为先

论坛徽章:
13
数据库技术版块每日发帖之星
日期:2015-08-06 06:20:002017金鸡报晓
日期:2017-02-08 10:39:422017金鸡报晓
日期:2017-01-10 15:13:29极客徽章
日期:2016-12-07 14:08:02JAVA
日期:2016-10-25 16:01:09luobin
日期:2016-06-17 17:46:362016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之天津
日期:2015-12-16 22:35:03黄金圣斗士
日期:2015-11-24 10:43:13IT运维版块每日发帖之星
日期:2015-10-09 06:20:002015亚冠之广州恒大
日期:2015-09-21 21:40:222015七夕节徽章
日期:2015-08-21 11:06:17
3 [报告]
发表于 2017-05-27 11:04 |只看该作者
1.什么是分布式系统?当下主流开源分布式系统架构都有哪些?
  就是在一组或几组服务器上,部署了提供相同功能的服务,同时对外提供服务,即使某几台出现异常也可以正常的堆外提供服务。
  开源分布式系统架构,主流的dubbo(x)、新浪的motan、ice等等

2.为什么要用分布式系统?该系统有哪些优势?

如同1中所述,使用分布式系统后,很多服务器可同时堆外提供相同的服务,不会应为一台或几台的问题,而导致整个服务不可用
                   在大访问量的情况下,很多太机器可以共同分担访问请求。
而一个公司同时有很多服务,各自独立部署,即使其中一个服务集群挂掉,也不会影响整个服务。只会有一个服务不可用。这样提高系统的可用性。
甚至在一些大访问的情况下,可以牺牲部分不重要的服务,保主要的关键的服务正常运行。

3.在设计分布式系统时,需要考虑哪些因素?也就是说,如何合理将一个系统拆分成多个子系统部署到不同机器上?

   业务独立的可拆出来,弱耦合的也可以拆出来。

   尽量避免需要跨系统join数据的拆分。

4.在系统架构的过程中,预想下,你将会面临哪些挑战和困难?

数据的一致性、服务的可用性、分区的容错性

论坛徽章:
8
数据库技术版块每日发帖之星
日期:2015-12-22 06:20:00平安夜徽章
日期:2015-12-26 00:06:30数据库技术版块每日发帖之星
日期:2016-01-21 06:20:00IT运维版块每日发帖之星
日期:2016-02-03 06:20:00技术图书徽章
日期:2016-02-03 16:35:252016猴年福章徽章
日期:2016-02-18 15:30:34shanzhi
日期:2016-06-17 17:59:31JAVA
日期:2016-10-25 16:16:28
2 [报告]
发表于 2017-05-27 09:55 |只看该作者
置顶   
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP