LOGIC_DB:逻辑数据库,面向上游,例如umc
PARTITION:数据库分区,可以懂得为分库,例如umc0和umc1,这个对上游是透明的
ITEM:数据库项,可以懂得为一个分区上的一个读库或者写库,这个对上游也是透明的
- <db id=1 logic_db="umc"type=2 patition_count=2 key="uid" hash="mod">
- <patition id=0>
- <item ip="10.58.1.100" port=3306 role="w" />
- <item ip="10.58.1.101" port=3306 role="r" />
- <item ip="10.58.1.102" port=3306 role="r" />
- </patition>
- <patition id=1>
- <item ip="10.58.1.100" port=3316 role="w" />
- <item ip="10.58.1.101" port=3316 role="r" />
- <item ip="10.58.1.102" port=3316 role="r" />
- </patition>
- </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组件(返回结不雅集分析)。
这一层次面对这些细节:
- 数据库连接池的实现
- 数据库连接模型的选型:建议前期应用同步模型
推荐阅读
CTO练习营 | 12月3-5日,深圳,是时刻成为优良的技巧治理者了 昨天我们报道了最新的Mac OS体系出现严重马脚的问题,重要来说就是,你设置的暗码设置形同虚设,输入“root”作为用>>>详细阅读
本文标题:假如让你来设计数据库中间件
地址:http://www.17bianji.com/lsqh/39319.html
1/2 1