分布式系统设计-风险规避通信篇

通信篇:

1.大量client连一个server

在现如今NonBlocking-IO这么成熟的情况下,一个支持大量client的server已经不那么难写了,但在大规模,并且通常长连接的情况下,有一个点要特别注意,就是当server挂掉的时候,不能出现所有client都在一个时间点发起重连,那样基本就是灾难,在没有经验的情况下我看过好几起类似的case,到client规模上去后,server一重启基本就直接被冲进来的大量建连冲垮了(当然,server的backlog队列首先应该稍微设置大一些),通常可以采用的方法是client重连前都做随机时间的sleep,另外就是重连的间隔采取避让算法

2. 一个client连大量的server

有些场景也会出现需要连大量server的现象,在这种情况下,同样要注意的也是不要并发同时去建所有的连接,而是在能力范围内分批去建。
除了建连接外,另外还要注意的地方是并发发送请求也同样,一定要做好限流,否则很容易会因为一些点慢导致内存爆掉

原文地址:https://www.cnblogs.com/zhangfengshi/p/9257830.html

时间: 2024-10-30 00:11:24

分布式系统设计-风险规避通信篇的相关文章

分布式系统设计系列 -- 基本原理及高可用策略

转自:http://blog.csdn.net/gugemichael/article/details/36688043 ==> 分布式系统中的概念==> 分布式系统与单节点的不同==> 分布式系统特性==> 分布式系统设计策略==> 分布式系统设计实践 [分布式系统中的概念] 三元组 其实,分布式系统说白了,就是很多机器组成的集群,靠彼此之间的网络通信,担当的角色可能不同,共同完成同一个事情的系统.如果按"实体"来划分的话,就是如下这几种:       

分布式系统设计权衡之CAP

写在最前: 1.为什么学习并记录分布式设计理念一系列相关的东西 在日常工作中系统设计评审的时候,经常会有一些同事抛出一些概念,高可用性,一致性等等字眼,他们用这些最基本的概念去反驳系统最初的设计,但是很多人理解的可用性,一致性等等问题,都是自己拍脑袋想的,或者根本和最原始表达的意思就不是一个东西,在这种情况下PK,就像不再一个频段的人在交流,除了争论,没有任何实质性的进展,所以有必要熟悉其理论基础,以免贻笑大方.(其实类似的例子还有很多,国内的技术人员都喜欢把一些此词模糊化,混淆而谈.例如XX云

分布式事务解决方案---阅读--篇1--关于分布式系统的数据一致性问题

self: 这篇文章逻辑不算很清晰,但讲到的点还算是比较好的.自己总结一下可以做不错的参考: 1. 这边文章主要讲了两个方面,一方面是MQ的消息可靠性问题,另一方面是MQ可以被利用来做补偿机制的最终一致性分布式事务解决方案. 2. 关于MQ消息的问题大致有下面三个 2.1 如何保证A->M的消息,M一定接收到了,同样,如何保证M->A的消息,M一定接收到了 2.2 如果数据需要一致性更新,比如A发送了三条消息给M,M要么全部保存,要么全部不保存,不能够只保存其中的几条记录.我们假设更新的数据是

还不理解“分布式事务”?这篇给你讲清楚!

这篇文章将介绍什么是分布式事务,分布式事务解决什么问题,对分布式事务实现的难点,解决思路,不同场景下方案的选择,通过图解的方式进行梳理.总结和比较. 相信耐心看完这篇文章,谈到分布式事务,不再只是有“2PC”.“3PC”.“MQ的消息事务”.“最终一致性”.“TCC”等这些知识碎片,而是能够将知识连成一片,形成知识体系. 什么是事务 介绍分布式事务之前,先介绍什么是事务. 事务的具体定义 事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成事务的所有操作只有在所有操作均能正

分布式系统设计系列 -- 概要

在现在的"大数据"."云平台"这些前沿技术的背景下,衍生了很多平台型技术点,Nosql.Hadoop.Storm等层出不穷.这些华丽的技术后面其实处处都离不开"分布式"这个虽然提出了很久,但是大数据.云计算带火了的技术.以致于开个玩笑说,如果不懂一些"分布式"下的技术和原理的,会有点不好意思说自己是后端开发 -- (玩笑而已!! ^_^). 本人从事分布式系统相关设计.开发也有一段时间了,在做很多系统的设计.架构时,惯性的会多

Hadoop1.2.1分布式安装-2-安装篇

1.在打算做namenode的机器上,wget或其他方式下载hadoop的压缩包,并解压到本地指定目录 下载解压命令参考Linux常用命令. 2.配置namenode,修改site文件 修改core-site.xml <configuration>   <property>     <name>fs.default.name</name>     <value>hdfs://bd01:9000</value>   </prope

分布式系统设计系列 -- 总结

在今天的"大数据"."云平台"背景下,这些尖端技术,从一个非常多平台技术派生点,Nosql.Hadoop.Storm和其他新兴.技术落后,这些华丽是分不开的,其实无处不在"分散式"虽然这做了一个很长的时间,但是大数据.云计算技术与火.玩笑说.假设不懂一些"分布式"下的技术和原理的,会有点不好意思说自己是后端开发 -- (玩笑而已!! ^_^). 本人从事分布式系统相关设计.开发也有一段时间了,在做非常多系统的设计.架构时,惯性

分布式学习——基础概念篇

概述 最近这段时间一直在看分布式有关的东西,但是关于分布式自己还是不能很好的理解,所以本文对分布式基础概念进行下学习. 分布式处理 首先先了解一下分布式处理,分布式处理和集中式处理正好是相反的的体系架构,集中传输集中到式处理顾名思义就是将所有的信息都一个统一的信息中心进行处理:分布式处理就是将不同地点的,或具有不同功能的,或拥有不同数据的多台计算机利用通信网络连接起来,让各个计算机各自承担同一个工作任务的不同部分,在控制中心的管理下,同时运行,共同完成同一个工作任务. 提到分布式处理就不能不提到

JDFS:一款分布式文件管理实用程序第一篇(线程池、epoll、上传、下载)

一 前言 截止目前,笔者在博客园上面已经发表了3篇关于网络下载的文章,这三篇博客实现了基于socket的http多线程远程断点下载实用程序.笔者打算在此基础上开发出一款分布式文件管理实用程序,截止目前,已经实现了 服务端/客户端 的上传.下载部分的功能逻辑.涉及到的知识点包括线程池技术.linux epoll并发技术.上传.下载等.JDFS的下载功能的逻辑部分与笔者前几篇关于JWebFileTrans(JDownload)比较类似.如果读者对socket网络下载不熟悉或者是只对下载功能感兴趣,请