微服务架构笔记(持续更新)

目录 一、简介 二、关键技术 1.服务发现机制与注册中心 2.负载均衡 3.服务网关 4.服务容错 5.服务部署与通信 6.微服务框架关键技术及核心部件比较 7.服务组合方案 三、特点 四、优势 五、劣势和不足 六、发展 1.传统的一站式分层架构 2.SOA(Service Oriented Architecture) 3.微服...
摘要由CSDN通过智能技术生成

一、简介

微服务架构(Micro Services Architecture,MSA) 是 一种架构风格和设计模式,它提倡将应用分割成一系列细小的服务,每个服务专注于单一业务功能,运行于独立的进程中, 服务之间边界清晰,采用轻量级通信机制(如 HTTP/REST) 相互沟通、配合来实现完整的应用,满足业务和用户的需求。

微服务是以专注于单一责任与功能的小型功能区块为基础,利用模组化的方式组合出复杂的大型应用程式,各功能区块使用与 语言无关的 API 集相互通讯。

在微服务架构中,每个微服务只 负责非常明确、独立、简单的任务处理,并将处理结果以 API 的形式返回给外部。从实践的角度看,微服务即是对整 个软件平台或项目的细粒化拆分,拆分后的所有微服务独立 运行,互不干扰,每个微服务都运行在独立的容器中。在以 往的架构设计中,服务层是以参数或对象传递的方式实现细 粒化过程的使用,这一过程在内存中完成。

例如,用户的登录过程,传统的接口或动作 (Action)中需要经历黑白名单检查、密码口令比对、登录 日志记录 3 个过程。而在微服务架构中,可将这 3 个过程都 以微服务方式构件,独立工作,进而使微服务的代码成为组 件。

微服务 ≈ 模块化开发 + 分布式计算

 

二、关键技术

除需具备传统实 施方案中基本的如服务注册与发现,服务组合等功能 外,微服务体系结构还需某些扩充模块,并对已有模块 进行扩展或优化。这些扩充模块主要包括负载均衡、 API网关和容错机制等。

1.服务发现机制与注册中心

微服务提倡轻量级的服务架构理念,单个微服务一般部署在轻量级容器如 Docker 中。在运行时,服务实例可能随时被克隆、销毁或重定位,故需要一种动态的服务发现机制。通常,在实现服务发现时,服务提供者需先将服务实例的地址信息注册到注册中心,注册中心则负责管理服务实例地址并提供心跳检查等机制,而服务发现组件作为服务调用方,通过注册中心实现服务查询并获得可用的服务实例地址列表。实际上,服务发现组件部署位置并不是固定的,一般可分为客户端发现和服务端发现两种。

  • 客户端发现
    • 服务发现逻辑由客户端实现,客户端作为服务发现组件基于上述方法确定服务实例的网络地址。
  • 服务端发现
    • 服务端发现则是把服务发现逻辑委托给了专门的路由服务。当客户端有服务请求时需将请求发送给路由服务,再由路由服务与注册中心交互,以发现满足请求的服务。与客户端发现相反,此方式并不需客户端设计服务发现逻辑,但需要额外的路由服务作为中间件,存在一定的性能损耗。

在微服务体系结构中,要实现服务发现,服务注册中心尤为重要。注册中心主要负责管理服务提供者和消费者的 URL地址及路由信息等,并实现服务注册、发布、健康检查和故障排除等功能。

(CAP理论见:https://blog.csdn.net/w372426096/article/details/80437198

其中,Zookeeper 是分布式系统使用较典型的注册 中心,它提供统一命名、集群管理、状态同步、分布式应 用配置管理等功能,并能很好地解决分布式系统数据一 致性问题,较适合于大型分布式系统应用[22] 。Etcd 一 般仅存储一些键值对数据,故适用于少量数据的情 形。Consul 是 Google 公司开发及维护的注册中心,与 Zookeeper、Etcd 相比,它的功能更为全面,如内置了服 务发现功能,在实现时也不需依赖其他插件,更容易部 署。Redis属于 key-value 存储服务器,主要以事件的发 布、订阅实现服务发现,而 Multicast主要采用广播的形 式发布、订阅消息,但这种组播的方式受网络结构因素 影响较大,比较适合小型应用使用。Netflix Eureka 属 于RESTful的微服务注册与发现组件 。与Zookeeper、 Redis 等注册中心相比,Eureka 在实现服务发现时优先 保证服务可用性并且属于轻量级组件,易于部署、维护。

2.负载均衡

在微服务体系结构中,为了提高伸缩性,单个微服务通常具有多个进程级服务实例,服务实例的个数随着服务请求的数量而动态变化。当服务请求数量增多时, 相应的服务实例个数有可能随之增加。相反地,服务实例也可因服务请求数量的减少而被销毁。因此,需要通过某种负载均衡算法,将服务请求分发至特定的服务实例进行处理

 

3.服务网关

服务网关主要位于网络的边缘并作为外部服务请求的统一入口,主要提供身份认证与安全检查、请求路由管理、服务组合、请求分派与维护、压力检测、负载均衡等功

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值