Spring Cloud 01 - 微服务概述

news/2025/2/9 3:24:41 标签: spring cloud, 微服务, spring

微服务概述

文章目录

  • 微服务概述
    • 一:分布式和微服务
      • 1、什么是微服务
      • 2:什么是分布式
      • 3、联系与区别是什么?
    • 2:最终技术搭配方案

一:分布式和微服务

1、什么是微服务

微服务架构是团队面对互联网产品爆发式增长的最优选择,解决快速迭代、高可靠和高可用等问题

把复杂度很高的产品拆分成一些较小的模块,并遵循康威定律

每一个模块用5-9个小团队来维护,减少沟通成本提高协作效率更好地实现快速迭代和弹性扩展。

采用微服务架构改造引入各种复杂性,如部署工作量的增加、复杂链路的监控难题,为微服务微服务只会得不偿失。

在实施的过程中不能简单的使用某些个微服务框架或者组件一蹴而就,而是需要将业务、技术和运维有机结合起来配合同步实施,并在此过程中还需要趟过很多的坑才能够取得成功。

复杂业务拆分可能无法一步到位,因为复杂每个业务并不一定只能拆成一个组件,庞大的业务拆分出相对独立和庞大的业务,但如果业务较小而又比较多,且类型相似也可以不用着急拆分。

2:什么是分布式

对于分布式架构根据设计期的架构思想和运行期的不同结构分为:面向服务架构、分布式服务架构、微服务架构。

1、面向服务架构︰以业务服务的角度和服务总线的方式(一般是WebService与ESB)考虑系统架构和企业IT治理;

2、分布式服务架构:基于去中心化的分布式服务框架与技术,考虑系统架构和服务治理;

3.微服务架构:微服务架构可以看做是面向服务架构和分布式服务架构的拓展,使用更细粒度的服务和一组设计准则来考虑大规模的复杂系统架构设计。

统的企业集成领域的EAI架构模式,本身还是各个系统独立部署,但是各系统之间的部分业务使用特定的技术打通,因此可以看做是单体和分布式之间的过渡状态。

3、联系与区别是什么?

先理清楚五个概念

  • 分布式:分散压力;不同模块部署在不同服务器上;
  • 微服务:分散能力。
  • 分布式作用:分布式解决网站高并发带来问题;
  • 集群:相同的服务; 多台服务器部署相同应用构成一个集群;

总结:分布式是个工作方式,微服务是一种架构风格

都是将同一个大系统中不同的子模块进行分开部署。

已达到一个低耦合,提高并发量,提高系统可以水平伸缩的能力,同时它们和其他模块之间通讯也都是基于rpc进行通讯调用。

微服务是一个单独的服务包含了一个服务从控制层到业务层到持久层该有的东西它都必须要有,前端代码也可以自己提供,并微服务的持久层数据库是私有的并不会对其他服务共享。

而分布式可以仅仅只有控制层和业务层,可以不需要自己的数据库和前端,可以和其他模块共享一个数据库。

2:最终技术搭配方案

Alibaba Nacos 替换====> Eureka + Config + Bus

位置组件名称作用
注册中心Spring Cloud Alibaba Nacos服务的发现和注册
配置中心Spring Cloud Alibaba Nacos动态配置管理
负载均衡Sprign Cloud Ribbon进行服务的负载均衡调用
声明式HTTP客户端Spring Cloud Feign调用远程服务
服务容错Spring Cloud Alibaba Sentinel / Hystrix限流,降级,熔断
API网关Spring Cloud GateWaywebFlux编程模式网关
分布式事务Spring Cloud Alibaba Seata分布式事务

http://www.niftyadmin.cn/n/5845486.html

相关文章

centos虚拟机迁移没有ip的问题

故事背景,我们的centos虚拟机本来是好好的,但是拷贝到其他电脑上就不能分配ip,我个人觉得这个vmware他们软件应该搞定这个啊,因为这个问题是每次都会出现的。 网络选桥接 网络启动失败 service network restart Restarting netw…

数据库基础练习4(有关索引,视图完整解答)

建立需要的表 学生表 mysql> create table studnet(sno int primary key auto_increment,sname varchar(30) not null unique,ssex varchar(2) check (ssex男 or ssex女) not null ,sage int not null,sdept varchar(10) default 计算机 not null); Query OK, 0 rows affe…

3. 【.NET Aspire 从入门到实战】--理论入门与环境搭建--环境搭建

构建现代云原生应用程序时,开发环境的搭建至关重要。NET Aspire 作为一款专为云原生应用设计的开发框架,提供了一整套工具、模板和集成包,旨在简化分布式系统的构建和管理。开始项目初始化之前,确保开发环境的正确配置是成功的第一…

青少年编程与数学 02-008 Pyhon语言编程基础 22课题、类的定义和使用

青少年编程与数学 02-008 Pyhon语言编程基础 22课题、类的定义和使用 一、类类的定义和使用示例 二、定义1. 类定义语法2. 属性和方法3. 构造器和初始化4. 实例化5. 类变量和实例变量6. 类方法和静态方法7. 继承8. 多态总结 三、使用1. 创建类的实例2. 访问属性3. 调用方法4. 修…

UV - Python 包管理

文章目录 创建 uv 项目已有项目已有uv项目 创建 uv 项目 # 创建项目 uv init m3 # 创建环境 cd m3 uv venv --python 3.11 # 激活环境 source .venv/bin/activate # 添加库 uv add flask 如果创建项目后,给库取别的名字,add 的时候,会…

Redis | 十大数据类型

文章目录 十大数据类型概述key操作命令数据类型命令及落地运用redis字符串(String)redis列表(List)redis哈希表(Hash)redis集合(Set)redis有序集合(ZSet / SortedSet&…

结合源码看Restormer的网络设计

下面是restormer的结构示意图。restormer集合了众多的技术,包括unet结构,1x1卷积和深度卷积,还有nlp中常用的layer norm,attention结构。 OverlapPatchEmbed 第一个结构是OverlapPatchEmbed。这是通过卷积把图像映射到高维空间&…

feign Api接口中注解问题:not annotated with HTTP method type (ex. GET, POST)

Bug Description 在调用Feign api时,出现如下异常: java.lang.IllegalStateException: Method PayFeignSentinelApi#getPayByOrderNo(String) not annotated with HTTPReproduciton Steps 1.启动nacos-pay-provider服务,并启动nacos-pay-c…