Spring Cloud Note 1

本文深入解析微服务架构,探讨其设计风格、特征及优缺点,包括服务组件化、智能端点与哑管道、去中心化治理等核心概念,并讨论了微服务在开发、性能层面的优势及面临的挑战。

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

基础知识

Microservices

什么是微服务

微服务是系统架构上的一种设计风格,它将一个独立的系统按照系统业务功能拆分成多个独立的小服务,小服务间各自在独立进程中运行,通过基于HTTP 的Restful API进行通信协作

特征

  1. 粒度小,精于一个或一组特定服务
  2. 都有单独的进程
  3. 轻量级的通信机制,通常使用HTTP/Rest 还有RPC协议
  4. 松耦合,可独立部署

设计思想

  1. 服务组件化

    对服务进行分解,每个服务都可以独立开发,部署,运行,然后通过通讯相互依赖,可以有效对一个服务进行修改而需要重新部署整个系统

  2. 按服务划分团队
  3. 智能端点与哑管道

    使用简单的RPC方式调用会导致微服务间产生繁琐通讯,需要使用更粗粒度的通讯协议:基于HTTP的Restful API,消息中间件

  4. 去中心化治理

    服务架构中的各个服务根据自身不同的业务需求选择不同的技术平台,应尽量避免统一的、集中的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构

  5. 去中心化管理数据

    让每个服务管理自己的数据库

优点

  • 开发层面:
  1. 每个服务独立,便于测试,部署,升级
  2. 系统不会被限制于某个技术栈
  3. 开发针对性,可以针对每个服务组件开发团队
  • 性能层面:
  1. 提高容错性,一个服务的错误并不会马上让整个系统瘫痪
  2. 按需定制的DFX,资源利用率,每个服务可以各自进行x扩展和z扩展,而且,每个服务可以根据自己的需要部署到合适的硬件服务器上;

问题

  1. 系统复杂性,需要开发人员处理分布式系统复杂性
  2. API网关
  3. 通信问题:服务拆开后业务依赖由代码依赖变为了通讯依赖,需要更加完善的依赖通讯机制

    同步通信:HTTP、RPC;异步通信:消息队列(kafaka,robbitMQ)

  4. 服务注册和发现问题:需要服务治理(Zookeeper,Eureka)
  5. 分布式事务问题:
  6. 一致性问题
  7. 服务管理,编排
    1. 重试,熔断,降级,限流等

微服务三维模型(Chris Richardson)

  1. X轴,服务实例水平扩展,保证可靠性与性能;
  2. Y轴,功能的扩展,服务单一职责,功能独立;
  3. Z轴,数据分区,数据独立,可靠性保证;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值