作家
登录

假如让你来设计数据库中间件

作者: 来源: 2017-11-30 11:19:18 阅读 我要评论

LOGIC_DB:逻辑数据库,面向上游,例如umc

PARTITION:数据库分区,可以懂得为分库,例如umc0和umc1,这个对上游是透明的

ITEM:数据库项,可以懂得为一个分区上的一个读库或者写库,这个对上游也是透明的

  1. <db id=1 logic_db="umc"type=2 patition_count=2 key="uid" hash="mod"
  2.  
  3.    <patition id=0> 
  4.  
  5.        <item ip="10.58.1.100" port=3306 role="w" /> 
  6.  
  7.        <item ip="10.58.1.101" port=3306 role="r" /> 
  8.  
  9.        <item ip="10.58.1.102" port=3306 role="r" /> 
  10.  
  11.    </patition> 
  12.  
  13.    <patition id=1> 
  14.  
  15.        <item ip="10.58.1.100" port=3316 role="w" /> 
  16.  
  17.        <item ip="10.58.1.101" port=3316 role="r" /> 
  18.  
  19.        <item ip="10.58.1.102" port=3316 role="r" /> 
  20.  
  21.    </patition> 
  22.  
  23. </db>  
  •     LOGIC_DB:须要存眷partition-key-column,也须要存眷partition算法,它要实现对PARTITION的请求路由以及结不雅集的汇总 
  •     PARTITION:须要存眷ITEM的读写特点,它要实现对ITEM的读写分别 
  •     ITEM:是最终的数据库,和它相干的设备是数据库ip/port/name/wr-type 

(2.4)中心层-MysqlServerPart

(2.8)中心层-SqlRouter

中心层办事端组件MysqlServerPart是中心层中异常重要的一个部分,它负责端口的监听+请求接收与返回(办事端收集IO),MysqlProtocol的解析。根据其功能,MysqlServerPart组件又重要分为两个组件ServerIOMgr组件(办事端IO治理),MysqlProtocolAnalyzer组件(Mysql协定分析)。

这一层次面对这些细节:

  • server收集框架的拔取:建议应用异步server 
  • 并发模型的拔取:建议应用IO-thread + multi-work-thread的并发模型 
  • 内存治理模型的拔取:建议应用内存池 
  • 连接高低文治理,最轻易想到的高低文,一个数据库连接是和一个逻辑库LOGIC_DB绑定的 
  • Mysql若何建立数据库连接:须要考察Mysql协定 
  • Mysql协定的细化解析:须要考察Mysql协定 
  •  … 

(2.5)中心层-MysqlClientPart

中心层客户端组件MysqlClientPart是中心层中异常重要的一个部分,它负责中心件对mysql的连接池治理,以及返回结不雅集的解析。根据其功能,MysqlClientPart组件又重要分为两个组件ClientConnPoolMgr组件(客户端连接池治理),ResultSetAnalyzer组件(返回结不雅集分析)。

这一层次面对这些细节:

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)