微服务架构原理及特征| 青训营

90 阅读2分钟

微服务框架学习笔记

一、微服务概述

微服务架构是一种分布式架构方式,它提倡将单一应用程序划分成一组小的服务,每个服务运行在其独立的进程中,服务之间互相协调、互相配置,为用户提供最终价值。

微服务架构具有以下核心特征:

  • 每个服务独立开发、独立部署
  • 服务之间通过轻量级API互相交互
  • 服务可独立扩展、按需伸缩
  • 去中心化,服务自治
  • 技术栈无限制,可独立选择

优点:

  • 独立部署,提高部署效率
  • 高内聚、松耦合,代码可重用
  • 故障隔离,一个模块故障不影响其他模块
  • 按需伸缩,提高资源利用效率

二、微服务框架设计原理

微服务框架用于简化分布式微服务应用的开发。其主要原理如下:

1. 注册中心

服务注册中心记录服务及位置信息,服务实例启动时主动注册,客户端从注册中心获取服务列表。常见实现有Eureka、Zookeeper等。

2. 服务调用

客户端通过负载均衡调用服务。调用方式包括REST调用、RPC调用等。

3. 服务熔断

服务过载时快速失败,避免雪崩。常用Hystrix实现。

4. 动态配置

配置中心使配置外部化,支持动态更新,常用组件如Spring Cloud Config。

5. 路由管理

智能路由,实现请求的动态路由和转发。

6. 消息总线

使用轻量消息代理连接服务,实现异步通信和解耦。

三、微服务框架实现

主流微服务框架包括Spring Cloud、Dubbo等。

Spring Cloud 基于Spring Boot实现,使用Netflix组件进行分布式解决方案。主要组件包括:

  • Eureka:服务注册中心
  • Ribbon:负载均衡
  • Feign:服务调用
  • Hystrix: 熔断器
  • Zuul:API网关

Dubbo 通过注册中心发现服务,使用RPC调用进行服务间通信。具有负载均衡、容错处理等能力。

四、应用思考

微服务架构也存在如服务运维难度大、分布式事务难以解决等问题。我认为应根据业务需要合理采用微服务,同时设计好服务边界,适当考虑微服务聚合。准备好监控和运维平台,从设计上优化系统。

疫情期间大流量也对微服务稳定性提出挑战。我计划通过完善评审标准,做好容量评估;同时进行locales和压测,发现问题优化系统。

微服务是建设可持续、可扩展系统的重要方式,需要我们不断学习和优化。