SpringCloud微服务概述

一、为什么使用微服务?

传统的 Java Web 都是采用单体架构的方式来进行开发、部署、运维,随着业务的发展,开发变得越来越复杂;修改、新增某个功能,需要对整个系统进行测试,重新部署;一个模块出现问题,很可能导致整个系统崩溃;多团队同时对数据进行管理,容易产生安全漏洞;各模块使用同一种技术框架,很难根据具体业务需求选择更合适的框架,局限性太大;模块内容过于复杂,如果员工离职,可能需要很长时间才能完成任务交接…为了解决这些问题,微服务应运而生,将一个单体应用拆分成若干个小型的服务,在系统架构层面进行解耦合,协同完成系统功能的一种架构模式。

二、微服务的优缺点

1、优点

  • 系统中的不同功能模块拆分成多个不同服务,这些服务能够独立部署和扩展;
  • 由于每个服务都运行在自己的进程内,因此更新时不会影响其他服务的运行;
  • 由于独立部署,可以更准确的为每个服务评估性能容量。

2、缺点

  • 学习难度和运维难度增加;
  • 拆分服务后,业务逻辑上的依赖不会消除,单体应用中的代码依赖变为服务间的通信依赖,一旦因为某些原因导致接口出错,就有可能产生级联反应,造成整个系统崩溃;
  • 单体服务拆分后,分布式环境复杂,综合考虑的因素增加,比如某个需求调用多个微服务,如何保证数据一致性、网络延迟、异步消息等。

三、为什么选SpringCloud?

SpringCloud是一个解决微服务架构实施的综合性解决框架,整合了诸多被广泛实践和证明过的框架作为实施的基础部件,又在该体系基础上创建了一些非常优秀的组件。

对于 Java 开发者而言,Spring 全家桶系列产品的优势在于功能齐全、简单好用、性能优越、文档规范,有着极高的社区活跃度,实际开发中就各方面综合因素来看,Spring Cloud 是微服务架构中非常优秀的实现方案。

四、什么是SpringCloud?

SpringCloud 是一个基于SpringBoot实现的微服务架构开发工具。它为微服务架构中涉及的配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。
Spring Cloud 包含了多个子项目,如下图所示:
Spring Cloud架构

posted @ 2020-09-08 21:54  TA写Java  阅读(234)  评论(0编辑  收藏  举报