中间件
中间件
广义上说
所有不直接给客户直接提供业务价值的应用软件都叫中间件。比如tomcat、was、weblogic这些应用服务,以及mysql、db2、oracle这些数据库,都算是中间件。
首先它们不是系统软件,其次它们也不是像CRM、OA、财务系统这些直接给客户带来价值的应用软件,恰恰相反,它们需要给这些直接带来价值的应用软件提供支持和服务,所以说它们处于业务型的应用软件和系统软件的中间,都可以叫它“中间件”。
狭义上说
所有处于基础设施层的软件与业务型应用软件中间这一层、具有特定用途的一些软件或者框架,称之为中间件,不一定是独立的程序。这样就把上面提到的应用服务器、数据库、web服务,算做是比较底层的“基础设施”软件了。
狭义的中间件,具体有如下几种分类:
- 消息中间件:Kafka、RabbitMQ、RocketMQ、ActiveMQ、WMQ、Pulsar等
- 缓存中间件:Redis、Memcached、Tair、Hazelcast、ignite等
- 配置中间件:Apollo、Nacos等
- 调度中间件:xxl-job等
- 数据库中间件:Cat、sharing-sphere、Canal、DataX、TDDL、Outter、Fescar、Sqoop等
- 服务化中间件:Dubbo、Spring Cloud、gRPC、Hessian、Thrift、brpc、tars等
- 集成中间件:各类开源or商业的ESB、Mule、WSO2、WMB、OSB等
- 交易中间件:TUXEDO等
- 其他中间件:流控组件Sentinal等
数据库中间件
主流的数据库中间件,包括:
名称 | 出品公司 | 特点 | 社区活跃度 |
---|---|---|---|
Cobar | 阿里巴巴 | 基于proxy实现,已开源 | 已很久没维护 |
DRDS | 阿里云 | 基于proxy实现,在cobar基础上开发 | 已很久没维护 |
MyCAT | mycat团队 | 基于proxy实现,在cobar基础上开发 | 社区活跃 |
mysql-proxy | mysql官方 | 基于proxy实现 | 已很久没维护 |
Altas | 奇虎360 | 基于proxy实现,在mysql-proxy基础开发,只支持分表、不支持分库 | 已很久没维护 |
sharing-sphere | 当当网 | 基于proxy实现,已开源 | 进入了Apache孵化器 |
TDDL | 阿里巴巴 | 基于smart-client实现,已开源 | 已很久没维护 |
zebra | 大众点评 | 基于smart-client实现,已开源 | 已很久没维护 |
sharding-jdbc | 当当网 | 基于smart-client实现 | 社区活跃,进入了Apache孵化器 |
zal | 蚂蚁金服 | 基于smart-client实现 |