微服务选型

本文介绍了微服务,它是SOA架构下为肢解业务、使服务独立运行的产物。阐述了其产生背景,分析了优缺点,适用于有高可用、易拓展等需求的场景。还对比了dubbo和spring cloud两个开源主流框架,并给出了技术选型依据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 什么是微服务
所谓的微服务是SOA架构下的最终产物,该架构的设计目标是为了肢解业务,使得服务能够独立运行。

二、 背景
随着Internet的快速发展,Web应用程序的规模不断扩大,最终我们发现传统的垂直架构(单片机)无法再处理这个问题。分布式服务架构和流量计算架构势在必行,迫切需要一个治理系统来确保架构的有序演进。
在这里插入图片描述

  • 单片架构
    当流量非常低时,只有一个应用程序,所有功能都部署在一起,以减少部署节点和成本。此时,数据访问框架(ORM)是简化CRUD工作负载的关键。
  • 垂直结构
    当流量变大时,添加单片应用程序实例无法很好地加速访问,提高效率的一种方法是将单片机拆分为离散应用程序。此时,用于加速前端页面开发的Web框架(MVC)是关键。
  • 分布式服务架构
    当越来越多的垂直应用程序,应用程序之间的交互是不可避免的,一些核心业务被提取并作为独立服务,逐步形成一个稳定的服务中心,这样前端应用程序可以很快地响应市场需求的变化。此时,用于业务重用和集成的分布式服务框架(RPC)是关键。
  • 流量计算架构
    当服务越来越多时,容量评估变得困难,小规模的服务也经常导致资源浪费。为了解决这些问题,应该添加一个调度中心来管理基于流量的集群容量,并提高集群的利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键。
    三、 优点和缺点
    优点:
  • 按照业务划分子系统,避免单个系统过于庞大,降低更新和修复的困难度
  • 各个子系统松耦合,独立提供服务,避免单功能故障影响整个系统
  • 支持业务横向扩充,可充分利用机器资源,扩展服务集群数量
  • 可以通过虚拟化工具,快速部署,增强持续交付能力
  • 结合云平台物理资源,不降低性能的前提下,降低企业硬件成本
    缺点:
  • 服务整体架构复杂,拆分能力面临挑战
  • 独立系统众多,增加运维难度
  • 各个子系统调用复杂,排查问题难度增加
    四、 应用场景
    面临复杂众多的功能模块,有高可用、易拓展、快速交付的需求。
    应用行业包括金融、电商、安全等
    五、 开源主流框架对比
  1. dubbo
    在这里插入图片描述
     Provider: 暴露服务的服务提供方。
     Consumer: 调用远程服务的服务消费方。
     Registry: 服务注册与发现的注册中心。
     Monitor: 统计服务的调用次调和调用时间的监控中心。
     Container: 服务运行容器。
  2. spring cloud
    在这里插入图片描述
     Service Provider: 暴露服务的提供方。
     Service Consumer:调用远程服务的服务消费方。
     EureKa Server: 服务注册中心和服务发现中心。
    从整体架构上来看,二者模式接近,都需要需要服务提供方,注册中心,服务消费方。
    六、 技术选型
  • 两者服务组件对比:
    -
    DubboSpring cloud-
    务注册中心Zookeeper NacosEureka\Nacos(alibaba)
    务网关GatewayZuul\Gateway
    息总线Bus
    路器Hystrix
    务跟踪Sleuth
    务调用方式RPCRestful API
  • 两者支持协议对比:
    -
    -rmihessionhttpwebservicerredis
    -spring Cloud
    -dubbo
  • 选型依据:
    Dubbo 默认采用dubbo协议,采用单一长连接和 NIO 异步通讯(保持连接/轮询处理),使用自定义报文的 TCP 协议,并且序列化使用定制 Hessian2 框架,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况,但不适用于传输大数据的服务调用。
    Spring Cloud 直接使用 HTTP 协议(但也不是强绑定,也可以使用 RPC 库,或者采用 HTTP 2.0 + 长链接方式(Fegin 可以灵活设置))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值