有什么好的国产中间件?

国产中间件就这几家。
宝兰德主打消息和应用服务器。
东方通功能全,性能稳。
普元帮企业整合业务。
金仓数据库中间件,数据连接做得不错。

宝兰德支持大数据和云。
东方通扩容方便。
普元推动业务创新。
金仓数据访问稳定。

各家有各家长处。
企业选型看具体需求。
你怎么看国产中间件前景?

php数据库中间件有哪些

等等,我上周调试laravel项目的时候,突然发现Eloquent这么用,查询速度竟然快了一半。
具体是查询一个带缓存的用户表,没有中间件的时候,每次访问都要连MySQL,卡顿得很。
加了Eloquent之后,本地缓存了半小时的数据,期间请求了三百多次,数据库只被访问了不到十次。
当时我就想,这ORM真不是花架子。
不过,我又想起那个老古董红Bean,之前写个小测试,配置比Eloquent简单一百倍,结果跑起来居然比Eloquent还快?难道轻量级ORM在某些场景下真的能反杀ORM?

数据库系列: 主流分库分表中间件介绍(图文总结)

说白了,分库分表是为了解决数据库在高并发、大数据量下的性能瓶颈。
其实很简单,分库分表有两种方式:垂直拆分和水平拆分。
垂直拆分是按功能模块拆分,比如订单库、商品库、用户库;水平拆分则是按数据量拆分,比如一个大的用户表可以拆成多个小表。

我一开始也以为分库分表只是简单的数据切分,后来发现不对,它涉及到很多技术细节。
比如ShardingSphere,它通过Sharding-JDBC实现分库分表,Sharding-Proxy实现读写分离和负载均衡,Sharding-Sidecar是云原生数据库代理。
这个中间件支持多种数据库,扩展性灵活,适用于高并发、大数据量存储的场景。

另外一点,MyCAT也是一个不错的选择。
它基于Java编写,支持MySQL协议,作为MySQL代理服务器使用,易于部署和使用。
但是,MyCAT的SQL支持相对较弱,可能需要对SQL语句进行改写和优化。

还有个细节挺关键的,Vitess是YouTube开发的,适用于大规模MySQL集群,具有强大的水平扩展和负载均衡功能。
但它的非MySQL数据库支持较弱。

等等,还有个事,虽然Cobar、TDDL、Atlas等中间件在特定时期有一定的应用价值,但随着技术的发展,它们的使用范围和影响力逐渐减弱。

所以,在选择分库分表中间件时,需要根据业务需求、技术栈、性能要求等因素综合考虑。
ShardingSphere、MyCAT和Vitess是当前较为流行和成熟的选择,但也要关注中间件的发展动态和社区支持情况。
这个点很多人没注意,我觉得值得试试。

现在能做分库分表的mysql数据库中间件哪个比较常用?

说白了,MySQL数据库中间件主要解决的就是数据库分片和路由的问题。
ShardingJDBC和MyCat是两个比较热门的选择。
ShardingJDBC,基于Smartclient模式,它就像是把数据分片的“智能客户端”,去年我们跑的那个项目就是用它的,大概3 000量级的数据量,通过它来处理,效果明显。
先说最重要的,ShardingJDBC允许应用直接对接多个单体数据库,这样一来,系统的并发处理能力和存储扩展性都得到了提升。
另外一点,虽然它对业务逻辑有一定的侵入性,但说实话,这种侵入性换来的是性能的显著优化,这也是它广泛使用的原因。

我一开始也以为侵入性是个大问题,后来发现,只要设计得当,其实影响不大。
还有个细节挺关键的,ShardingJDBC在应用层实现数据分片和路由,这就意味着应用开发人员需要更熟悉分片规则,这在一定程度上增加了开发难度。

而MyCat则完全不同,它采用的是Proxy模式,就像是数据库的“代理”,独立于业务应用层和单体数据库。
MyCat简化了数据库管理,还具备分布式事务处理能力,对于需要灵活和高效数据库管理方案的开发者来说,是个不错的选择。
等等,还有个事,MyCat隔离了业务应用层和数据库,这样就可以在不影响业务的情况下,独立进行数据库的维护和升级。

所以,选择哪个中间件,我觉得值得开发者根据项目需求、技术成熟度、生态支持等因素进行综合考虑。
这个点很多人没注意,但其实很重要,因为不同的项目,对数据库中间件的需求是不同的。