大数据平台需要用什么中间件

嘿伙计,我们来谈谈大数据平台。
以前在做大数据项目的时候,其实遇到了很多坑。
记得那一年,我们公司正在建设一个大数据平台。
当时我刚刚开始参与这个领域,对中间件一无所知。

当时我们使用的是消息队列中间件,它主要用来处理大数据传输。
我们选择了Kafka,它确实很好,吞吐量高,而且没有数据丢失。
记得有一次,使用Kafka后,我们公司的日志采集系统的吞吐量从每秒几千直接提升到了百万。
项目进行得很顺利,领导还表扬了我。

然后,为了收集数据,我们使用 Apache Flume。
这个工具非常方便,可以从许多不同的数据源收集数据。
但有一次我们遇到了一个问题,数据采集中断了,恢复的时候还得手动调整,相当麻烦。
然后我们使用FlinkCDC。
这个工具可以实时同步数据库中的增量数据,非常高效。

下一步是数据集成,我们使用ApacheSeaTunnel和DataX。
SeaTunnel功能非常强大,支持多种数据源,消耗资源少。
但DataX有点弱。
只能部署在单机上,容错能力较差。
有一次我们使用DataX迁移数据,但是出了问题,整个迁移过程中断了。
那时我头疼得很厉害。

最后对于数据库中间件,我们使用了ShardingSphere和MyCAT。
ShardingSphere比较全面,支持多数据库,还可以部署分库、分表。
我们公司的一个电商平台用它整合了几十个数据库,提高研发效率。
至于MyCAT,主要是兼容MySQL,适合那些表和分库的场景。

说了这么多,我真正想说的是,在选择中间件的时候,一定要和自己的业务场景相匹配,不要盲目跟风。
我曾经经历过这种失落,现在回想起来我感到很害怕。
先生,请问你们公司的大数据平台使用什么中间件?有什么好的经验可以分享吗?

数据库中间件是什么意思?

数据库中间件,说白了,就是介于操作系统和程序之间的东西。
它就像家中水管中间的过滤器,让水流得更顺畅。

以金融行业为例。
2 01 9 年,一家大公司刚刚上线了一个系统,光靠数据库是支撑不了的。
每次交易达到顶峰时,它就像死狗一样卡住。
然后又花了三个月的时间搭建了分布式数据库中间件,直接将数据库分成了1 00个小块。
读写分离后,处理速度提高一倍。

分库分表技巧非常有用。
我见过一家电商公司举办活动。
当不添加中间件时,后端系统崩溃。
添加后,双十一期间每秒可以处理3 万个请求,比以前好很多。

灵活的扩展也很重要。
前一年某游戏公司的服务器突然爆了,都是靠中间件自动加机器,防止玩家被诅咒死的。
当晚添加了数十台机器,第二天又在玩家们没有注意到的情况下被移除。

说实话,这个中间件现在已经相当成熟了。
像阿里云,实现分库分表比自己做要容易。
但选择的时候也要看情况,不要盲目跟风。

数据库中间件介绍

嗯...数据库中间件...到 2 02 2 年...许多公司都在使用它...这就是...帮助应用程序处理数据库。

它就像一个翻译器...它将应用程序的语言翻译成数据库可以理解的语言...反之亦然。
它省去了您为每个应用程序学习大量数据库命令的麻烦......这非常简单。

它有几个主要目的...使系统运行得更快...更加稳定...并根据需要添加机器...使管理更容易。

比如...分布式系统...需要很多机器同时进行的那种...中间件尤其重要。

有几种类型...让我告诉你...
智能客户端模式...
这个...给每个应用程序添加一个插件...插件处理数据库本身...例如Sharding-JDBC...是Java。

优点...
易于实现...因为它只是一层...只需添加一个驱动程序...并包装一些外壳...就是这样。
自然分散...插件就在应用程序中...直接连接到数据库...没有中间人...所以它不会占用大量资源...而且我不关心使其高度可用。

缺点...
语言限制...它通常只有一种语言...比如Java...如果你写Python...它不会工作。
升级很困难...如果您对多个应用程序使用相同的插件...如果版本中存在错误...您必须一起更改它。

代理模式...
这...是一项单独的服务...专用于翻译...MyCat 就是这样做的。

功能...
多语言支持...反正它模拟数据库...比如MySQL...你可以使用PHP...Java...总之,就用数据库驱动程序吧。
对业务开发透明...因为它就像一个数据库...业务代码不需要经常更改。

缺点...
实现很复杂...你必须学习数据库协议...非常困难...一般只能代理一种类型的数据库...它不能代理所有的数据库。
高可用性要求...因为它已经成为一个关键点...你必须确保它始终在线...并且不能掉线。
租户隔离...被许多应用程序使用...必须竞争资源...必须能够隔离。

统一架构...
这...不是添加插件或单独的服务...而是解构整个应用程序...每个拆解的部分...管理自己的数据...例如,在 2 02 2 年...某家食品配送公司...可能会按城市进行分解...上海应用程序...只需管理上海数据。

优势...
扩展灵活...按规则划分...按需添加...非常方便。
网络很快……因为所有的数据都在我们这里……而且城市周围只有几个……所以访问很快……而且不容易卡住。

缺点...
复杂的调度和管理...必须有一个总经理...负责如何拆除...这个东西不容易改变...你必须从一开始就考虑好。
改造成本高……要加机器……建机房……建不同的平台……要花很多钱和精力。
风险很大……涉及的人很多……需要很长时间……万一出问题……就完了。

所以...你选择哪一个...这取决于你...如果你想要统一语言...使用智能客户端...如果你想要混合语言...使用代理...如果你有很多钱...足够的人力...不想打扰...就统一。

总之...各有各的优点...各有各的缺点...2 02 2 年...大家都会研究...如何选择最适合的。

数据库中间件是什么

数据库中间件,上层操作系统,下层业务系统,对数据库进行连接管理和优化,提高性能和可扩展性。
功能:数据分片、读写分离、负载均衡。
应用:电子商务平台、金融系统。
国内中间件的质量因需求和技术堆栈而异。
中间件价值:易于开发、减少运维、提高性能。