狠狠撸

狠狠撸Share a Scribd company logo
分布式系统实践浅谈
宋松波
微信 songbo0212
大纲
2
? 分布式系统发展历程
? 什么是分布式系统
? 分布式系统的设计
LAN 的出现
使机器互联
成为可能。
大型机与个人
PC,网络快速
发展。 分布
式进入萌芽期
随着计算机的
深入,特别是
互联网服务的
出现,分布式
开始发展。
互联网服务兴起。
为了应对海量用
户, 提高服务质
量,分布式架构
成为必要模式。
分布式系统理论,
应用高速发展
1970 1980
1990
2000
2005
2015
移动互联网,云计算,
大数据等新的技术,服
务模式日趋盛行,分布
式系统作为其核心技术
之一,起着重要作用。
数据处理服务将成为基
础服务应用于各行各业。
在大规模数据处理中,
分布式系统将继续担当
重任。
2010
分布式发展历程
3
分布式系统的定义
第一个定义: 非集中的就是分布的。
集中式:一个主机带多个终端。终端没有数据处理能力,仅负责数据
的录入和输出。而运算、存储等全部在主机上进行。
特点:部署结构非常简单。
缺点:发生单点故障。扩展性差。大型主机价格昂贵。
第二个定义:分布不同地方的一些节点,为实现一个的目标或服务,
按照一定的方式组织起来,分工合作,而形成的一个整体。
第三个定义:
团队
4
分布式系统的指标
? 性能
– 系统的吞吐能力
– 系统的响应延迟
? 可用性
– 系统停止服务的时间与正常服务时间的比例。
? 扩展性
– 系统是否可以容易的添加新的计算或存储节点。
? 一致性
5
分布式系统设计
分布式系统知识体系庞大。从设计的角度,设计工作大致可分为两
部分:
? 实现分布式
– 计算机的本质是 对数据的处理(读,写,修改)和存储。
– 分布式系统对上述过程进行切分。
? 数据处理的分布
? 数据的分布/分区(Partition)
– 移动数据 VS 移动计算(本地化计算)
? 处理各种矛盾,异常。处理异常是分布式系统核心内容之一。
好的分布式系统具有以下能力:
– 拥有发现异常的能力。
– 拥有修复异常的能力。
6
数据的分布/分区
数据的分布是分布式系统的基本问题。直接影响分布式系
统的工作效率。
? 循环分布(Round Robin):将数据切块, 然后每一块按照
次序一块一块存放到服务器上。也叫按数据量分布。
? Hash分布: 根据数据的某一种特征计算哈希值,并将哈希
值与集群中的服务器建立映射关系,从而将不同哈希值
的数据分布到不同的服务器上。
? 范围分布(Range):根据某一特征值的大小范围来切割数
据;按照范围将其放在不同的服务器上。
7
数据的分布: 循环分布
时间 UserID URL
01/01 442232 home
01/01 324324 home
01/01 123423 news
01/01 442232 Film
01/01 324324 news
02/01 324324 tv
02/01 442232 news
02/01 324324 tv
02/01 532348 film
02/01 324324 home
03/01 442232 home
03/01 324324 film
03/01 532421 tv
03/01 532348 tv
8
Server 1
Server 2
Server 3
数据的分布: Hash分布
时间 UserID URL
01/01 442232 home
01/01 673293 home
01/01 123423 news
01/01 442232 Film
01/01 324324 news
02/01 324324 tv
02/01 442232 news
02/01 324324 tv
02/01 532348 film
02/01 673293 home
03/01 442232 home
03/01 324324 film
03/01 532421 tv
03/01 532348 tv
9
Hash Function:
ServerID=H(UserID)
Server 2
Server 3
Server 1
数据的分布: 范围分布
时间 UserID URL
01/01 442232 home
01/01 324324 home
01/01 123423 news
01/01 442232 Film
01/01 324324 news
02/01 324324 tv
02/01 442232 news
02/01 324324 tv
02/01 532348 film
02/01 324324 home
03/01 442232 home
03/01 324324 film
03/01 532421 tv
03/01 532348 tv
10
Server 1
Server 2
Server 3
数据的分布的比较
数据分布
方式
优点 缺点 例子
循环分布
(数据量
分布)
扩展性好。
均匀分布。
数据分布没有规律可
寻。
不利于范围查询
HDFS
Hash分布 点查询,只读取一
个存储设备即可。
扩展性不好。
当特征值不均匀时,
容易出现数据倾斜。
不利于范围查询
Big Pipe
Cassandra
范围分布 扩展性好。
范围查询简单
可能会出现数据倾斜。 Big Table
Hbase
11
副本技术
? 副本技术 : 指在分布式系统中为数据或服务提供的冗余。
? 目的:提高系统整体的稳定性,容错能力。
– 数据副本:对于一个数据存在于不同的节点上。
? 例子:HDFS 存三份数据。
– 服务副本:计算资源的冗余。
? 空间上的冗余:不同的节点,拥有同一服务。
? 时间上的冗余:同一节点拥有重复计算的能力。
? 部署:
– 可以是每次自动计算多次,选择对的一次。
– 也可以是当某次计算失败时,重新集散。
? 数据的分布 + 服务副本机制 可以实现高可扩展性。
? 问题:副本之间的一致性。
12
数据副本
数据副本的本质是多份数据的读写。数据副本模式
? Master-slave 模式
– 数据库常用模式: Mysql
? Master 负责数据的输入。
? Salve 负责数据输出
– 缺点:Master 单点故障。
– 改进:当Master 出问题后,一个slave 自动升级成
为Master。
? 实例:redis sentinel 模式
? 无中心化结构模式
– 实例:Cassandra
13
Master
Slave Slave
node
nodenode
数据处理的分布
根据分布的节点提供的服务以及节点间的关系大致
可分为两类。
? 各节点提供相同的服务,且并不依赖本地存储。
– 这类服务大多是负责对数据读操作。
– 服务节点的选择:例:负载均衡。
– 例:网站前端服务器。
? 各节点上的任务不同。节点之间沟通协作。数据
是这些节点的纽带。
– 任务的分配与调度。
– 计算资源的管理。
14
节点间通信
进程间通信 (底层技术) 远程调用 非直接通信
消息传递
(Message passing)MPI
Sockets
RPC (Remote
process call)
RMI
消息队列 (Message
queue)
分布式内存
15
节点间的通信方式:
Message queue
task
task
Collector
Service 1
Service 2
task
task
data
task
task
task
故障检测
计算机系统中,问题是常态 (网路异常,节点故障)。
发现异常:
? 心跳机制:
– 任务节点主动定期向检测点发送存活报告。
– 若监测点没收到报告,则判定任务节点失效。启动异常预案。
– 受网络影响,检测点无法判断是节点出了问题,还是报告丢失。 出现
误判。
? 检测点认为任务节点出问题。而任务节点依然提供服务。
? 租约(lease)机制:
– 任务节点向检测点申请服务租约。
– 当租约快到期时,重新申请租约。
– 如果由于网络故障,没有收到新的租约,服务节点进入休眠期,主动
拒绝提供服务。等待下一次申请。
16
分布式中矛盾的艺术
? 副本技术的引入,提高了稳定性,容错能力。
但是,如果副本间的数据不一致,怎么办?
? 鱼与熊掌不可兼得。
? 经典理论: CAP
– Consistency: 所有节点在同一时间具有相同数
据。
– Availability:服务是可用的。
– Partition Tolerance:可以容忍网络出现区分。
– 分布式系统不可能同时满足以上三点。
17
架构设计理念
? 架构是随着业务的发展不断发展的。没有最好的架构,
只有最适合的架构。
? 不要一味的追逐最新的技术, 从自身业务角度出发。
? 问题是常态。提前做好保护措施。
? 网路异常: 网络延迟,丢包,等等
? 节点故障:系统问题。
? 应用程序本身问题。
? 人为因素:很多一部分问题是人为造成的。
? 鱼与熊掌不可兼得。
18
谢谢!
分布式系统所含的知识太多。 短短的20页根本无发说出分布式系统的精
髓。这里只是涉及到一点点皮毛。 很多很多关键点,并没有提及。
这篇ppt主要是基于我在工作当中对分布式的一点理解。很多地方可能不
是很准确,希望大家可以指正。
我的微信 songbo0212,
邮箱 songbo.song@gmail.com
19
….
容错
单点失效
逻辑时间
同步/异步
一致性算法
拜占庭问题
故障
副本技术
数据的分布
分布式的定义
报告人:宋松波
微信: songbo0212
感谢: 旅法工程师协会
中法信息技术论坛
20

