`
gaojingsong
  • 浏览: 1196787 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【 数据库中间件之OneProxy】

阅读更多

OneProxy是由原支付宝首席架构师楼方鑫开发,目前由楼方鑫创立的杭州平民软件公司(@平民架构)提供技术支持。目前已有多家公司在生成环境中使用,其中包括了支付、电商等行业。

 

OneProxy的主要功能有:

1. 垂直分库

2. 水平分表

3. Proxy集群

4. 读高可用

5. 读写分离(master不参与读)

6. 读写分离(master参与读)

7. 写高可用

8. 读写随机

 



 

OneProxy for MySQL是一款基于MySQL协议的数据库中间件,运行在应用程序和MySQL数据库之间,为应用程序提供智能透明的SQL路由和流量分析功能。可以帮助大家在不改变或只更改少量应用代码的情况下, 实现后端MySQL数据库的集群化布署,可以象使用网络交换机/路由器组建网络那样轻松组建分布式数据库集群,并通过流量实时分析,为上层的应用和底层的数据库集群提供丰富的性能监控功能。

OneProxy for MySQL可以让不同应用复用到后端数据库的连接,降低数据库的并发连接数;可以即时发现和踢除不可用的后端节点,将应用请求转发到其他可用节点实现高效故障隔离, 可配合Galera Cluster或MySQL Group Replication实现快速切换; 内置的守护进程模式和HA VIP机制,可以轻松实现Proxy的单机及多机高可用,确保业务服务的稳定性;可以透明地将查询语句分发到多个MySQL备库执行, 用读写分离方案支持上千万的并发访问;也可以根据SQL语句中的值进行分库分表路由, 将写操作均匀分散到多个MySQL主库上,以构建每秒百万TPS的MySQL集群; 跨多分片的结果集合并, 极大地简化了应用程序的开发工作量;在分片的情况下可根据分片并行执行SQL,解决了MySQL在大数据量下的汇总统计性能问题。

OneProxy for MySQL可以对访部请求进行安全检查,拒绝危险的DDL操作;可根据IP地址进行访问控制,只允许可信的IP地址进行访问;可以对每个SQL访问请求进行审核,实现SQL白名单机制, 彻底杜绝SQL注入式攻击;可以实现前后端密码分离,应用无须使用真实密码连接数据库,实现数据库密码的保护;可以分别设定前端应用和后端数据库的SQL请求频率,实现QoS控制; 可以通过正则表达式实现敏感数据过滤和审计,也可以在日志中记录大数据量的访问和更新操作,确保数据的安全。

OneProxy for MySQL可实时透明地分析流量,包括SQL语句和结果集,实时统计SQL和事务的运行时间,分析事务的SQL结构,得到各种不同维度的实时性能报告, 并可通过内置Web服务器方便直观地查看实时性能数据,弥补上层应用和MySQL实时性能监控方面的不足。使用C&C++开发,充分利用高性能的异步网络事件编程框架, 使单个OneProxy实例可支持高达40W的QPS/TPS;并可充分利用和管理内存,无Java类语言的内存回收问题,确保7x24的稳定性;内置的守护进程模式和HA VIP机制,可以轻松实现Proxy的多机高可用; 平民软件完全自主编写源代码,无外部代码和模块依赖,可以迅速分析和解决运行过程中的可能遇到的问题和故障。

 

 

超高性能

OneProxy for MySQL使用C&C++语言开发,充分发挥高性能的异步网络事件编程框架(libevent)优势,历经168小时的高压内存泄漏测试,做到零内存泄露,并使用jemalloc来优化内存分配,单个OneProxy实例可支持高达40W的QPS/TPS。

OneProxy for MySQL内置高效的SQL分析器,解析一条SQL的平均时间为100微秒,基本做到无时延的请求转发,无须担心代理层的性能和时延消耗;固定可调节的工作进程的模式,可以在任何机器上发挥优异的性能, 充分利用CPU和万兆网络资源,实现100万QPS转发。

在256个并发的情况下,和直连MySQL有同等的QPS能力,达到无损转发。使用透明连接池的功能,具备MySQL企业版连接池效果,提升后端数据库的处理能力,让应用无限扩容,无须担心后端MySQL连接数。

 

 

透明集群

OneProxy for MySQL可在协议层实现对应用透明的读写分离路由,实现读操作的无限扩展,并可实时监控主备之间的复制时延,并与MHA / PXC / MGR等多种高可用集群技术配合,实现实现应用对后端无感知的高可用。

OneProxy for MySQL可以透明分析SQL语句,根据Where条件中的值在协议层实现分库分表路由,实现写操作的灵活扩展,并实时监控后端数据库的运行状态,根据既定的集群策略进行故障切换,应用无须知道后端运行状态和节点规模。

OneProxy for MySQL支持跨分片的多结果集合操作,例如排序、汇总、分页等等,可让应用无须知道后端节点的规模数,实现对应用透明的扩容和缩容,搭建对应用透明的数据库集群。

 

 

安全审计

OneProxy for MySQL可以对不安全的登录和访问请求进实时拦截,可以根据SQL请求的类型进行灵活处理,比如禁止DDL语句、不允许数据删除命令等; 可以根据请求的IP地址进行拦截,对登录者身份进行额外的身份验证(基于不可逆的算法)。

OneProxy for MySQL完全接管应用的登录验证工作,可以实现前后端的密码分离,应用只配置登录OneProxy的密码,而真正登录数据库的密码只需配置在OneProxy上,以防止黑客从应用机器上获取密码。

OneProxy for MySQL可对每一个SQL请求进行实时检查和拦截,可以动态配置黑白SQL名单进行SQL特征检查,以杜绝SQL注入式攻击。通过丰富的实时访问统计数据,以及记录所有的SQL错误操作,可以快速发现试探性的黑客行为。

 

 

流量分析

OneProxy for MySQL可实时分析SQL和结果集的流量,与数据库后端的性能视图相比,OneProxy知道SQL语句的来源IP地址、会话及事务上下文,有更多的维度可展示数据,具有更强的结果呈现能力。

根据IP维度的统计,可以快速了解不同应用的数据库交互情况,包括应用访问具体表的情况、SQL执行信息、事务的性能数据,也可了解不同应用使用数据库的交集,实现数据架构的快速优化。

根据事务维度的统计,可以快速了解不同事务和数据库交互情况,包括事务的执行频率、总体执行时间、纯SQL的执行时间、DML操作所占的时间,高效进行性能优化,并可轻松分析事务之间的关联,推动业务数据模型的优化。



 

 

稳定可靠

OneProxy for MySQL历经168小时(数百亿次SQL)高压测试,并且对公众用户开放Binary进行试用,数百个用户使用同一个OneProxy版本进行丰富的业务场景验证,造就了OneProxy稳定可靠的品质。

OneProxy for MySQL内置高可用机制,即有实现进程级的重起机制,也有跨机器之间的HA/VIP机制(可实现三节点,用类Paxos机制实现多点选主),也可与Haproxy / LVS / Zookeeper配合实现多活架构,以确保OneProxy的高可用。

OneProxy for MySQL可与多种高可用架构(如MHA、 Percoan XTraDB Cluster、 MySQL Group Replication等)进行协同工作,实现故障的快速发现、隔离或切换,确保业务层稳定可靠。

  • 大小: 328.5 KB
  • 大小: 319.3 KB
0
1
分享到:
评论

相关推荐

    数据库中间件oneproxy简明使用手册

    ### 数据库中间件 OneProxy 简明使用手册 #### 一、背景说明 随着企业的快速发展,原有的数据库架构已经难以满足日益增长的业务需求。原架构中,仅使用三台MySQL服务器来支持多个数据库(超过五个)并实现简单的...

    平民软件oneproxy-monitor使用手册1

    oneproxy-monitor 是一款数据库中间件软件,由平民软件提供。该软件的手册主要介绍了其安装、使用、功能、性能等特性,为使用该软件的所有用户提供了详细的指导。 1. 引言 oneproxy-monitor 使用手册的编写目的...

    MySQL流行中间件比较及实现原理

    - **分布式数据库:**采用分布式数据库中间件,进一步提升系统的可扩展性和容错能力。 #### 二、各类中间件简介 数据库中间件是为了解决上述问题而出现的一种解决方案。它位于应用程序与数据库之间,帮助实现数据...

    linux运维学习笔记:Mysql中间件Atlas读写分离原理与实战.pdf

    除了Atlas之外,还有其他的数据库中间件解决方案,如Mysql-proxy、Mysql-router、Cobar、Mycat、TDDL SmartClient、Oceanus、OneProxy、vitess、Heisenberg、TSharding、Xx-dbproxy等。 6. Atlas的部署 - 系统要求...

    oneproxy-rhel5-linux64-v6.0.0-ga.tar.gz

    OneProxy是平民软件完全自主开发的分布式数据访问层,帮助用户在MySQL/PostgreSQL集群上快速搭建支持分库分表的分布式数据库中间件,也是一款具有SQL白名单(防SQL注入)及IP白名单功能的SQL防火墙软件。采用与MySQL...

    MySQL OneProxy读写分离安装配置

    MySQL OneProxy是一款强大的数据库中间件,它主要用于实现MySQL数据库的读写分离,提高数据库系统的并发处理能力和响应速度。在大型互联网应用中,由于读操作通常远多于写操作,通过读写分离可以将读操作分散到多个...

    MyCat知识点汇总

    在Mycat之前,还有其他数据库中间件,如OneProxy,它基于MySQL官方的proxy思想,由C语言开发,是一款商业收费中间件,注重性能和稳定性;kingshard由小团队用Go语言开发,还在发展中,需要不断完善;Vitess最初由...

    在OneProxy的基础上实行MySQL读写分离与负载均衡

    总的来说,OneProxy作为MySQL的中间件,简化了数据库的读写分离和负载均衡实施,提升了系统的稳定性和效率,同时也提供了额外的安全保障。通过合理配置和使用OneProxy,企业能够构建出更健壮、可扩展的数据库架构,...

    mysql岗位职责.docx

    5. **NoSQL中间件:** 熟悉NoSQL中间件(如MongoDB、Redis等)的应用与维护,了解其高可用架构方案。 6. **业务支持:** 理解互联网业务特点,能为业务系统提供高性能的数据库设计方案和容灾方案。 7. **系统管理:*...

Global site tag (gtag.js) - Google Analytics