高可用高性能系统(九)UDP的应用
来源:互联网 发布:钢铁少女数据 编辑:程序博客网 时间:2024/04/28 18:03
UDP对实现高可能高性能系统有啥好处呢?其实UDP的好处是间接的。我们知道UDP和TCP不同的是,UDP不保证可靠性,他只管发,不管收没收到。也就是说一个报文,他只会发一次而已。而TCP就必须靠复杂的机制保证可靠性。而且,UDP还具有广播,可以一次让多台机器收到报文,如果靠TCP的话,就必须发多次,性能上,当然差别很大了。
以上只是简单介绍下UDP的特性,下面我们来引入实际的例子。我假设有N个DMBS,有个数据必须同时写入到这些数据库中,同时还保证成功。这个案例在第五章基于规则的路由请求中有提到过。这个案例看似简单,其实十分复杂难办。如果我将N个DBMS的写操作做为一个事务,那么这个写操作的成功将受到N个因素影响,任何一个失败,都将导致整个事务失败。而且,如果是以TCP来传输这个写操作的话,还必须发送N次,在所有的写操作成功后才被认为是成功了。
如果是UDP的话,可以用多播或者广播的方式,发送一次就可以了。即使不是以这种方式,那么我们用UDP报文发送的话,也不用等待太长的时间。在很多情况下,N个DBMS的写操作并不需要构成一个完整的事务。可能有一个核心的DMBS需要保证他的完整性,而其他DBMS相对来说,并不需要那么苛刻的要求,比如查询。查询是个很费资源的操作,将查询请求放置在一个单独的DBMS是很明智的做法,将这么耗资源的操作独立起来,可以避免核心操作被干扰。在这种情况下,我们只要保证核心数据库的写操作是成功的就行了。即使查询数据库的写操作失败,我们依然可以将他缓冲起来,在合适的时候在发送。UDP正好符合这个需求,而且在性能上要优于TCP的传输。
UDP是不可靠的传输,这个我们必须要记住。但是我们可以在UDP上附加一个简单的机制保证他的可靠性,过程可以象TCP那样。TCP的可靠性我们是无法选择,但是UDP的可靠性,我们可以选择。我们可以根据需要解除这种附加的机制,来提高性能或者实现可用性。
以上只是简单介绍下UDP的特性,下面我们来引入实际的例子。我假设有N个DMBS,有个数据必须同时写入到这些数据库中,同时还保证成功。这个案例在第五章基于规则的路由请求中有提到过。这个案例看似简单,其实十分复杂难办。如果我将N个DBMS的写操作做为一个事务,那么这个写操作的成功将受到N个因素影响,任何一个失败,都将导致整个事务失败。而且,如果是以TCP来传输这个写操作的话,还必须发送N次,在所有的写操作成功后才被认为是成功了。
如果是UDP的话,可以用多播或者广播的方式,发送一次就可以了。即使不是以这种方式,那么我们用UDP报文发送的话,也不用等待太长的时间。在很多情况下,N个DBMS的写操作并不需要构成一个完整的事务。可能有一个核心的DMBS需要保证他的完整性,而其他DBMS相对来说,并不需要那么苛刻的要求,比如查询。查询是个很费资源的操作,将查询请求放置在一个单独的DBMS是很明智的做法,将这么耗资源的操作独立起来,可以避免核心操作被干扰。在这种情况下,我们只要保证核心数据库的写操作是成功的就行了。即使查询数据库的写操作失败,我们依然可以将他缓冲起来,在合适的时候在发送。UDP正好符合这个需求,而且在性能上要优于TCP的传输。
UDP是不可靠的传输,这个我们必须要记住。但是我们可以在UDP上附加一个简单的机制保证他的可靠性,过程可以象TCP那样。TCP的可靠性我们是无法选择,但是UDP的可靠性,我们可以选择。我们可以根据需要解除这种附加的机制,来提高性能或者实现可用性。
- 高可用高性能系统(九)UDP的应用
- 高可用高性能系统(一)系统应用场景
- 高可用高性能系统(十一)最后的守护
- 高可用高性能系统
- 高可用高性能系统
- 高可用高性能系统(二)系统异常场景
- 高可用高性能系统(三)故障管理
- 高可用高性能系统(四)分布和集群
- 高可用高性能系统(六)虚拟网
- 高可用高性能系统(八)进程管理
- 高可用高性能系统(十二)处理粒度
- 高可用高性能系统(十三)虚拟机
- 高可用高性能系统(五)基于规则的请求路由
- 高可用高性能系统(十)基于状态反馈的故障检测
- 大型网站系统架构实践(三)如何提高网站的高可用和高性能
- keepalived ,lvs,tomcat 高可用,高并发,高性能 应用架构的搭建
- 高性能高可用(1)Keepalived
- 高性能高可用(2)LVS
- 游戏中的资源管理器
- 高可用高性能系统(八)进程管理
- 北京8成楼盘降价促销 房价已下跌10%-15%
- 哈佛图书馆的训诫
- 网帖曝90后富家女炫耀私生活引热议
- 高可用高性能系统(九)UDP的应用
- 高可用高性能系统(十)基于状态反馈的故障检测
- 2008.08.05 多云间晴
- 把方法体放在委托申明中,给线程事例化
- GNU Lesser General Public License, version 2.1
- JAVA文件上传(带进度条)JAVA文件上传(带进度条)
- GNU Free Documentation License V1.2
- 在Windows Server 2008下安装Oracle 10g
- Jira一些零散看法