微服务,中间件,组件概念及区别 您所在的位置:网站首页 微服务化数据库开源系统 微服务,中间件,组件概念及区别

微服务,中间件,组件概念及区别

2023-09-26 19:32| 来源: 网络整理| 查看: 265

微服务

微服务是一种用于构建应用的架构方案。微服务是松散耦合的分布式架构框架,因此一个团队的更改不会破坏整个应用。使用微服务的好处是,开发团队能够快速构建应用的新组件,以满足不断变化的业务需求

举例: ZeroC Ice Grid、Dubbo、Spring Cloud

中间件

定义: 中间件(英语:Middleware),又译中间件、中介层,是一类提供系统软件和应用软件之间连接、便于软件各部件之间的沟通的软件,应用软件可以借助中间件在不同的技术架构之间共享信息与资源。中间件位于客户机服务器的操作系统之上,管理着计算资源和网络通信。 举例:来源 1、 路由与web服务器:处理和转发其他服务器通信数据的服务器。 如被业界广泛使用的阿里基于 Nginx 研发的 Tengine、阿里内部的集中式路由服务 2、 VipServer- RPC框架:微服务时代的远程服务调用框架。如grpc, Thrift, 阿里的 HSF, Dubbo, SOFA-RPC 3、 消息中间件:支持在分布式系统之间发送和接收消息的软件。 如 Apache kafka, Apache RabbitMQ, NSQ, 阿里孵化开源的 Apache RocketMQ 4、 缓存服务: 分布式的高速数据存储层,一般是内存存储。如 阿里 Tair,业界的 Redis, Memcached, Ehcache 5、 配置中心:用来统一管理各个项目中所有配置的系统。如 阿里 Nacos、携程 Apollo、百度 Disconf 6、分布式事务:事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。 如 阿里 seata、腾讯 DTF 7、任务调度:分布式环境下提供定时、任务编排、分布式跑批等功能的系统。如 阿里 SchedulerX、业界 xxl-job、当当 elastic-job、有赞 TSP 8、 数据库层 用于支持弹性扩容和分库分表的 TDDL,数据库连接池 Driud, Binlog 同步的 Canal 等。

组件

组件的最大意义在于封装重复的工作,其次是可以扩充现有组件的功能。

区别 一、应用场景

微服务

团队规模较大,超过10人; 业务复杂度高,超过5个以上的子模块(业务功能较复杂); 项目需要长期迭代开发和维护(半年以上)

中间件

1)、进行系统解耦 例如 A 系统给B系统发消息 A系统给C系统发消息,为了系统A 不在随意修改,则可以 A 系统发消息给消息中间件,消息中间件转发消息给 系统 B 系统C,也方便后面需要添加系统D,进行信息交互,如果将来很多系统进行信息交互时,则可以考虑添加消息中间件进行消息转发。

2)、消息异步处理时 A 系统 发消息给B,B 进行消息处理,不用及时回复A,则可以考虑加消息中间件,A 只管发消息给中间件,B从中间件中取出消息进行处理返回给A,消息中间件进行消息缓存,B异步读取处理。

3)、大量请求需要屏蔽情况下,比如秒杀活动,排队等 如开启某个秒杀活动,会有大量请求消息,如果服务器处理所有消息请求显然是不合理,秒杀结果只有少数人能得到,多数人是无效请求,中间件缓存请求,后端服务器只需要取部分请求处理即可。

组件

将一个单一工程的项目,分解成为各个独立的组件,然后按照某种方式,任意组织成一个拥有完整业务逻辑的工具

二、优缺点

微服务

优点: 快速响应变更,得益于单一职责和独立部署 独立拓展,边界清晰,不过度受制于技术栈 精粒度业务控制,降级熔断,局部限流 不依赖数据模型,易于抽象,面向业务/领域模型 缺点 部署结构复杂,模块众多,一堆额外组件 依赖平台支撑,依赖微服务组件,研发成本较高 分布式问题,一致性,异常补偿 拆封水平要求较高,粒度过粗/过细

中间件

优点 复杂系统的解耦 复杂链路的异步调用 瞬时高峰的削峰处理 缺点 系统可用性降低) 系统稳定性降低 分布式一致性问题

组件

优点 组件更加清晰直观 组件关系更加清晰 结果可以预测 缺点 最小化了重绘(diff算法) 避免了不必要的dom操作



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有