springcloud
jym12138
积极向上的小码农
展开
-
SpringCloud入门(三十二) ------Seata 解决分布式事务
微服务下的分布式事务问题:比如有三个微服务,订单服务调用库存服务,库存减少库存后,需要调用支付服务,从用户余额里减少余额。但是如果如果库存出现问题,报错了,或者扣除余额的时候出错了,订单依然出库了,就会出现很大的问题。什么是 SeataSeata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模...原创 2020-04-23 09:53:46 · 1653 阅读 · 1 评论 -
SpringCloud入门(三十一) ------Sentinel 之流控,降级与热点与配置持久化
上一节说了sentinel dashboard 的搭建与集成,这节说说它都能干什么?sentinel dashboard 流控作用:限制某段时间内的访问数量,防止服务器的压力过大具体配置:上图的流控规则为:1秒内只能访问一次该资源,否则快速失败,直接提示失败。流控模式:直接:配置的请求违规操作后,再次访问,给出错误提示。关联:当A资源请求违规后,配置的B操作将会提示失败。比如当...原创 2020-04-17 10:42:49 · 1002 阅读 · 0 评论 -
SpringCloud入门(三十) ------微服务集成 Sentinel
Sentinel 基本定义:随着微服务的流行,服务和服务之间的稳定性变得越来越重要。sentinel 以流量为切入点,从流量控制,熔断降级,系统负载保护等多个维度保护服务的稳定性。Sentinel 具有以下特性:丰富的应用场景: Sentinel 承接了阿里巴巴近10年的双十一大促流量的核心场景,例如面纱,消息削峰填谷,集群流量控制,实时熔断下游不可用应用等。完备的实时监控: Senti...原创 2020-04-16 11:44:26 · 512 阅读 · 0 评论 -
SpringCloud入门(二十九) ------ Nacos 多配置中心管理
多配置中心管理:当有多个项目,或者多个环境时,每个配置文件都放在相同的空间内会很混乱,并且难以分辨,nacos图形化管理页面 提供了分组,以及分工作空间的功能。分命令空间配置新建命名空间,并在bootstrap.yml文件中新增配置:namespace: 46b07c0a-3310-4e21-af2c-1046932b493b在该命名空间内新增配置即可。分组配置:在配置文件中新...原创 2020-04-13 13:34:27 · 363 阅读 · 1 评论 -
SpringCloud入门(二十八) ------ spring cloud Alibaba Nacos之配置中心
搭建配置中心:pom:父pom管理的版本:<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.1.0.RELE...原创 2020-04-13 11:47:21 · 159 阅读 · 1 评论 -
SpringCloud入门(二十七) ------ spring cloud Alibaba Nacos实现服务注册与发现
spring cloud Alibaba2018年10月31日,spring cloud Alibaba 正式入驻spring cloud 官方孵化器,并在Maven中央库发布第一个版本。spring cloud Alibaba 作用:服务限流降级:默认支持 servlet,feign,RestTemplate,Dubbo和Rocket限流降级功能的接入,可以在运行时通过控制台实时修改限流...原创 2020-04-09 16:50:00 · 620 阅读 · 0 评论 -
SpringCloud入门(二十六) ------ 使用 sleuth 链路监控展现
cloud sleuth在微服务框架中,一个由客户端发起的请求在后台系统中会经过多个不同的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现问题都会导致整个请求失败。大概示意图:Trace: 类似于树结构的Span集合,表示一条调用链路,存在唯一标识Span: 表示调用链路来源,通俗的理解span 就是一次请求信息集成sleu...原创 2020-04-04 21:59:00 · 259 阅读 · 0 评论 -
SpringCloud入门(二十五) ------ 搭建 cloud stream 微服务
cloud stream 服务端:pom :父pom 管理的版本: <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.com...原创 2020-04-04 19:13:02 · 443 阅读 · 0 评论 -
SpringCloud入门(二十四) ------ cloud stream基本介绍
什么是springcloud stream?springcloud stream是一个构建消息驱动微服务的框架。应用程序通过inputs或者outputs 来与spring cloud stream 中binder对象交互。通过我们配置来binding,而spring cloud stream 的binder对象负责与消息中间件交互。所以,我们只需要搞清楚如何与spring cloud s...原创 2020-04-04 15:27:22 · 1534 阅读 · 4 评论 -
SpringCloud入门(二十三) ------ Bus 配合 spring cloud config 实现配置的动态刷新
在使用spring cloud config 时,当修改远程仓库的配置时,除了config服务端,连接在服务端的微服务无法即使的刷新,只能发送post(/actuator/refresh)请求一个一个的刷新配置,而Bus 可以实现批量的动态配置的刷新。Springcloud BusBus的作用:springcloud bus 是用来将分布式系统的节点与轻量级消息系统链接起来的框架,它整合了J...原创 2020-04-02 11:16:10 · 296 阅读 · 0 评论 -
SpringCloud入门(二十二) ------Gateway配置路由的两种方式与添加网关过滤器
1.通过yml配置:server: port: 9527spring: application: name: jym-cloud-gateway cloud: gateway: discovery: locator: enabled: true #开启动态创建路由的功能,利用微服务名进行路由 route...原创 2020-03-29 12:35:38 · 1708 阅读 · 2 评论 -
SpringCloud入门(二十一) ------使用 Gateway配置路由
Gateway服务网关:基于Netty的异步非阻塞模型,相比zuul性能更高,增加了spring5的特性。作用:浏览器无需关心各个服务的依赖关系,访问统一的IP地址,就可以访问多个微服务。开发者可以灵活的增加业务服务模块;可以在网关层做一些最上层的公用的操作,如过滤恶意请求、设置ip黑白名单、做身份认证、限流、负载均衡等。Springcloud配置GatewayPom:父pom管理的...原创 2020-03-29 12:26:18 · 669 阅读 · 1 评论 -
SpringCloud入门(二十) ------使用 Hystrix 定义全局的降级方法
在使用hystrix的时候,一个方法对应一个方法会使代码过度膨胀,所以可以使用全局的方法来进行服务降级定义全局fallbackpom:父pom定义的版本: <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> &...原创 2020-03-26 10:45:33 · 1583 阅读 · 0 评论 -
SpringCloud入门(十九) ------使用 Hystrix 进行服务熔断
服务熔断与服务降级的区别:服务熔断相当于保险丝,当服务因为某些原因频繁的调用失败的时候,就会开启断路器,将该服务熔断,等过一段时间,服务会尝试打开(半开状态),如果调用成功了,就再次开通服务。服务熔断与服务降级的关系:服务熔断之前必然会降级,不管是服务的宕机,运行异常还是超时,都会执行降级的方法(HystrixCommand注解)Hystrix 进行服务熔断:pom:父pom管理的j依...原创 2020-03-26 10:16:30 · 173 阅读 · 0 评论 -
SpringCloud入门(十八) ------使用 openFeign进行负载均衡
openFeign的负载均衡是实现在客户端的SpringCloud客户端集成openFeign:pom: <!-- openfeign --> <dependency> <groupId>org.springframework.cloud</groupId> <artif...原创 2020-03-25 09:55:38 · 5557 阅读 · 5 评论 -
SpringCloud入门(十七) ------使用DiscoveryClient实现轮询策略负载均衡
创建maven项目,导入依赖:父Pom 管理的jar包版本: <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler...原创 2020-03-23 11:27:32 · 981 阅读 · 1 评论 -
SpringCloud入门(十六) ------ Springcloud 集成 consul
虽然Eureka还可以用,但是官网已经发出了停更公告,所以可以使用其他的注册中心(Zookeeper,Consul等)安装Consul:官网下载:https://www.consul.io/安装后启动(cmd):命令行窗口:consul agent -dev出现running 运行成功浏览器rul输入: http://localhost:8500/ui/dc1/services...原创 2020-03-22 10:55:26 · 320 阅读 · 0 评论 -
SpringCloud入门(十五) ------ Springcloud 集成zookeeper
虽然Eureka还可以用,但是官网已经发出了停更公告,所以可以使用其他的注册中心(Zookeeper,Consul等)SpringCloud集成zookeeper本次使用的是zookeeper3.4.9版本新建maven 工程,添加pom依赖: <!-- 整合zookeeper --> <dependency> <gr...原创 2020-03-22 10:30:01 · 315 阅读 · 0 评论 -
SpringCloud入门(十四) ------ Springcloud Config搭建eureka 与服务提供者
eureka端:在git仓库上传一个eureka的配置文件:两个分支dev testspring: profiles: active: - dev---server: port: 7001 spring: profiles: dev application: name: jymservicecloud-config-eureka-client...原创 2020-03-03 22:05:16 · 3132 阅读 · 0 评论 -
SpringCloud入门(十三) ------ Springcloud Config
分布式系统面临的—配置问题微服务意味着要将单体应用中的业务拆分成一个一个的子服务,每个服务的粒度较小,因此系统中会出现大量的服务。对于每个服务都需要必要的配置才能运行,所以一套集中式的动态配置管理设施是必不可少的。springcloud提供了ConfigSever 来解决这个问题。SpringCloud ConfigSpringCloud Config 为微服务架构中的微服务提供集中化的外部...原创 2020-03-03 21:46:57 · 3273 阅读 · 1 评论 -
SpringCloud入门(十二) ------ zuul路由网关
Zuul(代理+路由+过滤)官网:https://github.com/Netflix/zuul/wiki/Getting-Started路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础.Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eure...原创 2020-03-02 17:52:41 · 3302 阅读 · 0 评论 -
SpringCloud入门(十一) ------ 服务监控hystrixDashboard
hystrixDashboard除了隔离依赖服务的调用以外,Hystrix还提供了准实时的调用监控(Hystrix Dashboard),Hystrix会持续地记录所有通过Hystrix发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求多少成功,多少失败等。Netflix通过hystrix-metrics-event-stream项目实现了对以上指标的监控。Sprin...原创 2020-03-02 11:09:17 · 3828 阅读 · 0 评论 -
SpringCloud入门(十) ------ Hystrix 服务降级
服务降级整体资源快不够了,忍痛将某些服务先关掉,待渡过难关,再开启回来。服务降级处理是在客户端实现完成的,与服务端没有关系.。相当于银行窗口,当银行职工不多时(整体资源不够),会关闭窗口(服务),在关闭的窗口上给上友好的提示(办理xxx业务的几点后再来,或者该窗口暂停业务等),避免客户在一直等待(反复的访问)具体实现:当服务关闭时,客户端访问,页面会给友好提示,而不是报错在公用的项目里...原创 2020-03-02 10:04:07 · 3823 阅读 · 0 评论 -
SpringCloud入门(九) ------ Hystrix断路器
分布式系统面临的问题复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败。服务雪崩多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应”.对于高流量的应用...原创 2020-03-01 21:55:34 · 3895 阅读 · 0 评论 -
SpringCloud入门(八) ------ 使用Feign进行负载均衡
Feign:官网:http://projects.spring.io/spring-cloud/spring-cloud.html#spring-cloud-feign定义:Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单, 它的使用方法是定义一个接口,然后在上面添加注解,同时也支持JAX-RS标准的注解。Feign也支持可拔插式...原创 2020-02-29 21:39:11 · 4418 阅读 · 0 评论 -
SpringCloud入门(七) ------ 使用Ribbon进行负载均衡
RibbonSpring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器...原创 2020-02-28 21:35:54 · 4420 阅读 · 0 评论 -
SpringCloud入门(六) ------CAP理论以及Eureka与zookeeper的区别
CAP理论CAP理论概述一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。Consistency 一致性:即所有节点在同一时间的数据完全一致。一致性的类别:强一致性对于关系型数据库,要求更新过的数据能被后续的访问都能看到,这是强一致性。Partition Tole...原创 2020-02-28 12:51:37 · 4824 阅读 · 0 评论 -
SpringCloud入门(五) ------Eureka 自我保护机制以及搭建 Eureka集群
什么是自我保护模式?默认情况下,如果EurekaServer在一定时间内没有接收到某个微服务实例的心跳,EurekaServer将会注销该实例(默认90秒)。但是当网络分区故障发生时,微服务与EurekaServer之间无法正常通信,以上行为可能变得非常危险了——因为微服务本身其实是健康的,此时本不应该注销这个微服务。Eureka通过“自我保护模式”来解决这个问题——当EurekaServer节...原创 2020-02-27 21:12:34 · 5289 阅读 · 0 评论 -
SpringCloud入门(四) ------Eureka服务注册与发现
Eureka注册服务:Pom文件依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sche...原创 2020-02-27 20:46:53 · 5182 阅读 · 0 评论 -
SpringCloud入门(三) ------搭建Eureka服务
Eureka是什么Eureka是Netflix的一个子模块,也是核心模块之一。Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移。服务注册与发现对于微服务架构来说是非常重要的,有了服务发现与注册,只需要使用服务的标识符,就可以访问到服务,而不需要修改服务调用的配置文件了。功能类似于dubbo的注册中心,比如Zookeeper。Eureka原理:Eurek...原创 2020-02-27 18:30:22 · 5581 阅读 · 0 评论 -
SpringCloud入门(二) ------基于RestTemplate搭建微服务工程
RestTemplate:RestTemplate提供了多种便捷访问远程Http服务的方法,是一种简单便捷的访问restful服务模板类,是Spring提供的用于访问Rest服务的客户端模板工具集。搭建微服务工程:1. 微服务工程首先是个maven的聚合项目:用idea file ----> new ----> new Project,先创建一个空的工程2.创建父工程,...原创 2020-02-26 13:02:05 · 5218 阅读 · 0 评论 -
SpringCloud入门(一) ------ 微服务概念以及SpringCloud与dubbo的区别
什么是微服务:微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底地去耦合,每一个微服务提供单个业务功能的服务,一个服务做一件事,从技术角度看就是一种小而独立的处理过程,类似进程概念,能够自行单独启动或销毁,拥有自己独立的数据库。All in one 单机系统可以看作 IDE里面的一个大工程,商品/订单/库存… 单个WAR包,当一个服务有问题了,所有服务都要宕机分布式...原创 2020-02-26 12:22:30 · 5432 阅读 · 0 评论