这段时间团队在梳理mysql使用上的一些痛点(分库分表、读写分离、权限控制、监控告警、日志审计等),也调研了业内一些mysql中间件的实现,这里把对问题域的思考,以及常见中间件整理沉淀一下
OcceanBase是淘宝开源的一个分布式关系数据库,以下是其官方地址:https://oceanbase.alipay.com/
Mycat是一款基于阿里开源产品Cobar而研发的开源数据库分库分表中间件(基于Java语言开发)。官网所言:Mycat国内最活跃的、性能最好的开源数据库中间件!
想要编写mysql中间件,必须需要对mysql协议有所了解。mysql协议中间件。接下来会简单讲解一些基本协议,如果您想仔细了解,请您移步官方文档mysql protocol
mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,等,但其不支持大数据量的分库分表且性能较差。下面介绍几款能代替其的mysql开源中间件产品:Atlas,tddl,Mycat。 mysql中间件研究原文:Mysql中间件研究(Atlas,cobar,TDDL)
在异地多活项目整体推过程中的一些注意事项和设计点归纳和整理,抛砖引玉,其中一些点还有待深入探讨和优化。
在软件开发领域,「异地多活」是分布式系统架构设计的一座高峰,很多人经常听过它,但很少人理解其中的原理。
采用高可用系统架构支持重要系统,为关键业务提供7x24的不间断服务,已经成为众多企业保障业务稳定、持续运转的主要选择。服务多活是高可用架构重要实施手段,本文介绍了一些业界常用的多活手段例如同城双活、两地三中心、异地多活架构设计方案并详述了各种方案的优缺点。
1 分库分表,我们使用业务逻辑 + 业务程序的方式来进行,并期根据实际的环境将系统中的一些表分割到不同的MYSQL 服务器上存储,达到以下两个关键问题的解决。
在软件开发领域,异地多活是分布式系统架构设计的一座高峰,很多人经常听到过他,但很少人理解其中的原理;
做多活比较难搞的是中间件的多活和有状态服务的数据同步。zk作为一般公司的服务发现的方案,其多机房集群的搞法也是一个问题。
在以前,数据库的集群配置一直很难,难点在于MySQL主从结构的高可用和读写分离。万幸的是,Galera/GR的出现,让整个集群的配置都极大程度地简化了。
光大银行也是很有魄力的,拿出了一个重要的业务系统进行一次试点,做了一次这种分布式架构转型的项目。我有过十余年DBA相关的经验,不过之前接触比较多的主要还是传统的商用型数据库,所以能作为这次项目的推进人,也是我个人在这种新的架构下的一次学习的过程。
最近一个群里面有人问问题,关于MYSQL中间件怎么选型的问题,以及怎么读写问题的问题。我当时嘴比较欠,就说了几句。后面想想当时说的有不少有漏洞,所以写一篇文章,为中间件,或者说数据库的中间件来 平反。
本文由公众号“水滴与银弹”号主Kaito原创分享,原题“搞懂异地多活,看这篇就够了”,为使文章更好理解,有修订。
首先数据库技术发展的基础还是在业务推动的背景下,能够实现相关的技术保障。业务需求的提升必然会在数据量,访问量等方面有更高的要求,而映射到数据库层面就不是简单的扩容和添加资源了,我们有时候更需要弹性,需要快速实现,需要更高的性能。这些都是摆在我们面前的问题,而不仅仅是DBA团队。 所以早期的很多数据库,从一主一从,一主多从的架构,逐步演变到了读写分离,分库分表,然后就是分布式。而同时从很多层面来说,行业内的方案真是百花齐放,记得前几天还和同事聊,说如果对比一下Oracle和MySQL,
随着业务的增长和技术的演进,在应用架构上,我们经历了单一用用架构->垂直应用架构->分布式应用架构的发展。对应的,后台数据库也出现了分布式的解决方案。读写分离,负载均衡读写以及两点双写集群甚至于多点多写集群这些,都离不开数据库的同步。一般的,这些同步都是在同一机房内的。 渐渐的,我们的业务扩展到了全国各地甚至与全世界各地。我们不能也不再满足于将应用和数据库部署在一个机房之中。在多个机房中,我们部署相同的服务。那么一个比较严峻的问题就是数据库跨机房的镜像如何做,也就是我们如何保证不同机房间的数据一致性?
# 背景 今天同事分享的主题就是mysql-proxy,于是下来自己了解下,不求精通,只求知道这个玩意 # 简介 mysql-proxy是mysql官方提供的mysql中间件服务,上游可接入若干个my
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
mysql作为互联网公司都会用到的数据库,如果在使用过程中出现性能问题,会采用mysql的横向扩展,使用主从复制来提高读性能,要是解决写入问题,需要进行分库分表。本文不会去介绍mysql的高可用,需要了解Mysql高可用架构相关的请戳
MySQL Fabric具有分片功能,在同一个分片内又可以含有多个数据库,并且由Fabric自动挑选一个适合的作为主数据库,部署成本较高,另外需要应用端来适配改造。
Mycat作为独立的数据库中间件,我们只需要进行相关的配置,就可以非常方便的帮我们实现水平切分、垂直切分、读写分离等功能,但Mysql的主从复制需要我们通过其它方式实现。这里假设我们已经搭建好相关的环境,下面就开始我们的实践吧!
可重复读解决了脏读和不可重复读的问题,但是可能会出现幻读的问题。在这个隔离级别下,同一个事务内的多次读取结果是一致的,不同事务之间的读取结果互不干扰。
https://www.cnblogs.com/grefr/p/6087942.html#top
作者:[美]威廉·肯尼迪(William Kennedy)布赖恩·克特森(Brian
美团点评技术沙龙由美团点评技术团队主办,每月一期。每期沙龙邀请美团点评及其它互联网公司的技术专家分享来自一线的实践经验,覆盖各主要技术领域。 目前沙龙会分别在北京、上海和厦门等地举行,要参加下一次最新沙龙活动?赶快关注微信公众号“美团点评技术团队”。 这期沙龙主要内容有:分布式服务通信框架及服务治理系统、分布式监控系统实践、分布式会话跟踪系统架构设计与实践,特邀美恰CTO讲解时下热门话题“微服务”。其中既包括关键系统设计、在美团点评内部的实践经验,也包括一些项目在业界开源的运营实践。 前言 随着美团点评的业
本来这个公众号的交流消息中间件相关的技术的。这周去上海参加了QCon,第一次参加这样的技术会议,感受挺多的,所以整理一下自己的一些想法接公众号和大家交流一下。
饿了么技术团队花了1年多的时间,实现了业务的整体异地多活,能够灵活的在多个异地机房之间调度用户,实现了自由扩容和多机房容灾的目标。本文介绍这个项目的整体结构,还简要介绍实现多活的5大核心基础组件,为读者建立基本的概念模型,后续会有系列文章陆续介绍每个组件的实现细节。读者能够从中了解到做异地多活的大方向,为实现自己的异地多活,或者是容灾备份提供参考。
Ø 当业务因高可用机制发生数据库切换时,切换前后的数据库内容应当一致,不会因为数据缺失或者数据不一致而影响业务。
本文介绍最近几年美团点评MySQL数据库高可用架构的演进过程,以及我们在开源技术基础上做的一些创新。同时,也和业界其它方案进行综合对比,了解业界在高可用方面的进展,和未来我们的一些规划和展望。 MMM
在参与公司几个多数据中心项目的容灾架构设计后,积累了一些高可用和多数据中心容灾的一些思考,总结和分享出来希望一起和大家学习。
围绕 MySQL 核心技术,将互联网行业中最重要的数据化解决方案带到传统行业中;囊括其他开源技术Redis、MongoDB、HBase、Hadoop、ElasticSearch、Storm、Spark等;分享干货知识,即便是赞助商,也要求如此,拒绝放水。
今天下午对比了下MyCAT,MySQL和其他数据库的能力项对比情况,梳理了一个列表,因为篇幅原因,主要包含如下的一些能力项。
导语 | 在金融行业IT系统国产化的大背景下,国内金融行业开始推动IT基础设施国产化,逐渐摆脱对于传统IOE架构的依赖。微众银行自成立之初,就放弃了传统IOE架构路红,结合腾讯金融级分布式数据库TDSQL,建立了基于DCN单元化架构模式的分布式基础平台。如今这套架构承载了微众银行数亿级别的用户规模,数百套银行核心系统,和每天数亿次的金融交易。本文由微众银行数据库平台室室经理、腾讯云TVP 胡盼盼在 Techo TVP开发者峰会「数据的冰与火之歌——从在线数据库技术,到海量数据分析技术」 的《分布式数据
Mycat作为独立的数据库中间件,我们只需要进行相关的配置,就可以非常方便的帮我们实现水平切分、垂直切分、读写分离等功能,但PostgreSQL的主从复制需要我们通过其它方式实现。这里假设我们已经搭建好相关的环境,下面就开始我们的实践吧!
今天在飞机上整理了一个初版的元数据看板接口的设计需求,然后又以设计图表的形式补充了一版,整体来说,这个元数据库看板的接口逻辑就梳理差不多了。
异地多活看字面意思 :不通的地方部署服务。前段时间发生的B站挂掉的事情,网上众说纷纭,有的说是有机房着火了,导致服务宕机。那对于这种突发的情况,我们应该如何应对呢?包括说有些地方地震了导致机房宕机等等。
包含了Mycat需要的系统配置信息,用户配置信息以及逻辑库配置信息,源代码中的映射类为:SystemConfig.class
以下是其github代码库:https://github.com/Qihoo360/Atlas
上文说到有赞搜索系统的架构演进,为了支撑不断演进的技术架构,除了 Elasticsearch 的维护优化之外,我们也开发了上层的中间件来应对不断提高的稳定性和性能要求。
我很喜欢的一句话和大家分享一下:很多模式是不能直接复制的。当数量级直线上升的时候,其背后的难度是几何增长的。
选择合适的控制器 k8s 的核心之一控制器(deployment(适合无状态的控制器)、StatefulSet(适合有状态的控制器)) deployment的特性: deployment创建的Pod是无状态的,当挂在Volume之后,如果该Pod挂了,由于是无状态的,Pod挂了的时候与之前的Volume的关系就已经断开了,新起来的Pod无法找到之前的Pod。但是对于用户而言,他们对底层的Pod挂了没有感知,但是当Pod挂了之后就无法再使用之前挂载的磁盘了。 备:如果deployment创建的pod挂载volume时,如果后端使用nfs或者ceph,重启pod数据也不会丢失的 简单理解:deployment的pod是无状态的,Pod挂了之后无法使用之前挂载的磁盘,ip也会丢失。
2022年,基于对稳定性的焦虑...和思考,交易平台联动中间件平台启动过异地多活项目的探索,虽然完成了核心应用及基础组件的改造,但在疫情&降本增效的影响下并未真正投产,同时也缺乏充分的测试以及线上流量的大规模验证;后续在不断的业务迭代中,相关设计及代码被冲击的面目全非,相关的多活自动化测试case也并没有沉淀下来。
前面分享了唯品会机房级别故障又见机房级别故障,机房级别故障虽然不常见,但一旦出现基本上是影响巨大的。
数字化转型并非一蹴而就的事情,对于企业来说,它是一场马拉松,而在这场竞赛中,很多前行者的经验值得借鉴。为了让大家对数字化转型有更多的了解,我们邀请了永辉超市高级架构师张明来为大家分享永辉超市的混合云建设与运维,在正式分享前,我们采访了张明,本文为其采访整理,期待对你有所启发。
首先明确的是,这里的对比都是拿商业的分库分表方案与OB做对比,开源的MyCAT由于功能缺失太多,无可比性
以上表明,拆是手段,合才是关键。拆了之后,还有一件更重要的事,就是怎么把拆出来的模块整合起来。
最近做的项目是和多机房有些关系,不过不是做多活,而是将数据从一个机房拆到多个机房,业务上又允许用户异地访问,即数据分业务数据和用户数据,业务数据跟业务发生的机房绑定,用户数据只有一份,按需要跨区访问:
领取专属 10元无门槛券
手把手带您无忧上云