什么是中间件?如何设计一个中间件?

Posted 四猿外

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是中间件?如何设计一个中间件?相关的知识,希望对你有一定的参考价值。

中间件是处于操作系统和应用程序之间软件,使用时往往是一组中间件集成在一起,构成一个平台(开发平台+运行平台),在这组中间件中必须要有一个通信中间件,即
中间件=平台+通信
该定义也限定了只有用于分布式系统中才能称为中间件

中间件主要分类:远程过程调用、面向消息的中间件、对象请求代理、事物处理监控。

如果我设计一个中间件,我会从以下几点方面考虑开发:

  1. 远程过程调用

  2. 面向消息:利用高效的消息传递机制进行平台无关的数据交流,并给予数据通信来进行分布式系统的集成,有以下三个特点:
    a) 通讯程序可以在不同的时间运行
    b) 通讯程序之间可以一对一、一对多、多对一甚至是上述多种方式的混合
    c) 程序将消息放入消息队列后,从消息队列中取出消息来进行通讯

  3. 对象请求代理:提供不同形式的通讯服务包括同步、排队、订阅发布、广播等。可构筑各种框架如:事物处理监控器、分布数据访问、对象事务管理器OTM 等。

  4. 事物处理监控有一下功能:
    a) 进程管理,包括启动server 进程、分配任务、监控其执行并对负载进行平衡
    b) 事务管理,保证在其监控下的事务处理的原子性、一致性、独立性和持久性
    c) 通讯管理,为client 和server 之间提供多种通讯机制,包括请求响应、会话、排队、订阅发布和广播等

以上是关于什么是中间件?如何设计一个中间件?的主要内容,如果未能解决你的问题,请参考以下文章

为什么要分库分表?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?

RabbitMq

数据库相关面试题

中间件设计指南

前端如何正确使用中间件?

TCMALLOC是什么 高并发内存中间件