当前位置:  软件>java软件

跨机房配置中心 jbpaxos

    来源:    发布时间:2014-12-27

    本文导语:  paxos是什么? 一致性算法,google称其为唯一的一致性算法,其他的算法都是paxos的简化。 我们知道一般数据库的主从同步,实际上在极端情况下,依然会产生不一致的现象,这就造成了master的损坏,需要手动的切换备机,而在p...

paxos是什么?

一致性算法,google称其为唯一的一致性算法,其他的算法都是paxos的简化。

我们知道一般数据库的主从同步,实际上在极端情况下,依然会产生不一致的现象,这就造成了master的损坏,需要手动的切换备机,而在paxos中,由于一致性算法,我们可

以做到自动的进行master的切换,而不会产生不一致的现象,当然这个要在一个大前提下,就是n台机器,仅有小于 n/2的机器损坏,但这样依然提供了我们一种更高的容灾标准。

jbpaxos是什么?

jbpaxos = java  basic paxos , java语言实现的paxos编程框架,提供高可用,强一致,基于paxos构建分布式程序的框架。

适用的场景?

对于一般的应用而言,没有数据的保存,仅仅是提供服务,那么我们可以说这些server对于数据而言是无状态的,比如说,我们多数的java web应用,这些应用所需要的数据,

要么在缓存里,要么在 db里,那这些server仅仅需要提供一个更稳定的负载器来进行故障转移即可了,实际上整套系统的一致性和容灾全部交由另外的系统来解决(db,缓存,

稳定的负载均衡),这些server 是不适用paxos算法的。


对于另外一些应用,我们需要自己维护数据副本,不依赖于第3方服务的,比较适合paxos,自动选主,主故障时,15s恢复期,可提供强一致性,诱人的特性,但这些特性,也


不是没有代价,更高的网络负载,更高的写入延时,如果你能忍受这些,那么请选择paxos吧。

构建高可用的分布式程序,不是有zookeeper吗?

zookeeper提供了类似chubby的功能,可以说zookeeper提供的是一种服务,jbpaxos提供的是更底层的算法实现,基于接口的编程,就可以实现类似与zookeeper的功能

通过jbpaxos,可以自由的实现副本间的同步,zookeeper提供服务的形式,是无法提供副本间同步的功能,副本间同步的功能,请参见下面的demo,实际上,每个config server 就是一份副本

jbpaxos 0.0.1beta提供了什么?

一个classic paxos的实现,应对磁盘损坏,主机宕机,可以做到15s恢复,提供了paxos的底层实现,提供了网络层的接口,二次开发不需要考虑网络层上的开发,基于此项目的二次开发,可以实现高可用的配置中心,分布式锁,基于paxos的副本同步机制等等。

根据网络情况,和设定的最大 rt 容忍时间,自动运行时调整封包大小,最大化网络利用率。


0.0.1beta暂时没有提供fellower的实现,仅仅有senator的实现

jbpaxos 0.0.1beta中的概念

senators,用于写入时投票的节点,fellowers(下个版本实现,对于配置中心类似的多读少写的应用比较有用),仅仅学习的节点,不参与投票过程

master , 从senators中选举出的法官,它来发起一项法案的投票

jbpaxos 的基本性能

3个节点时,写入大小128bytes, 单线程单tcp连接非阻塞同步写入3w+ tps , 1000线程单tcp连接阻塞同步写入2.5w+ , 3线程3个 tcp连接非阻塞同步写入4w+ ,单线程同步写入200tps

写入大小512bytes ,3线程3个 tcp连接非阻塞同步写入3w+

写入大小1024bytes,3线程3个 tcp连接非阻塞同步写入1.6w+ 

512及1024bytes的时候,基本上将千兆网卡顶满了

如果说节点上升到5个的时候,吞吐会下降,写入的大小影响系统性能非常多,所以建议在开发的时候写入数据需要经过压缩,建议使用snappy或lzo这种高吞吐的压缩算法

读取性能,要看二次开发的实现如何,及服务端口,是否和内部系统端口,走同一块网卡


当前的总体架构图



跨机房配置中心 jbpaxos[图片]

架构解说:5个config server 为互备节点,当2个节点(包含2个)以下损坏,不会影响服务,client连接上任一节点即可,对于跨机房部署,要优先连接最近的节点

后续架构:jbpaxos下个版本,预计支持fellower,当下个版本发布后,config server不做代码修改,即可将架构变为下图:


跨机房配置中心 jbpaxos[图片]

后续架构解说:相比两种架构区别,后一种,在扩展更高连接量时,有非常大的优势,fellower的数量决定了可以支撑的client 的数量,但对写入没有帮助,反而会加大写入的延时,适合于像配置中心这类多监视变化,少修改的类型



程序架构图: 红框的部分,是我们需要做的


跨机房配置中心 jbpaxos[图片]




    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求推荐真正使用BGP协议的双线机房
  • 做IDC机房系统管理员需要哪些知识?
  • 求多个能ping通的电信/网通外网IP new机房测试之用
  • 机房要安装Linux用什么方法,可以快速安装!
  • [求助]这种用户机房设备集中监控的小物件叫什么?
  • MySQL无法启动1067错误的又一种解决方法(机房断电)
  • 学校机房用什么工具进行windows和linux双系统的网络克隆?急~~在线等
  • 机房所有设备要停20个小时,怎么停啊?
  • 机房里的服务器不出问题,linux管理员还能做什么?
  • Linux机房搭建问题
  • linux iis7站长之家
  • 一个vsftp的问题,在本地调试的很好,但是放到机房就不行了
  • 路由问题, 本人在机房 请教高人
  • 急!我在双线机房的linux路由出现了问题,请帮忙。
  • x-win32连接问题.177端口已打开,本地可以连上,但放到机房后就连不上了


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3