`
springcloud关注者
  • 浏览: 312046 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
12d8ea3d-4199-3941-8a17-acd5024729b8
Spring_Cloud构...
浏览量:251201
文章分类
社区版块
存档分类
最新评论

(一) 跟我学习SpringCloud-微服务是什么?它的优缺点有哪些?

 
阅读更多

“微服务”一词来源于 Martin Fowler 的《Microservices》一文。微服务是一种架构风格,即将单体应用划分为小型的服务单元,微服务之间使用 HTTP 的 API 进行资源访问与操作。

在笔者看来,微服务架构的演变更像是一个公司的发展过程,从最开始的小公司,到后来的大集团。大集团可拆分出多个子公司,每个子公司的都有自己独立的业务、员工,各自发展,互不影响,合起来则是威力无穷。

臃肿的系统、重复的代码、超长的启动时间带给开发人员的只有无限的埋怨,丝毫没有那种很舒服的、很流畅的写代码的感觉。他们把大部分时间都花在解决问题和项目启动上面了。

微服务架构的优势

使用微服务架构能够为我们带来如下好处:

1)服务的独立部署

每个服务都是一个独立的项目,可以独立部署,不依赖于其他服务,耦合性低。

2)服务的快速启动

拆分之后服务启动的速度必然要比拆分之前快很多,因为依赖的库少了,代码量也少了。

3)更加适合敏捷开发

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行。服务拆分可以快速发布新版本,修改哪个服务只需要发布对应的服务即可,不用整体重新发布。

4)职责专一,由专门的团队负责专门的服务

业务发展迅速时,研发人员也会越来越多,每个团队可以负责对应的业务线,服务的拆分有利于团队之间的分工。

5)服务可以动态按需扩容

当某个服务的访问量较大时,我们只需要将这个服务扩容即可。

6)代码的复用

每个服务都提供 REST API,所有的基础服务都必须抽出来,很多的底层实现都可以以接口方式提供。

微服务架构的劣势

微服务其实是一把双刃剑,既然有利必然也会有弊。下面我们来谈谈微服务有哪些弊端,以及能采取什么办法避免。

1)分布式部署,调用的复杂性高

单体应用的时候,所有模块之前的调用都是在本地进行的,在微服务中,每个模块都是独立部署的,通过 HTTP 来进行通信,这当中会产生很多问题,比如网络问题、容错问题、调用关系等。

2)独立的数据库,分布式事务的挑战

每个微服务都有自己的数据库,这就是所谓的去中心化的数据管理。这种模式的优点在于不同的服务,可以选择适合自身业务的数据,比如订单服务可以用 MySQL、评论服务可以用 Mongodb、商品搜索服务可以用 Elasticsearch。

缺点就是事务的问题了,目前最理想的解决方案就是柔性事务中的最终一致性,后面的章节会给大家做具体介绍。

3)测试的难度提升

服务和服务之间通过接口来交互,当接口有改变的时候,对所有的调用方都是有影响的,这时自动化测试就显得非常重要了,如果要靠人工一个个接口去测试,那工作量就太大了。这里要强调一点,就是 API 文档的管理尤为重要。

4)运维难度的提升

在采用传统的单体应用时,我们可能只需要关注一个 Tomcat 的集群、一个 MySQL 的集群就可以了,但这在微服务架构下是行不通的。当业务增加时,服务也将越来越多,服务的部署、监控将变得非常复杂,这个时候对于运维的要求就高了。

 

推荐布式架构源码

0
1
分享到:
评论

相关推荐

    SpringCloud-微服务课程笔记

    ### SpringCloud-微服务课程笔记知识点总结 #### 一、Spring Cloud 概述 - **定义**:Spring Cloud 是一个基于 Spring Boot 的开发工具包,主要用于构建分布式系统和微服务架构。 - **特点**: - **服务注册与发现...

    SpringCloud微服务实践(3.54G)

    1-4SpringCloud-微服务架构的优缺点.avi 1-5SpringCloud-为什么选择SpringCloud构建微服务.avi 2-1SpringCloud-SpringCloud是什么.avi 2-2SpringCloud-SpringCloud的版本.avi 2-3SpringCloud-SpringCloud开发环境....

    SpringCloud微服务架构视频

    【SpringCloud微服务架构视频】是一系列视频教程,总计五十一课,专注于讲解SpringCloud的原理及实践操作,尤其适合初学者和希望深入理解微服务架构的开发者。本教程的前十二节已提供,后续内容可通过作者的博客获取...

    微服务安全架构(Spring Boot _ Spring Cloud-JWT).pdf

    基于Spring Boot与Spring Cloud的微服务安全架构,主要关注点是使用JWT(JSON Web Token)作为微服务之间的认证和授权机制,这在当今云计算和分布式系统架构中是非常关键的部分。整个文档描述了在构建和维护微服务...

    想学习的看过来了spring4.0、springboot、springcloud详细视频课程(硅谷)

    07.硅谷学习_SpringCloud_微服务优缺点 08.硅谷学习_SpringCloud_微服务技术栈有哪些 09.硅谷学习_SpringCloud_为什么选择SpringCloud作为微服务架构 10.硅谷学习_SpringCloud_SpringCloud是什么 11.硅谷学习_...

    04.2、微服务—SpringCloud(20题)1

    相比之下,Spring Cloud是一整套微服务解决方案,包含多个子项目,如Spring Cloud Config(配置管理)、Spring Cloud Netflix(包含Eureka服务发现、Zuul智能路由等组件),提供了构建分布式系统所需的全套工具。...

    使用springcloud 搭建微服务 (讲义)

    Spring Cloud是微服务架构的一套完整工具包,它提供了一系列子项目,这些子项目利用Spring Boot的开发便利性简化了分布式系统基础设施的开发,例如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等...

    【SpringCloud】最全最细!微服务框架-springcloud微服务架构

    ### Spring Cloud 微服务架构详解 #### 一、微服务入门 ...以上就是Spring Cloud微服务架构的相关知识点介绍。通过本篇文章的学习,希望读者能够对微服务架构有一个全面深入的理解,并能够在实际项目中灵活运用。

    springcloud微服务面试题.zip

    本篇将详细解析Spring Cloud微服务面试的相关知识点,帮助求职者更好地准备面试。 1. **微服务概念与优势** - 微服务是一种架构风格,它将单一应用程序拆分为一组小的服务,每个服务都在自己的进程中运行,服务...

    微服务—SpringCloud(20题).pdf

    SpringCloud和Dubbo是两种不同的微服务解决方案。Dubbo具有服务治理能力,包括服务发现、监控和负载均衡等,它的设计更倾向于提供一种高性能、长连接的服务交互方式。而SpringCloud由众多子项目组成,提供了包括配置...

    SpringCloud微服务笔记

    ### SpringCloud微服务基础知识解析 #### 一、项目架构演进概述 在现代软件开发过程中,随着业务复杂度和技术需求的不断提升,项目架构也经历了从单点系统到分布式架构的演变。下面我们将深入探讨其中的关键知识点...

    springcloud学习笔记.pdf

    Spring Cloud 学习笔记 本笔记主要介绍了从单体架构到微服务架构的演变过程,以及 Spring Cloud 中的微服务架构搭建。下面是本笔记的详细知识点总结: 一、单体架构 单体架构是指整个系统只有一个工程,打包往往...

    尚硅谷Java视频教程_SpringCloud视频教程

    07.尚硅谷_SpringCloud_微服务优缺点 08.尚硅谷_SpringCloud_微服务技术栈有哪些 09.尚硅谷_SpringCloud_为什么选择SpringCloud作为微服务架构 10.尚硅谷_SpringCloud_SpringCloud是什么 11.尚硅谷_SpringCloud_...

    藏经阁-spring cloud微服务架构设计与开发实践-222.pdf

    【Spring Cloud微服务架构设计与开发实践】 Spring Cloud是一个基于Spring Boot实现的云应用开发工具集,它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、...

    59道SpringCloud面试题详解含答案(值得珍藏)

    SpringCloud是Java领域中广泛使用的微服务框架,它基于Spring Boot构建,旨在简化分布式系统开发。SpringCloud提供了一整套微服务解决方案,包括服务注册与发现、配置中心、全链路监控、服务网关、负载均衡、熔断器...

    springcloud视频学习,学习springcloud推荐的视频,讲的真的很好

    SpringCloud是目前非常流行的一站式微服务解决方案,它提供了众多工具和服务,帮助开发者构建、部署和管理分布式系统。在微服务架构中,SpringCloud扮演着核心的角色,它集成了许多开源项目,如Eureka(服务发现)、...

    十七、SpringCloud 微服务工具集

    【SpringCloud 微服务工具集】是针对微服务架构的一整套工具集合,它旨在简化构建和管理分布式微服务的复杂性。SpringCloud基于Spring Boot的成熟性和易用性,为开发者提供了许多开箱即用的服务,如服务发现、配置...

    使用Spring Cloud实战微服务.pptx

    1. **Spring Cloud**:Spring生态系统下的微服务框架,提供了服务发现、配置中心、断路器、API网关等一系列组件,便于快速构建微服务系统。 2. **Dubbo**:阿里巴巴开源的RPC框架,支持服务治理,适用于构建高性能、...

    SpringCloud01.pdf

    本文档总结了微服务架构的优缺点、单体架构、分布式架构和微服务架构的特征,并介绍了 SpringCloud 的基本概念和组件。 微服务架构的优缺点 ------------------- 微服务架构的优点: * 降低服务耦合度 * 有利于...

Global site tag (gtag.js) - Google Analytics