
SpingCloud(Hoxton、alibaba)
文章平均质量分 80
SpingCloud(Hoxton、alibaba) 2020框架开发教程
源码地址:https://github.com/geyiwei-suzhou/cloud2020/
geyiwei-suzhou
博客逐渐迁移至 blog.antherd.com
展开
-
SpingCloud 2020微服务教程【56】Seata模块搭建
视频链接:2020最新版SpringCloud框架开发教程-周阳文章源码:https://github.com/geyiwei-suzhou/cloud2020/设计三个微服务:订单服务、库存服务、账户服务当用户下单时,会在订单服务中创建一个订单,然后通过远程调用库存服务来扣减下单商品的库存,再通过远程调用账户服务来扣减账户里面的余额,最后在订单微服务中修改订单状态为已完成下订单 --> 扣库存 --> 减余额该操作跨越三个数据库,有两次远程调用,是一个分布式问题创建三个数据库、.原创 2021-01-20 09:59:43 · 377 阅读 · 10 评论 -
SpingCloud 2020微服务教程【55】分布式事务
视频链接:2020最新版SpringCloud框架开发教程-周阳文章源码:https://github.com/geyiwei-suzhou/cloud2020/用户购买商品的业务逻辑。整个业务逻辑由3个微服务提供支持:仓储服务:对给定的商品扣除仓储数量订单服务:根据采购需求创建订单账户服务:从用户账户中扣除余额单体应用被拆分成微服务应用,原来的三个模块被拆分成三个独立应用,分别使用三个独立的数据源业务操作需要调用三个服务完成。此时每个微服务内部的数据一致性由本地事务来保证,但是全局.原创 2021-01-19 17:21:22 · 303 阅读 · 0 评论 -
SpingCloud 2020微服务教程【54】Sentinel持久化规则
视频链接:2020最新版SpringCloud框架开发教程-周阳文章源码:https://github.com/geyiwei-suzhou/cloud2020/启动cloudalibaba-sentinel-service8401模块,访问:http://localhost:8401/rateLimit/byUrl,然后在Sentinel中添加一条流控规则,再访问http://localhost:8401/rateLimit/byUrl 发现流控规则生效。重启cloudalibaba-sentin.原创 2021-01-19 15:04:23 · 170 阅读 · 0 评论 -
SpingCloud 2020微服务教程【53】Sentinel服务熔断配置
视频链接:2020最新版SpringCloud框架开发教程-周阳文章源码:https://github.com/geyiwei-suzhou/cloud2020/cloudalibaba-consumer-nacos-order84模块无配置根据上一篇文章:SpingCloud 2020微服务教程【52】Sentinel服务熔断模块搭建 在无其他配置的情况下,访问:http://localhost:84/consumer/fallback/1 order84模块依次调用payment9003、p.原创 2021-01-19 11:15:01 · 374 阅读 · 3 评论 -
SpingCloud 2020微服务教程【52】Sentinel服务熔断模块搭建
视频链接:2020最新版SpringCloud框架开发教程-周阳文章源码:https://github.com/geyiwei-suzhou/cloud2020/首先搭建如下架构(Sentinel包含Ribbon)生产者cloudalibaba-provider-payment9003、cloudalibaba-provider-payment9004模块1. 建moduleNew --> Module --> Maven[Module SDK:1.8.0_191] --&g.原创 2021-01-18 10:32:02 · 335 阅读 · 2 评论 -
SpingCloud 2020微服务教程【51】Sentinel规则
视频链接:2020最新版SpringCloud框架开发教程-周阳文章源码:https://github.com/geyiwei-suzhou/cloud2020/如何使用官网有详细的教程:如何使用,这里就不再搬运了,只记录一些配置步骤流控规则新增如下流控:表示1秒内查询1次正常,若超过1次,就快速失败,报默认错误当一秒内多次访问/testA接口,将会返回错误信息:Blocked by Sentinel (flow limiting)由com.alibaba.csp.sentinel.slot.原创 2021-01-15 17:46:25 · 251 阅读 · 0 评论 -
SpingCloud 2020微服务教程【50】Sentinel模块搭建
视频链接:2020最新版SpringCloud框架开发教程-周阳文章源码:https://github.com/geyiwei-suzhou/cloud2020/cloudalibaba-sentinel-service8401模块1. 建moduleNew --> Module --> Maven[Module SDK:1.8.0_191] --> name[cloudalibaba-sentinel-service8401] --> Finish2. 改pom&.原创 2021-01-14 16:23:27 · 199 阅读 · 0 评论 -
SpingCloud 2020微服务教程【49】Sentinel熔断与限流
视频链接:2020最新版SpringCloud框架开发教程-周阳文章源码:https://github.com/geyiwei-suzhou/cloud2020/Sentinel :面向云原生微服务的流量控制、熔断降级组件。具体查看官网中文文档Hystrix存在的问题:需要自己搭建监控平台没有web界面,无法进行更加细粒度化的配置(流控、速率控制、服务熔断、服务降级)Sentinel:单独一个组件,可以独立出来界面化的细粒度统一配置约定–>配置–>编码下载地址:h.原创 2021-01-14 16:07:51 · 224 阅读 · 0 评论 -
SpingCloud 2020微服务教程【48】Nacos持久化、集群
视频链接:2020最新版SpringCloud框架开发教程-周阳文章源码:https://github.com/geyiwei-suzhou/cloud2020/持久化Nacos 默认自带的是嵌入式数据库是 derby<dependency> <groupId>org.apache.derby</groupId> <artifactId>derby</artifactId></dependency>所以,如.原创 2021-01-14 15:12:47 · 243 阅读 · 0 评论 -
SpingCloud 2020微服务教程【47】Nacos配置中心
视频链接:2020最新版SpringCloud框架开发教程-周阳文章源码:https://github.com/geyiwei-suzhou/cloud2020/在 Nacos Spring Cloud 中,dataId 的完整格式如下:${prefix}-${spring.profiles.active}.${file-extension}prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.pr.原创 2021-01-13 17:20:14 · 814 阅读 · 0 评论 -
SpingCloud 2020微服务教程【46】Nacos模块搭建
视频链接:2020最新版SpringCloud框架开发教程-周阳文章源码:https://github.com/geyiwei-suzhou/cloud2020/服务提供者cloudalibaba-provider-payment9001模块1. 建moduleNew --> Module --> Maven[Module SDK:1.8.0_191] --> name[cloudalibaba-provider-payment9001] --> Finish2. .原创 2021-01-13 14:31:33 · 351 阅读 · 0 评论 -
SpingCloud 2020微服务教程【45】Nacos服务注册与配置中心
视频链接:2020最新版SpringCloud框架开发教程-周阳文章源码:https://github.com/geyiwei-suzhou/cloud2020/Nacos:Naming + Configuration + Service,Dynamic Naming and Configuration Service一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台Nacos就是注册中心 + 配置中心组合,Nacos = Eureka + Config + BusNacos官网、.原创 2021-01-13 11:41:33 · 406 阅读 · 0 评论 -
SpingCloud 2020微服务教程【44】Spring Cloud Alibaba
视频链接:2020最新版SpringCloud框架开发教程-周阳文章源码:https://github.com/geyiwei-suzhou/cloud2020/Spring Cloud Netflix项目进入了维护模式,意味着Spring Cloud团队将不会再向模块添加新功能,我们将修复block级别的bug以及安全问题,我们也会考虑并审查社区的小型pull request。团队打算继续支持这些模块,直到Greenwish版本被普遍采用至少一年2018.10.31,Spring Cloud A.原创 2021-01-13 11:00:00 · 184 阅读 · 0 评论 -
SpingCloud 2020微服务教程【43】Sleuth、Zipkin
视频链接:2020最新版SpringCloud框架开发教程-周阳文章源码:https://github.com/geyiwei-suzhou/cloud2020/在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败Spring Cloud Sleuth 提供了一套完整的服务跟踪的解决方案,在分布式系统中提供追踪解决方案并且兼容支持了zip.原创 2021-01-12 18:25:43 · 475 阅读 · 0 评论 -
SpingCloud 2020微服务教程【42】Stream消息驱动模块搭建
视频链接:2020最新版SpringCloud框架开发教程-周阳文章源码:https://github.com/geyiwei-suzhou/cloud2020/消息驱动生产者cloud-stream-rabbitmq-provider8801模块1. 建moduleNew --> Module --> Maven[Module SDK:1.8.0_191] --> name[cloud-stream-rabbitmq-provider8801] --> Finish.原创 2021-01-12 16:56:42 · 193 阅读 · 0 评论 -
SpingCloud 2020微服务教程【41】Stream
视频链接:2020最新版SpringCloud框架开发教程-周阳文章源码:https://github.com/geyiwei-suzhou/cloud2020/上一篇完成了全局广播,现在我们想定点通知指定具体某一个实例生效,而不是全部/bus/refresh请求不再发送到具体的服务实例上,而是发给config server并通过destination参数指定需要更新配置的服务或实例http://ip:port/actuator/bus-refresh/{destination}desti.原创 2021-01-11 17:43:54 · 238 阅读 · 0 评论 -
SpingCloud 2020微服务教程【40】Bus动态刷新全局广播、定点广播
视频链接:2020最新版SpringCloud框架开发教程-周阳文章源码:https://github.com/geyiwei-suzhou/cloud2020/为了演示广播效果,仿照 SpingCloud 2020微服务教程【36】配置中心之客户端配置 中cloud-config-client-3355模块,新建cloud-config-client-3366(只有端口号区别)全局广播设计思想:利用消息总线触发一个客户端/bus/refresh,而刷新所有客户端的配置利用消息总线触发一个.原创 2021-01-11 14:31:19 · 583 阅读 · 0 评论 -
SpingCloud 2020微服务教程【39】Bus之RabbitMQ环境配置
视频链接:2020最新版SpringCloud框架开发教程-周阳文章源码:https://github.com/geyiwei-suzhou/cloud2020/Mac安装RabbitMQ比较简单输入一下命令即可brew install rabbitmq安装完成后控制台会告诉你如何启动及默认访问页面以服务方式启动:brew services start rabbitmq,启动时mac系统会弹出系统网络权限,点击允许即可以前台方式启动:rabbitmq-server启动后访问:http:.原创 2021-01-11 11:23:30 · 148 阅读 · 0 评论 -
SpingCloud 2020微服务教程【38】Bus消息总线
2020最新版SpringCloud(H版&alibaba)框架开发教程-周阳Spring Cloud Bus配合Spring Cloud Config使用可以实现配置的动态刷新Spring Cloud Bus是用来将分布式系统的节点与轻量级消息系统链接起来的框架,它整合了Java的事件处理机制和消息中间件的功能Spring Cloud Bus目前支持RabbitMQ和KafkaSpring Cloud Bus能管理和传播分布式系统间的消息,就像一个分布式执行器,可用于广播状态的更改、.原创 2021-01-08 17:47:20 · 192 阅读 · 1 评论 -
SpingCloud 2020微服务教程【37】配置中心之客户端手动动态刷新
2020最新版SpringCloud(H版&alibaba)框架开发教程-周阳问题:通过前面两篇文件已经搭建好了SpringCloud Config服务端和客户端。但是其中有个小问题没有解决。当运维工程师修改Github上的配置文件内容后,发现ConfigServer配置中心可以随即获取最新的内容,但ConfigClient客户端没有做自动更新,需要重启ConfigClient服务才可以获取最新内容解决:1. 改pom添加图形化界面依赖(前面已经加过)<dependency>.原创 2021-01-08 16:36:51 · 154 阅读 · 0 评论 -
SpingCloud 2020微服务教程【36】配置中心之客户端配置
2020最新版SpringCloud(H版&alibaba)框架开发教程-周阳cloud-config-client-3355模块1. 建moduleNew --> Module --> Maven[Module SDK:1.8.0_191] --> name[cloud-config-client-3355] --> Finish2. 改pom<?xml version="1.0" encoding="UTF-8"?><project x.原创 2021-01-08 15:25:08 · 187 阅读 · 0 评论 -
SpingCloud 2020微服务教程【35】配置中心之服务端模块搭建
2020最新版SpringCloud(H版&alibaba)框架开发教程-周阳首先,在自己的github账号中创建一个新仓库springcloud-config,代码可从git@github.com:geyiwei-suzhou/springcloud-config.git拉取cloud-config-center-3344模块1. 建moduleNew --> Module --> Maven[Module SDK:1.8.0_191] --> name[cloud.原创 2021-01-08 14:45:02 · 160 阅读 · 0 评论 -
SpingCloud 2020微服务教程【34】配置中心
2020最新版SpringCloud(H版&alibaba)框架开发教程-周阳微服务面临的问题:微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的SpringCloud提供了ConfigServer来解决这个问题,否则我们每一个微服务自己带着一个application.yml文件,上百个配置文件的管理就成了问题SpringCloud Config .原创 2021-01-07 16:36:00 · 137 阅读 · 0 评论 -
SpingCloud 2020微服务教程【33】服务网关配置动态路由、断言、过滤器
2020最新版SpringCloud(H版&alibaba)框架开发教程-周阳动态路由默认情况下,Gateway会根据注册中心注册的服务列表,以注册中心上微服务名为路径创建动态路由进行转发,从而实现动态路由的功能启动:cloud-eureka-server7001、cloud-provider-payment8001、cloud-provider-payment8002 三个模块cloud-gateway-gateway9527模块修改pom文件在gateway节点下添加新的子节点.原创 2021-01-07 15:49:20 · 425 阅读 · 0 评论 -
SpingCloud 2020微服务教程【32】服务网关模块搭建
2020最新版SpringCloud(H版&alibaba)框架开发教程-周阳cloud-gateway-gateway9527模块1. 建moduleNew --> Module --> Maven[Module SDK:1.8.0_191] --> name[cloud-gateway-gateway9527] --> Finish2. 改pom<?xml version="1.0" encoding="UTF-8"?><project.原创 2021-01-07 11:00:14 · 297 阅读 · 0 评论 -
SpingCloud 2020微服务教程【31】服务网关Gateway
2020最新版SpringCloud(H版&alibaba)框架开发教程-周阳服务网关:Zuul --> Zuul2 /gatewayzuul官网、gateway官网SpringCloud Gateway是Spring Cloud的一个全新项目,基于Spring 5.0+Spring Boot 2.0和Project Reactor等技术开发的网关,它旨在为微服务提供一种简单有效的统一的API路由管理方式SpringCloud Gateway作为Spring Cloud生态系统中.原创 2021-01-06 17:29:34 · 187 阅读 · 0 评论 -
SpingCloud 2020微服务教程【30】Hystrix Dashboard
2020最新版SpringCloud(H版&alibaba)框架开发教程-周阳除了隔离依赖服务的调用外,Hystrix还提供了准实时的调用监控(Hystrix Dashboard),Hystrix会持续地记录所有通过Hystrix发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求,多少成功,多少失败等。Netflix通过hystrix-metrics-event-stream项目实现对以上指标的监控。Spring Cloud也提供了Hystrix Dashboard.原创 2021-01-06 10:33:58 · 204 阅读 · 0 评论 -
SpingCloud 2020微服务教程【29】服务熔断
2020最新版SpringCloud(H版&alibaba)框架开发教程-周阳服务熔断类似于保险丝:当访问接口降级达到规定次数后,直接拒绝访问,调用降级方法,返回友好提示服务降级 --> 服务熔断 --> 恢复服务cloud-provider-hystrix-payment8001模块在com.antherd.springcloud.service.PaymentService中添加paymentCircuitBreaker和paymentCircuitBreakerFall.原创 2021-01-05 15:58:56 · 237 阅读 · 0 评论 -
SpingCloud 2020微服务教程【28】全局服务降级、通配服务降级
2020最新版SpringCloud(H版&alibaba)框架开发教程-周阳问题:每个业务方法都写一个fallback方法,代码冗余和业务逻辑混合在一起,比较混乱解决:在接口上使用统一服务降级配置@DefaultProperties注解,除了个别重要核心业务专属,其他普通的可以通过@DefaultProperties(defaultFallback = “”)跳转到统一处理结果页面cloud-consumer-feign-hystrix-order80模块全局服务降级修改类.原创 2021-01-05 15:04:40 · 250 阅读 · 0 评论 -
SpingCloud 2020微服务教程【27】Hystrix微服务搭建及服务降级
2020最新版SpringCloud(H版&alibaba)框架开发教程-周阳cloud-eureka-server7001模块将Eureka服务改为单机版,修改yml配置文件defaultZone: http://eureka7001.com:7001/eureka/cloud-provider-hystrix-payment8001模块微服务模块1. 建moduleNew --> Module --> Maven[Module SDK:1.8.0_191] --.原创 2021-01-05 12:52:08 · 269 阅读 · 6 评论 -
SpingCloud 2020微服务教程【26】Hystrix断路器
2020最新版SpringCloud(H版&alibaba)框架开发教程-周阳分布式系统面临的问题分布式系统体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免的失败。多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其他的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应”对于高流量的应用来说,单一的后端依赖可能会导致所有.原创 2020-12-30 16:10:06 · 154 阅读 · 0 评论 -
SpingCloud 2020微服务教程【25】OpenFeign服务调用、超时处理、日志增强
2020最新版SpringCloud(H版&alibaba)框架开发教程-周阳cloud-consumer-feign-order80模块微服务模块1. 建moduleNew --> Module --> Maven[Module SDK:1.8.0_191] --> name[cloud-consumer-feign-order80] --> Finish2. 改pom<?xml version="1.0" encoding="UTF-8"?>.原创 2020-12-30 14:07:11 · 378 阅读 · 4 评论 -
SpingCloud 2020微服务教程【24】OpenFeign介绍
2020最新版SpringCloud(H版&alibaba)框架开发教程-周阳OpenFeign官网,GitHub地址Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单它的使用方法是定义一个服务接口然后在上面添加注解。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封装,使其之处了Spring MVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组.原创 2020-12-30 11:03:34 · 169 阅读 · 0 评论 -
SpingCloud 2020微服务教程【23】Ribbion负载轮询算法原理及手写轮询算法
2020最新版SpringCloud(H版&alibaba)框架开发教程-周阳负载均衡算法原理:rest接口第几次请求数%服务器集群总数量=实际调用服务器位置下标,每次服务重启后rest接口计数从1开始手写轮询算法:cloud-consumer-order80模块注释掉com.antherd.springcloud.config.ApplicationContextConfig中代码// @LoadBalanced // 使RestTemplate具有负载均衡能力注释掉com.a.原创 2020-12-30 10:25:35 · 257 阅读 · 2 评论 -
SpingCloud 2020微服务教程【22】Ribbion负载规则替换
2020最新版SpringCloud(H版&alibaba)框架开发教程-周阳警告:自定义配置类不能放在@ComponentScan所扫描的当前包下以及子包下。否则我们自定义的这个配置类会被所有的Ribbon客户端所共享,达不到特殊化定制的目的了。cloud-consumer-order80模块新建类:com.antherd.rule.MyRulepackage com.antherd.rule;import com.netflix.loadbalancer.IRule;impor.原创 2020-12-29 16:37:15 · 164 阅读 · 0 评论 -
SpingCloud 2020微服务教程【21】Ribbon的负载均衡和Rest调用
2020最新版SpringCloud(H版&alibaba)框架开发教程-周阳Ribbon其实就是一个软负载均衡的客户端组件它可以和其他所需请求的客户端结合使用,和eureka结合只是其中的一个实例Ribbon在工作时分成两步第一步先选择EurekaServer,它优先选择在同一个区域内负载较少的server第二步再根据用户指定的策略,从server取到的服务注册列表中选择一个地址其中Ribbon提供了多种策略:比如轮询、随机和根据响应时间加权新版本Eureka netfli.原创 2020-12-28 10:08:52 · 127 阅读 · 0 评论 -
SpingCloud 2020微服务教程【20】Ribbon介绍
2020最新版SpringCloud(H版&alibaba)框架开发教程-周阳Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡工具Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单来说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机.原创 2020-12-22 16:10:10 · 118 阅读 · 0 评论 -
SpingCloud 2020微服务教程【19】CAP及服务注册中心对比
2020最新版SpringCloud(H版&alibaba)框架开发教程-周阳CAPC:Consistency(强一致性)A:Availability(可用性)P:Partition tolerance(分区容错性)CAP理论关注粒度是数据,而不是整体系统设计的策略最多只能同时较好的满足两个CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,因此,根据CAP原理将NoSQL数据库分成满足CA原则、满足CP原则和满足AP原则三大类:C.原创 2020-12-22 15:02:04 · 224 阅读 · 0 评论 -
SpingCloud 2020微服务教程【18】服务消费者注册进Consul
2020最新版SpringCloud(H版&alibaba)框架开发教程-周阳cloud-consumerconsul-order80模块微服务模块1. 建moduleNew --> Module --> Maven[Module SDK:1.8.0_191] --> name[cloud-consumerconsul-order80] --> Finish2. 改pom<?xml version="1.0" encoding="UTF-8"?>.原创 2020-12-22 11:18:17 · 155 阅读 · 0 评论 -
SpingCloud 2020微服务教程【17】服务提供者注册进Consul
2020最新版SpringCloud(H版&alibaba)框架开发教程-周阳cloud-providerconsul-payment8006模块微服务模块1. 建moduleNew --> Module --> Maven[Module SDK:1.8.0_191] --> name[cloud-providerconsul-payment8006] --> Finish2. 改pom<?xml version="1.0" encoding="UTF.原创 2020-12-22 10:55:06 · 162 阅读 · 0 评论