More Related Content

Featured (20)

PDF
2024 State of Marketing Report – by Hubspot
Marius Sescu
?
PDF
Everything You Need To Know About ChatGPT
Expeed Software
?
PDF
Product Design Trends in 2024 | Teenage Engineerings
Pixeldarts
?
PDF
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
?
PDF
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
marketingartwork
?
PDF
Skeleton Culture Code
Skeleton Technologies
?
PDF
PEPSICO Presentation to CAGNY Conference Feb 2024
Neil Kimberley
?
PDF
Content Methodology: A Best Practices Report (Webinar)
contently
?
PPTX
How to Prepare For a Successful Job Search for 2024
Albert Qian
?
PDF
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
?
PDF
Trends In Paid Search: Navigating The Digital Landscape In 2024
Search Engine Journal
?
PDF
5 Public speaking tips from TED - Visualized summary
SpeakerHub
?
PDF
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd
?
PDF
Getting into the tech field. what next
Tessa Mero
?
PDF
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray
?
PDF
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
?
PDF
Introduction to Data Science
Christy Abraham Joy
?
PDF
Time Management & Productivity - Best Practices
Vit Horky
?
PDF
The six step guide to practical project management
MindGenius
?
PDF
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson36
?
2024 State of Marketing Report – by Hubspot
Marius Sescu
?
Everything You Need To Know About ChatGPT
Expeed Software
?
Product Design Trends in 2024 | Teenage Engineerings
Pixeldarts
?
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
?
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
marketingartwork
?
Skeleton Culture Code
Skeleton Technologies
?
PEPSICO Presentation to CAGNY Conference Feb 2024
Neil Kimberley
?
Content Methodology: A Best Practices Report (Webinar)
contently
?
How to Prepare For a Successful Job Search for 2024
Albert Qian
?
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
?
Trends In Paid Search: Navigating The Digital Landscape In 2024
Search Engine Journal
?
5 Public speaking tips from TED - Visualized summary
SpeakerHub
?
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd
?
Getting into the tech field. what next
Tessa Mero
?
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray
?
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
?
Introduction to Data Science
Christy Abraham Joy
?
Time Management & Productivity - Best Practices
Vit Horky
?
The six step guide to practical project management
MindGenius
?
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson36
?

分布式系统浅谈

Editor's Notes

  • #6: (1)可用性(availability) 用来描述系统在给定时刻可以正确的工作。 (2)可靠性(reliability) 指系统在可以无故障的连续运行。与可用性相反,可靠性是根据时间间隔而不是任何是可以来进行定义的。如果系统在每小时中崩溃1ms,那么他的可用性就超过99.9999%,但是它还是高度不可靠的。与之相反,如果一个系统从来不崩溃,但是要在每年8月中停机两个星期,那么它是高度可靠的,但是它的可用性只有98%。因此,这两种属性并不相同。 (3)安全性(safety) 指系统偶然出现故障的情况下能正确操作而不会造成任何灾难。 (4)可维护性(maintainability) 发生故障的系统被恢复的难易程度。 http://fr.slideshare.net/olegtsaltsalko9/distributed-systems-and-scalability-rules http://fr.slideshare.net/rlucindo/distributed-systems-5186671 http://coolshell.cn/articles/10910.html http://fancymore.com/reading/distributed-storage-system-infrastructure.html#toc_12