
SpringCloud
TOP__ONE
ERP、TSP、LBS
展开
-
SpringCloud Alibaba之Seata 1.2版本的分布式事务案例演示
参考资料:https://mp.weixin.qq.com/s/2KSidJ72YsovpJ94P1aK1gseata官徽说真的,这个seata搭建与案例演示让我爬了好多坑~~总算测试成功了~现在将自己的步骤与注意事项记录下来:此片文章的前提是上一篇中讲到的seata-server的正确安装,下面进行client端的配置与编码等准备。mysql: 5.7nacos: latest镜像spring-cloud-alibaba: 2.2.0seata: 1.2.0第一步下载seat.原创 2020-06-05 16:26:25 · 1425 阅读 · 2 评论 -
SpringCloud Alibaba之Seata-server的安装配置1.2版本
1、先去官网下载seata-server包zip版本到本地,下载地址https://github.com/seata/seata/releases,如果下载慢的话,可以拷贝链接到迅雷去下载,下载完解压~,或者直接到官网找到下载,然后找到发布说明:https://github.com/seata/seata/releases,进去选择对应的版本来下载2、修改conf下的file.config配置文件先备份原始file.config配置文件为 file.config.bak,一旦后面该错了,可以通过b.原创 2020-06-04 15:45:57 · 1279 阅读 · 0 评论 -
SpringCloud Alibaba之Seata分布式事务简介
随着各种微服务分布式的流行,单体应用被拆分成微服务应用,原来的三个模块被拆分成三个独立的应用,分别使用三个独立的数据源,业务操作需要调用三个服务来完成。此时每个服务内部的数据一 致性由本地事务来保证,但是全局的数据 致性问题没法保证。一次业务操作需要跨多个数据源或需要跨多个系统进行远程调用,就会产生分布式事务问题,这也就引出我们的Seate来进行处理分布式事务了~Seate简介官网地址:http://seata.io/zh-cn/Seata 是一款开源的分布式事务解决方案,致力于提供高性能和原创 2020-06-04 10:07:31 · 966 阅读 · 0 评论 -
SpringCloud Alibaba之Sentinel的持久化配置
前面我们进行Sentinel的限流熔断等配置的时候,每次重启微服务后,配置都会消失,都需要重新配置,这说明我们的配置并没有持久化,一旦我们重启应用,sentinel规则将消失,生产环境需要将配置规则进行持久化,那我们每次重启微服务后,都需要配置一遍Sentinel岂不是很蛋疼~~,所以下面进行演示Sentinel的持久化配置,说是Sentinel的持久化,其实实际上是利用了 nacos的持久化机制,这也就是当初为什么说的 nacos和 Sentinel 基本上不分家,要用都一起用~!~~我们 将限流配置原创 2020-06-03 22:33:20 · 1210 阅读 · 1 评论 -
SpringCloud Alibaba之Sentinel集成Ribbon/OpenFeign案例演示
Sentinel集成Ribbon:1、准备服务提供者cloudalibaba-nacos-provider-payment9001,cloudalibaba-nacos-provider-payment9002,主要是端口不一样,其他一致,下面附上pom、yml和主业务类代码,这里自己建module即可 <!--SpringCloud ailibaba nacos --> <dependency> <groupId&原创 2020-05-29 23:23:53 · 1681 阅读 · 0 评论 -
SpringCloud Alibaba之Sentinel的@SentinelResource简介之案例演示
前面的文章中我们使用到了@SentinelResource,做了两个测试,一个是@SentinelResource(value = "testHotKey", blockHandler = "deal_testHotKey"),有自己兜底的自定义处理方法一个是@SentinelResource(value = "testHotKey")就会使用默认的兜底方法~上面兜底方案面临的问题:系统默认的,没有体现我们自己的业务要求。 依照现有条件,我们自定义的处理方法又和业务代码耦合在一块,不直观。原创 2020-05-28 18:15:42 · 590 阅读 · 0 评论 -
SpringCloud Alibaba之Sentinel的热点规则即热点参数限流
官网地址:https://github.com/alibaba/Sentinel/wiki/热点参数限流源码位置:com.alibaba.csp.sentinel.slots.block.BlockException何为热点?热点即经常访问的数据。很多时候我们希望统计某个热点数据中访问频次最高的 Top K 数据,并对其访问进行限制。比如:商品 ID 为参数,统计一段时间内最常购买的商品 ID 并进行限制 用户 ID 为参数,针对一段时间内频繁访问的用户 ID 进行限制热点参数限流会统计传入原创 2020-05-28 16:15:42 · 1624 阅读 · 0 评论 -
SpringCloud Alibaba之Sentinel服务降级策略实战-RT、异常比例、异常数
RT:平均响应时间 (DEGRADE_GRADE_RT):当 1s 内持续进入 N 个请求,对应时刻的平均响应时间(秒级)均超过阈值(count,以 ms 为单位),那么在接下的时间窗口(DegradeRule中的timeWindow,以 s 为单位)之内,对这个方法的调用都会自动地熔断(抛出DegradeException)。注意 Sentinel 默认统计的 RT 上限是 4900 ms,超出此阈值的都会算作 4900 ms,若需要变更此上限可以通过启动配置项-Dcsp.sentinel.s...原创 2020-05-28 10:41:20 · 1925 阅读 · 1 评论 -
SpringCloud Alibaba之Sentinel服务降级规则
官网github地址:https://github.com/alibaba/Sentinel/wiki/%E7%86%94%E6%96%AD%E9%99%8D%E7%BA%A7除了流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。由于调用关系的复杂性,如果调用链路中的某个资源不稳定,最终会导致请求发生堆积。Sentinel熔断降级会在调用链路中某个资源出现不稳定状态时(例如调用超时或异常比例升高),对这个资源的调用进行限制,让请求快速失败,避免影响到其它的资源而导致级联错.原创 2020-05-27 16:52:14 · 824 阅读 · 0 评论 -
SpringCloud Alibaba之Sentinel的流控规则简介
一、流控规则 :流量限制控制规则Sentinel-dashboard中的流控规则菜单项:资源名:唯一名称,默认请求路径 针对来源: Sentine可以针对调用者进行限流,填写微服务名,默认default (不区分来源) 阈值类型/单机阈值: QPS (每秒钟的请求数量) :当调用该api的QPS达到阈值的时候,进行限流 线程数:当调用该api的线程数达到阈值的时候,进行限流 是否集群:不需要集群 流控模式: 直接: api达到限流条件时,直接限流 关联:当关联的资...原创 2020-05-27 12:54:15 · 766 阅读 · 0 评论 -
SpringCloud Alibaba之Sentinel案例初始化演示
首先需要准备的为:nacos8848控制中心这里单点演示、sentinel-dashboard控制台8080、新建sentinel-service8401微服务因为nacos8848是docker直接启动、sentinel-dashboard是jar包直接启动,下面只剩下新建一个sentinel-service8401了1、新建modul为 cloudalibaba-sentinel-service8401,并在pom中添加相关依赖包,以后用alibaba这一套nacos和sentinel基本不分家原创 2020-05-26 16:45:33 · 405 阅读 · 0 评论 -
SpringCloud Alibaba之Sentinel 简介
以下资料来源于官网:https://github.com/alibaba/Sentinel,下面可以有中文入口如何玩官方文档:https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.html#_spring_cloud_alibaba_sentinel一、Sentinel 是什么?随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量原创 2020-05-26 15:25:28 · 653 阅读 · 0 评论 -
Docker之Nacos镜像集群搭建并数据持久化及Nginx反向代理
1、通过docker 拉取镜像 docker pull nacos/nacos-server:latest2、启动nacos服务单机启动命令:docker run --env MODE=standalone --name mynacos -d -p 8848:8848 nacos/nacos-server集群启动:现举例三台nacos服务集群,其中启动参数中的 数据库地址,用户名和密码等账号信息要根据自己的数据更改掉注意:新版本是MYSQL_SERVICE_HOST等,而1.0版本原创 2020-05-17 17:07:01 · 960 阅读 · 0 评论 -
SpringCloud Alibaba之Nacos服务配置中心案例(二)-分类配置-共享配置
所有的资料都来源官网,首先先打开Spring的官网https://spring.io,然后进入Projects分类,进入SpringCloud的官网https://spring.io/projects/spring-cloud,再点击Spring Cloud Alibaba,选择learn,选择版本进入Reference Doc. 然后选择Spring Cloud Alibaba Nacos Config.下面附上直达目录:https://spring-cloud-alibaba-group.githu原创 2020-05-10 19:50:06 · 751 阅读 · 0 评论 -
SpringCloud Alibaba之Nacos服务配置中心案例(一)-基础配置
所有的资料都来源官网,首先先打开Spring的官网https://spring.io,然后进入Projects分类,进入SpringCloud的官网https://spring.io/projects/spring-cloud,再点击Spring Cloud Alibaba,选择learn,选择版本进入Reference Doc. 然后选择Spring Cloud Alibaba Nacos Config.下面附上直达目录:https://spring-cloud-alibaba-group.githu原创 2020-05-10 17:37:59 · 1457 阅读 · 1 评论 -
SpringCloud Alibaba之Nacos服务注册中心案例(二)-服务消费者注册与负载均衡
所有的资料都来源官网,首先先打开Spring的官网https://spring.io/,然后进入Projects分类,进入SpringCloud的官网https://spring.io/projects/spring-cloud,再点击Spring Cloud Alibaba,选择learn,选择版本进入Reference Doc. 然后选择Spring Cloud Alibaba Nacos D...原创 2020-05-08 16:22:03 · 569 阅读 · 1 评论 -
SpringCloud Alibaba之Nacos服务注册中心案例(一)-服务提供者注册
所有的资料都来源官网,首先先打开Spring的官网https://spring.io,然后进入Projects分类,进入SpringCloud的官网https://spring.io/projects/spring-cloud,再点击Spring Cloud Alibaba,选择learn,选择版本进入Reference Doc. 然后选择Spring Cloud Alibaba Nacos Di...原创 2020-05-08 14:45:41 · 312 阅读 · 1 评论 -
docker之安装Nacos服务端
因为SpringCloud Alibaba的崛起,所以用到了Nacos,需要安装,所以就又想到了docker~可以先去docker hub上搜索一下nacos-server,选择一下版本,我们这里选择lastest就行1、直接: docker pull nacos/nacos-server:latest2、启动nacos镜像:docker run --env MODE=stand...原创 2020-05-08 11:03:51 · 2593 阅读 · 0 评论 -
SpringCloud Alibaba之Nacos服务注册和配置中心简介
为什么叫Nacos?前面四个字母分别表示 Naming 和 Configuration 的前两个字母, 最后一个s 为 Service,所以取名为NacosNacos是什么?一个更易于构建云原生运用的动态服务发现、配置管理和服务管理平台 Nacos: Dynamic Naming and Configuration Service Nacos 就是 注册中心+ 配置中心 等价于 N...原创 2020-05-08 10:39:16 · 463 阅读 · 1 评论 -
SpringCloud Alibaba入门简介
为什么会出现SpringCloud Alibaba?本来SpringCloud是主要整合了Netflix下的好多功能组件,但是呢Spring Cloud Netflix项目进入维护模式以下Spring Cloud Netflix模块和相应的starter 将进入维护模式:1. spring-cloud-netflix-archaius2. spring-cloud-netflix-...原创 2020-05-08 10:14:00 · 346 阅读 · 0 评论 -
SpringCloud Sleuth分布式请求链路追踪Zipkin
官网链接spring-cloud-sleuth官网在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。当链路多的时候,分析定位问题就会很灾难~Spring Cloud Sleuth提供了一套完整的服务跟踪的解决方案,在分布式系...原创 2020-04-29 11:23:31 · 695 阅读 · 0 评论 -
SpringCloud Stream消息驱动之分组消费与持久化
为了演示分组消费和持久化,现在clone一份消息驱动消费者consumer8003,是基于consumer8802来clone的,只需要该端口号等信息即可。等consumer8803构建完毕后,启动如下项目:RabbitMQ、eureka7001、provider8801、consumer8802、comsumer8803当预备环境准备完毕后,请求provier8801的生产信息接口htt...原创 2020-04-28 16:44:14 · 343 阅读 · 0 评论 -
SpringCloud Stream消息驱动之消费者
本文演示是的SpringCloud Stream的消息生产者,和RabbitMQ进行配合,基本上与生产者一样1、构建生产者项目cloud-stream-rabbitmq-consumer8802,添加pom文件依赖<dependencies> <dependency> <groupId>org.springfra...原创 2020-04-28 16:02:13 · 452 阅读 · 1 评论 -
SpringCloud Stream消息驱动之生产者
本文演示是的SpringCloud Stream的消息生产者,和RabbitMQ进行配合1、构建生产者项目cloud-stream-rabbitmq-provider8801,添加pom文件依赖<dependencies> <dependency> <groupId>org.springframework.clo...原创 2020-04-28 14:44:50 · 378 阅读 · 0 评论 -
SpringCloud Stream消息驱动概述
SpringCloud Stream官网链接~什么是SpringCloud Stream:官方定义Spring Cloud Stream是一个构建消息驱动微服务的框架。应用程序通过inputs或者outputs来与Spring Cloud Stream中binder对象交互。通过我们配置来binding(绑定),而Spring Cloud Stream的binder对象负责与消息中间件交...原创 2020-04-28 12:01:18 · 753 阅读 · 0 评论 -
Spring Cloud Bus消息总线的自动刷新全局广播和定点通知配置
什么是总线在微服务架构的系统中,通常会使用轻量级的消息代理来构建一个共用的消息主题, 并让系统中所有微服务实例都连接上来。由于该主题中产生的消息会被所有实例监听和消费,所以称它为消息总线。在总线上的各个实例,都可以方便地广播一些需要让其他连接在该主题上的实例都知道的消息。基本原理ConfigClient实例都监听MQ中同一个topic(默认是springCloudBus)。 当一个服务刷新...原创 2020-04-27 18:37:37 · 1017 阅读 · 0 评论 -
RabbitMQ在SpringBoot项目中集成消息总线的时候启动报错java.io.IOException
最近在springboot整合rabbitmq,进行消息总线配置的时候,启动项目报错:org.springframework.amqp.AmqpIOException: java.io.IOException,详细报错如下org.springframework.amqp.AmqpIOException: java.io.IOException at org.springframework...原创 2020-04-27 18:13:09 · 936 阅读 · 0 评论 -
SpringCloud Config配置中心服务端和客户端的配置
springcloud config官网社区微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的。SpringCloud提供了ConfigServer来解决这个问题,我们每一个微服务自己带着一个application.yml, 上百个配置文件的管理就很...原创 2020-04-27 15:13:24 · 1005 阅读 · 3 评论 -
SpringCloud Gateway网关的路由、断言、过滤配置
Route(路由)1、构架pom文件,这里面需要将web包去掉,因为Gateway的底层是webflux,而webflux和web是冲突的,只能有一个,需要注意!<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:...原创 2020-04-23 17:31:26 · 3009 阅读 · 0 评论 -
SpringCloud Gateway 新网关与zuul的对比选型
SpringCloud Gateway是Spring Cloud的一个全新项目, 基纡Spring 5.0+ Spring Boot 2.0和Project Reactor等技术开发的网关,它旨在为微服务架构提供一种简单有效的统- -的 API路由管理方式。SpringCloud Gateway作为Spring Cloud生态系统中的网关,目标是替代Zuul,在Spring Cloud 2.0以...原创 2020-04-23 12:46:25 · 8074 阅读 · 0 评论 -
Zuul网关配置及代码演示
Zuul包含了对请求的路由和过滤两个最主要的功能:路由功能负责将外部请求转发到具体的微服务实例上,实现外部访问统一入口的基础 过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础.Zuul和Eureka进行整合,将ZuuI自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他微服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得。注意: Zu...原创 2020-04-22 10:35:34 · 516 阅读 · 0 评论 -
HystrixDashboard服务监控
1、配置pom文件,添加依赖 <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystri...原创 2020-04-17 16:19:55 · 372 阅读 · 0 评论 -
Hystrix之服务熔断代码演示
服务熔断就类比保险丝达到最大服务访问后,直接拒绝访问,拉闸限电,然后调用服务降级的方法并返回友好提示。实现功能:服务的降级->进而熔断->恢复调用链路一句话,就是服务熔断,就是家里的保险丝!熔断机制概述熔断机制 是应对雪崩效应的一种微服务链路保护机制。当扇出链路的某个微服务出错不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回错误的响应信息。...原创 2020-04-17 15:14:28 · 925 阅读 · 0 评论 -
Hystrix之服务降级代码演示
服务降级分为 服务端降级 和 客户端降级,好比一双筷子,你可以夹肉,也可以夹菜,不过一般是用来在客户端降级使用,具体情况具体分析使用。下面分别举例在服务端降级和 客户端降级代码演示。有个前提啊,就是项目中已经加入了Hystrix的包依赖支持,酌情选择添加 <!--openfeign--> <dependency> <groupId&...原创 2020-04-17 13:43:40 · 911 阅读 · 0 评论 -
Hystrix之服务降级、服务熔断、服务限流
我们可以在本地构建一个微服务提供者,提供8001两个接口,一个直接返回,一个sleep(3)秒后返回,正常访问一个是马上响应,一个是等待3秒响应。上述在非高并发情形下,还能勉强满足,但是在高并发情况下就会量变引起质变。当我们通过Jmeter软件进行压力测试模拟 200次/秒*100次循环的20000次并发访问第二个sleep(3)秒的接口,会直接影响第一个直接返回的接口的响应速度。导致原因:...原创 2020-04-17 10:19:43 · 505 阅读 · 0 评论 -
OpenFeign的日志打印功能
OpenFeign的日志级别有:NONE: 默认的,不显示任何日志BASIC: 仅记录请求方法、URL、响应状态码以及执行时间HEADERS:除了BASIC 中自定义的信息外,还有请求和响应的信息头FULL: 除了HEADERS中定义的信息外, 还有请求和响应的正文以及元数据。下面咱们来进行日志功能配置:1、先构建日志配置类package com.king.sprin...原创 2020-04-16 11:25:03 · 2572 阅读 · 0 评论 -
OpenFeign的超时控制
OpenFeign默认等待一秒钟,超过后报错,所以故意设置超时时间,来做演示1、在微服务提供方设置睡眠时间package com.king.springcloud.controller;import com.king.springcloud.entities.CommonResult;import com.king.springcloud.entities.Payment;imp...原创 2020-04-16 11:13:18 · 1577 阅读 · 0 评论 -
OpenFeign的简单搭建使用
Feign是一个声明式的web服务客户端,让编写web服务客户端变得非常容易,只需创建一个接口并在接口上添加注解即可在使用 Ribbon + RestTemplate 时, 利用 RestTemplate 请求的封装处理,形成了一套模板化的调用方法。但是在实际开发中,对于服务依赖的调用可能不止一处,往往一个接口会被多处调用,所以通常会针对每个微服务自行封装一些客户端类来包装这些服务依赖的调用。...原创 2020-04-15 17:43:45 · 752 阅读 · 0 评论 -
Ribbon之自定义负载均衡算法实现
负载均衡算法:rest接口第几次请求数 % 服务器集群总数量 = 实际调用服务器位置下表,每次服务重启后rest接口计数从1开始1、先去掉ApplicationContextConfig的@LoadBalance注解,即restTemplate上的注解,防止影响测试结果package com.king.springcloud.config;import org.springframe...原创 2020-04-15 15:15:41 · 694 阅读 · 1 评论 -
Ribbon负载均衡多种策略及自定义IRule
简单的说,Ribbon 是 Netflix 发布的开源项目,主要功能是提供 客户端的复杂算法和服务调用。Ribbon 客户端组件提供一系列完善的配置项如超时、重试等。简单的说,就是配置文件中列出 load Balancer (简称 LB)后面所有的机器,Ribbon 会自动的帮助你基于某种规则(如简单轮询,随机链接等)去链接这些机器。我们很容易使用 Ribbon 自定义的负载均衡算法。LB(...原创 2020-04-15 13:27:06 · 1222 阅读 · 0 评论