![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
springcloud
文章平均质量分 96
微服务
江海i
不积小流,无以成江海。
展开
-
微服务之分布式事务Seata
单体应用被拆分成微服务应用,原来的三个模块,被拆分成三个独立的应用,分别使用三个独立的数据源,业务操作需要调用三个服务来完成。此时每个服务内部的数据一致性由本地事务来保证,但是全局一致性问题没办法保证。一次业务需要跨多个数据源或需要跨多个系统进行远程调用,就会产生分布式事务问题。Transaction ID - XID:本次业务的全局唯一事务ID,多个数据源和微服务之间统一且唯一的事务ID。三组件:处理过程:下载地址,这里下载的是0.9版本;修改:修改数据库配置:创建数据库,并执行下方sql原创 2022-06-20 15:30:58 · 176 阅读 · 0 评论 -
微服务之服务限流和熔断Sentinel
新建moudule:;依赖:配置文件:启动类:controller:启动之后,由于sentinel是懒加载机制,必须执行一次当前微服务的访问:,才可以看到:例如,这里如果超过设置的阈值,就会对进行访问限制。默认的冷加载因子是3,在设定的预热时长内最多承受阈值10/3的QPS,当超过预热时长(5秒)后可以达到最大阈值。如果超过当前设置的阈值(1),则等待20000毫秒。不存在半开状态,只有开和关。断开方式:修改代码:这里让睡2秒。配置RT:如果一秒钟进来的请求大于等于5,原创 2022-06-16 20:45:45 · 789 阅读 · 0 评论 -
微服务之注册及配置中心Nacos
注册中心区别:直接使用docker安装:访问:http://localhost:8848/nacos/index.html,出现如下界面,默认用户名和密码都是。分别新建module:和9002、9003;依赖:配置文件:记得三个提供者端口不同。主启动类:记得不同提供者类名不同。业务类:启动三个微服务测试:可以看到三个服务实例新建module:;依赖:配置文件:配置RestTemplate启动类:业务类:访问测试:可以看出nacos实现了负载原创 2022-06-15 20:11:49 · 1067 阅读 · 0 评论 -
微服务之消息驱动Stream和请求链路跟踪Sleuth
标准化的消息队列,生产者和消费者之间必须走特定的信道来传递信息,信道里面的消息只有被订阅了之后才会有消息处理器来接收。Stream设计方案:通过定义绑定器作为中间件,完美地实现了应用程序与消息中间件之间的隔离,通过向应用程序暴露统一的信道。使得应用程序不需要再考虑各种不同的消息中间件实现。Binder:新建module:依赖:配置文件:主启动类:发送消息接口:发送消息接口实现类,注意导包位置。controller:启动测试:可以看到新的交换机新建两个基本相同的modu原创 2022-06-14 20:00:17 · 292 阅读 · 2 评论 -
微服务之服务配置Config和服务总线Bus
Spring Cloud Config 为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供一个中心化的外部配置。分为服务端和客户端:作用:新建module:依赖:配置文件:主启动类在当前项目下,新建配置文件并提交到git测试。prod:dev:test:确保gitee已经提交成功:访问成功。新建module:;依赖:新建配置文件:,系统级配置文件,优先级高,优先于application.yml加载。主启动类:新原创 2022-06-13 15:33:04 · 358 阅读 · 0 评论 -
微服务之服务网关Gateway
Gateway是在Spring生态系统之上构建的API网关服务,基于Spring5,SpringBoot2和Project Reactor等技术。Gateway旨在提供一种简单而有效的方式来对API进行路由,目标是代替Zuul。为了提升网关的性能,Gateway是基于WebFlux框架实现的,而WebFlux框架底层则使用了高性能Reactor模式通信框架Netty。Gateway的目标提供统一路由方式且基于Filter链的方式提供了网关基本的功能,安全、监控/指标、限流等。Gateway是基于异步非原创 2022-06-12 20:35:29 · 3201 阅读 · 1 评论 -
微服务之服务降级Hystrix
Hystrix是一个用于分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。当微服务的某个服务单元发生故障之后,通过断路器的故障监控,向调用的方法返回一个符合预期的、可处理的备选响应,而不是长时间的等待或抛出调用方法无法处理的异常,这样就保证了服务调用方的线程不会被长时间、不必要的占用,从而避免了故障在分布式系统的蔓延。新建moudle:依赖:配置文件原创 2022-06-11 16:13:07 · 767 阅读 · 0 评论 -
微服务负载均衡Ribbon和OpenFeign
实际上,在引入下方依赖时,已经在服务调用端就已经引入了Ribbon。getForEntity和getForObject的区别:以如下代码演示:因为前后端分离大趋势,要比用的多。post请求的也是同理。Ribbon中的负载均衡规则主要是实现了接口的类。自带轮询规则:替换负载均衡方式(在order80下修改):负载均衡的配置文件,不能放在被能够扫描到的子包的下面,否则配置类就会被所有的Ribbon客户端共享,无法特殊定制化。新建一个包,与主启动类父包同层级,如图。负载均衡配置类:在包下新建:修改原创 2022-06-10 17:23:26 · 452 阅读 · 0 评论 -
微服务注册中心eureka,zookeeper和consul
eureka采用CS架构设计,作为服务注册功能的服务器,它是服务注册中心。系统中的其它微服务使用eureka的客户端连接到eureka server 并维持心跳连接。这样系统的维护人员就可以通过eureka server 来监控系统各个微服务是否正常运行。在服务注册与发现中,有一个注册中心。当服务器启动的时候,会以别名的形式把当前自己服务器的信息注册到注册中心上。另一方可以去注册中心获取到实际的服务通讯地址,然后再实现本地RPC调用RPC远程调用框架核心设计思想:在注册中心上,因为注册中心管理每个服务与服原创 2022-06-10 10:18:43 · 302 阅读 · 0 评论 -
微服务概念和项目构建
新建maven父项目,选择下图选项。修改父pom文件忽略maven的test新建model选择maven项目,名称为修改pom新建SpringBoot配置文件新建SpringBoot启动类数据库表和实体类封装返回类dao接口dao层xml实现service层controller层4.2 抽取公共类和开启热部署4.2.1 抽取公共类使用mavn新建module:引入依赖:将4.1中服务提供者的实体类移动到当前项目下:将当前项原创 2022-06-08 21:04:51 · 132 阅读 · 0 评论