Life

Sunday, May 31, 2020

Spring Cloud(零):初识微服务

微服务的产生
       传统的Java Web 采用单体架构的方式进行开发、部署、运维,发布工程时是将所有的业务模块打包在一起。这种模式存在诸多缺点:
  • 随着业务的发展,需求的增加,开发变得越来越复杂;
  • 新增、修改某一功能便需要对整个系统进行测试,重新打包部署,延长了工时。
  • 工程体量太大,模块内容过于复杂,如果员工离职或新员工入职,可能需要很多时间进行交接和适应。
  • 。。。
       为改善单体应用存在的问题,微服务架构应运而生。微服务可以简单理解为就是将一个单体应用拆分为多个独立的服务,共同协作完成系统功能的一种架构模式。这样就可以实现单独开发、测试、部署,难度降低很多;各个不同服务独立自治,不会影响到其他服务;各个服务可自由选择适合自己的语言和技术框架,微服务之间只需要制定统一的通信协议即可相互调用,协作实现系统功能。

微服务架构的核心组件
  • 服务治理
       拆分后的微服务需要实现服务治理。包括服务注册和服务发现。所有的服务需要在服务中心完成注册才可供其他服务调用。同时,服务发现保证服务调用者无需关心服务提供者的数量和地址,只需报上需求便能领取到服务。
  • 微服务网关
       微服务架构中包含有多个微服务实例,每个微服务实例的IP地址,端口都不同,很多时候完成一个需求会需要调用多个微服务,客户端就必须请求不同的URL,不便于统一管理。可以使用微服务网关为客户端提供统一的请求入口,由网关将请求映射到不同的微服务。
  • 微服务容错
       微服务之间是通过远程调用协作完成任务的,如果因为网络延迟或微服务宕机导致远程调用出现问题,而调用者却毫不知情的苦苦等待。而延误了该调用者为其他调用者提供服务,最终导致系统的崩溃。微服务容错使用熔断器处理此种情况,当发现某一微服务不可用便使之下线或通知调用者该服务不可用。
  • 分布式配置
       每个微服务都有自己的配置文件,当微服务数量多起来后,如何有效管理配置文件也是一个问题。为便于管理,可以把配置放到远程服务器,集中统一管理。
  • 服务监控
       服务监控帮助我们准确跟踪每一个网络请求,了解它的运行流程,经过了哪些微服务,延迟、耗费时间等,为排查问题,系统优化提供支持。

       微服务是一种分布式软件架构设计方式,Spring Cloud 是微服务的一种落地框架,它利用Spring Boot的开发便利性巧妙地简化了这种分布式系统基础设施的开发,为开发者提供一套一套简单易懂、开箱即用、易部署和易维护的分布式系统开发工具包。Spring Cloud的核心组件包括NetFlix Eureka(服务治理)、Feign(服务通信)、Netflix Zuul(服务网关)、Netflix Hystrix(服务容错)、Spring Cloud Config(服务配置)、Actuator(服务监控)、Zipkin(服务跟踪)、···。
       Spring Cloud出自spring家族,spring在企业级开发框架中无人能敌,spring系列产品功能齐全,简单好用,文档规范。如此可保证Spring Cloud能持续更新,完善,保持活力。作为当前最火的技术栈,学习Spring Cloud是技术进阶的必由之路。
       
版权声明
本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者Leslie Tien和本文原始地址:
https://leslietien.blogspot.com/2020/05/spring-cloud-1.html

No comments:

Post a Comment