
SPRING-CLOUD系列
文章平均质量分 96
介绍SpringCloud相关的内容
优惠券已抵扣
余额抵扣
还需支付
¥29.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
波波烤鸭
10余年架构和线上讲师工作经验。精通Java,微服务和云原生相关,致力于Java技术的免费分享。
展开
-
一文打通Seata源码的任督二脉
一、环境准备1.源码下载官方地址:https://seata.io/zh-cn/blog/download.html通过idea打开seata-1.4.2版本的源码2.回顾AT模式 其实在之前的应用课程中,我们已经用过AT模式,同时也写过一个小的Demo,那么这里其实我们主要要分析的是AT模式官方文档中的一些内容 官方文档:https://seata.io/zh-cn/docs/dev/mode/at-mode.html2.1写隔离一阶段本地事务提交前,需要确保先拿到全局锁 。.原创 2022-03-09 10:15:48 · 2333 阅读 · 0 评论 -
SpringCloud-Zuul服务网关[性能优化]
zuul的一些默认设置如果我们不调整下,那么对整体的服务的性能还是有很大影响的,比如如果网关调用的服务处理时间比较长,那么就会出现timeout异常。性能优化1.创建项目2.添加依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> &...原创 2019-06-23 21:47:01 · 7635 阅读 · 0 评论 -
SpringCloud-Zuul服务网关[高并发请求下的限流处理]
高并发的情况肯定是实际场景中经常碰到的情况,那么这种情况下限流措施肯定是必须的,本文我们就来看看zuul中限流的处理高并发的限流处理1.创建项目 创建一个SpringCloud项目2.添加依赖 必须要添加 ratelimit依赖<dependencies> <dependency> <groupId>org.springframewo...原创 2019-06-23 19:28:38 · 10343 阅读 · 0 评论 -
SpringCloud-Zuul服务网关[容错Hystrix]
zuul作为网关服务,用来分配调度其他服务的,那么难免就会出现调用的服务出现问题的请求,或者用户访问急剧增多的情况,那么此时我们的网关服务就应该具有容错能力,zuul本身也考虑到了这点,所以默认集成的有Hystrix。一、zuul 和 hystrix 无缝结合 在 zuul 的 jar 包中包含了 hystrix 的 jar 包。所以我们不需要在项目中添加 Hystrix 的坐标。二...原创 2019-06-22 11:26:07 · 11135 阅读 · 1 评论 -
SpringCloud-Zuul服务网关[自定义网关过滤器]
zuul的核心是一系列的filters, 其作用可以类比Servlet框架的Filter,或者AOP,本文我们就来具体介绍下自定义的zuul过滤器自定义网关过滤器1.创建项目 创建一个普通的SpringBoot项目项目2.添加依赖 注意添加zuul的依赖<dependency> <groupId>org.springframework.cloud&l...原创 2019-06-21 18:00:19 · 6532 阅读 · 0 评论 -
SpringCloud-Zuul服务网关[介绍及入门案例]
一、什么是Zuul zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用。 Zuul 在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。 zuul的例子可以参考netflix在github上的 simple webapp,可以按照netfl...原创 2019-06-19 11:49:49 · 10207 阅读 · 1 评论 -
微服务综合案例-05-业务逻辑实现
本文我在前面的基础上来实现各个业务模块。结构图如下一、模拟登陆功能1.e-book-user-service 处理1.1 pojo序列化1.2 service接口处理@RequestMapping("/user")public interface UserService { // 用户登录 @RequestMapping(value = "/login", method ...原创 2019-06-18 21:49:03 · 6017 阅读 · 0 评论 -
微服务综合案例-04-业务逻辑处理
现在我们已经创建好了所需的各个项目,我们的需求是完成用户购买书籍,完成订单操作: 而具体的流程是:下订单需要经过: 登录,查看产品,下订单等操作。测试登录 账号 admin admin查看所有产品列表选第一款产品,下订单实现订单交易支付查看所有的订单信息业务逻辑处理 业务逻辑处理我们是在consumer项目中操作的1.创建服务service1.1 UserServ...原创 2019-06-16 20:08:42 · 22013 阅读 · 10 评论 -
微服务综合案例-03-其他服务的创建
上篇文章我们详细的介绍了product服务的创建,因为其他几个服务的创建过程是相似的,所以其他几个服务我们就快速创建了。用户服务1.表结构2.mybatis逆向工程3.service服务依赖和product-service一样,拷贝pojo文件4.provider服务具体依赖如下:<project xmlns="http://maven.apache.org/P...原创 2019-06-16 19:17:41 · 5507 阅读 · 0 评论 -
微服务综合案例-02-product服务创建
上篇文章我们分析了我们要实现的案例的需求,本文我们来实现下product服务。因为要创建的项目比较多所以,本案例采用eclipse来开发。Product服务 因为我们是通过Feign来声明是的调用服务,所以我们需要创建service接口服务。持久层我们通过mybatis操作,所以我们需要通过mybatis的generator插件来帮助我们生存对应文件一、数据库 product服务对...原创 2019-06-16 18:28:27 · 7983 阅读 · 1 评论 -
微服务综合案例-01-需求分析
前面我们分别给大家介绍了SpringBoot,SpringCloud的Eureka(注册中心),ribbon(负载均衡),Feign(声明式服务调用),Hystrix(服务容错)等内容,在介绍后续内容之前我们穿插通过一个案例来综合使用下前面介绍的内容。一、服务号常用设计模式介绍 首先我们来看下在微服务架构中我们经常会选用的设计模式1.代理设计模式 代理服务作为整个系统的入口服务。...原创 2019-06-16 17:33:46 · 6142 阅读 · 0 评论 -
SpringCloud-Turbine【RabbitMQ服务监控】
前面我们介绍了通过turbine直接聚合多个服务的监控信息,实现了服务的监控,但是这种方式有个不太好的地方就是turbine和服务的耦合性太强了,针对这个问题,我们可以将服务的监控消息发送到RabbitMQ中,然后turbine中RabbitMQ中获取获取监控消息,这样就实现类服务和turbine的解耦。 我们通过案例来演示下如何实现该效果一、启动RabbitMQ服务 显然我们需要...原创 2019-06-15 18:14:46 · 5885 阅读 · 1 评论 -
SpringCloud-Turbine【多个服务和集群监控】
Turbine 是聚合服务器发送事件流数据的一个工具,hystrix 的监控中,只能监控单个节点,实际生产中都为集群,因此可以通过 turbine 来监控集群服务。案例介绍 本案例中我们启动两个consumer,集成的有dashboard。创建一个新的turbine项目,通过turbine项目类聚合监控数据,然后通过dashboard-view项目来展示可视化的监控数据一、创建tur...原创 2019-06-14 21:33:51 · 4321 阅读 · 0 评论 -
SpringCloud-Hystrix【可视化数据监控-Hystrix-Dashboard】
本文我们来介绍下微服务中的服务监控主键Hystrix-Dashboard。 Hystrix-dashboard 是一款针对 Hystrix 进行实时监控的工具,通过 Hystrix Dashboard 我们可以在直观地看到各 Hystrix Command 的请求响应时间, 请求成功率等数据。一、监控数据1.创建项目 复制一个前面介绍的feign降级的项目即可。2.添加依赖 ...原创 2019-06-13 20:01:12 · 3959 阅读 · 0 评论 -
SpringCloud-Hystrix【Feign处理降级-异常记录】
前面的文章介绍了Hystrix处理Feign调用时的降级处理,但是现在有个问题是如果我们调用provider服务的时候出现了故障从而返回了托底数据,我们怎么查看故障的日志信息呢?前面的处理我们是无法获取到consumer调用provider的错误信息的。Feign降级记录异常信息1.创建项目 创建一个普通的SpringCloud项目2.基本设置 相关的依赖和前面的项目是一样的...原创 2019-06-13 17:56:16 · 5654 阅读 · 0 评论 -
SpringCloud-Hystrix【Feign处理降级】
本文我们来介绍下在使用Feign来做服务调用的情况下怎么通过Hystrix实现服务降级处理。Feign实现服务降级1.创建项目 使用feign做服务调用时,provider和consumer需要依赖相同的service服务,本文仅仅创建consumer服务,其他相关服务参考git案例:https://github.com/q279583842q/SpringCloud-dpb-Demo...原创 2019-06-12 21:58:36 · 4812 阅读 · 1 评论 -
SpringCloud-Hystrix【解决灾难性雪崩-隔离】
本文我们来演示下Hystrix中解决雪崩效应的第五种方式隔离的实现Hystrix隔离 在应对服务雪崩效应时,除了前面介绍的降级,缓存,请求合并及熔断外还有一种方式就是隔离,隔离又分为线程池隔离和信号量隔离。接下来我们分别来介绍。一、线程池隔离1.概念介绍 我们通过以下几个图片来解释线程池隔离到底是怎么回事在没有使用线程池隔离时当接口A压力增大,接口C同时也会受到影响使用...原创 2019-06-12 20:20:50 · 3348 阅读 · 0 评论 -
SpringCloud-Hystrix【解决灾难性雪崩-熔断】
本文我们来演示下Hystrix中解决雪崩效应的第四种方式熔断的实现Hystrix熔断 熔断其实是在降级的基础上引入了重试的机制。当某个时间内失败的次数达到了多少次就会触发熔断机制,具体的流程如下案例演示1.创建项目 创建一个普通的SpringCloud项目2.导入依赖 在基础依赖之外我们只需要导入Hystrix的依赖即可<dependency> &...原创 2019-06-12 19:24:40 · 4716 阅读 · 1 评论 -
SpringCloud-Hystrix【解决灾难性雪崩-请求合并】
本文我们来演示下Hystrix中解决雪崩效应的第三种方式请求合并的实现Hystrix-请求合并没有合并请求的场景 没有合并的场景中,对于provider的调用会非常的频繁,容易造成处理不过来的情况合并请求的场景什么情况下使用请求合并 在微服务架构中,我们将一个项目拆分成很多个独立的模块,这些独立的模块通过远程调用来互相配合工作,但是,在高并发情况下,通信次数的增加会导致总的...原创 2019-06-11 22:36:38 · 3308 阅读 · 0 评论 -
SpringCloud-Hystrix【解决灾难性雪崩-缓存】
本文我们来演示下Hystrix中解决雪崩效应的第二种方式缓存的实现Hystrix-缓存 Hystrix 为了降低访问服务的频率,支持将一个请求与返回结果做缓存处理。如果再次请求的 URL 没有变化,那么 Hystrix 不会请求服务,而是直接从缓存中将结果返回。这样可以大大降低访问服务的压力。Hystrix 自带缓存。有两个缺点:是一个本地缓存。在集群情况下缓存是不能同步的。不支...原创 2019-06-11 19:08:50 · 3640 阅读 · 0 评论 -
SpringCloud-Hystrix【解决灾难性雪崩-降级】
本文我们来演示下Hystrix中解决雪崩效应的第一种方式降级的实现Hystrix-降级一、场景介绍 先来看下正常服务调用的情况 当consumer调用provider服务出现问题的情况下: 此时我们对consumer的服务调用做降级处理二、案例演示1.创建项目 创建一个SpringCloud项目2.添加依赖 添加Hystrix依赖,调用通过ribbon来负...原创 2019-06-11 18:07:17 · 3049 阅读 · 0 评论 -
SpringCloud-Hystrix【解决灾难性雪崩】
在微服务环境中,因为一个节点的故障而造成的其他节点的不可用的情况是比较常见的,这也就是我们常说的灾难性雪崩现象,而Hystrix给我们提供了解决这种情况的方案。什么是灾难性的雪崩效应 什么是灾难性的雪崩效应?我们通过结构图来说明,如下正常情况下各个节点相互配置,完成用户请求的处理工作当某种请求增多,造成"服务T"故障的情况时,会延伸的造成"服务U"不可用,及继续扩展,如下最终...原创 2019-06-11 17:41:40 · 3235 阅读 · 0 评论 -
SpringCloud-Feign【超时时间设置】
Feign调用服务的默认时长是1秒钟,也就是如果超过1秒没连接上或者超过1秒没响应,那么会相应的报错。而实际情况是因为业务的不同可能出现超出1秒的情况,这时我们需要调整超时时间。本文来看下怎么去设置。全局配置 在application.properties中添加如下配置,超过5秒没连接上报连接超时,如果超过5秒没有响应,报请求超时#全局配置# 请求连接的超时时间 默认的时间为 1 秒...原创 2019-06-09 18:52:31 · 63918 阅读 · 12 评论 -
SpringCloud-Feign[微服务日志处理]
在微服务中,有时我们需要查看服务之前的调用情况,如下,我们想要查看consumer调用provider的情况,浏览器到consumer的调用情况我们可以通过浏览器查看。通过案例我们来看下怎么查看consumer调用provider的情况1.创建项目2.添加 logback.xml 文件 通过logback来实现日志信息的持久化<?xml version="1.0" enc...原创 2019-06-09 18:33:08 · 4864 阅读 · 2 评论 -
SpringCloud-Feign[HttpClient连接池]
为什么 http 连接池能提升性能?http 的背景原理a. 两台服务器建立 http 连接的过程是很复杂的一个过程,涉及到多个数据包的交换,并且也很耗时间。b. Http 连接需要的 3 次握手 4 次分手开销很大,这一开销对于大量的比较小的 http 消息来说更大。优化解决方案a. 如果我们直接采用 http 连接池,节约了大量的 3 次握手 4 次分手;这样能大大提升吞吐率。...原创 2019-06-09 17:46:28 · 8211 阅读 · 0 评论 -
SpringCloud-Gzip[压缩介绍]
在数据传输过程中压缩数据肯定是必须的,而gzip是我们比较常用的方式,而且我们在刚刚接触http协议的时候就介绍过gzip。本文我们来看下在微服务环境下我们怎么通过gzip来压缩数据。一、gzip 介绍 gzip是一种数据格式,采用用 deflate 算法压缩 data;gzip 是一种流行的文件压缩算法,应用十分广泛,尤其是在 Linux 平台。gzip 能力: 当 Gzip 压...原创 2019-06-09 12:30:02 · 4238 阅读 · 0 评论 -
SpringCloud-Feign[请求参数处理]
文章目录Feign参数处理一、单个参数1.service服务2.provider服务3.consumer服务二、多个参数1.GET方式2.POST方式 在上篇文章的基础上我们来介绍下Feign的请求参数的问题Feign参数处理一、单个参数 首先来看下单个参数的情况1.service服务 在service服务中我们增加一个接收单个参数的方法@RequestMapping("/pr...原创 2019-06-07 13:09:42 · 3989 阅读 · 0 评论 -
SpringCloud-Feign[入门案例]
一、 什么是 Feign Feign是一种声明式、模板化的HTTP客户端(仅在 consumer 中使用)。二、 什么是声明式,有什么作用,解决什么问题? 声明式调用就像调用本地方法一样调用远程方法;无感知远程 http 请求。Spring Cloud 的声明式调用, 可以做到使用 HTTP 请求远程服务时能就像调用本地方法一样的体验,开发者完全感知不到这是远程方法,更感知不到这是个...原创 2019-06-07 10:58:54 · 1927 阅读 · 0 评论 -
SpringCloud-Ribbon[负载均衡策略]
上篇文章我们介绍了Ribbon的入门案例,通过案例我们知道ribbon默认的负载均衡策略是轮询,本文我们来看下Ribbon的其他常用的负载均衡策略。Ribbon负载均衡策略ribbon提供的策略类 ribbon依赖中提供的有相关的策略,具体如下Ribbon 的常见负载均衡策略策略名称策略对应的类名实现原理轮询策略(默认)RoundRobinRule轮询策...原创 2019-06-05 23:53:17 · 4480 阅读 · 0 评论 -
SpringCloud-Ribbon[入门案例]
一、 Ribbon 在微服务中的作用1 什么是 RibbonRibbon 是一个基于 Http 和 TCP 的客服端负载均衡工具,它是基于 Netflix Ribbon 实现的。它不像 spring cloud 服务注册中心、配置中心、API 网关那样独立部署,但是它几乎存在于每个 spring cloud 微服务中。包括 feign 提供的声明式服务调用也是基于该 Ribbon实现的。...原创 2019-06-04 23:48:51 · 1642 阅读 · 0 评论 -
SpringCloud-Eureka[安全认证]
在SpringCloud服务中为了提高注册中心的安全性我们可以整合springsecurity来实现完全认证。Eureka的完全认证项目结构Eureka服务中心做的高可用的配置provide提供服务,需要到注册中心注册(需要认证)consumer服务消费者,需要从注册中心中发现服务,不需要认证服务注册中心配置1.添加Spring Security依赖 因为是在SpringB...原创 2019-06-04 15:41:19 · 1583 阅读 · 0 评论 -
SpringCloud-Eureka[优雅停服]
本文我们来介绍下在Eureka中我们如何比较方便的停止服务,并且将服务从注册中心中移除Eureka的优雅停服一、Eureka的自我保护模式什么是自我保护模式1.自我保护的条件 一般情况下,微服务在 Eureka 上注册后,会每 30 秒发送心跳包,Eureka 通过心跳来判断服务时候健康,同时会定期删除超过 90 秒没有发送心跳服务。2.有两种情况会导致 Eureka Serve...原创 2019-06-03 21:29:13 · 2389 阅读 · 0 评论 -
Spring RestTemplate介绍
上篇文件介绍Eureka服务的文章中,我们介绍到consumer从Eureka中通过LoadBalancerClient获取到服务端地址信息后通过RestTemplate来远程调用服务的场景,本文来具体介绍下RestTemplate的使用RestTemplate SpringRestTemplate是Spring 提供的用于访问 Rest 服务的客端, RestTemplate提供了多种...原创 2019-05-29 12:28:54 · 18951 阅读 · 0 评论 -
Springboot之监控健康状况
在微服务环境中,因为我们的服务节点比较多,所以我们需要获取每个服务节点的健康信息来掌握整个系统的运行情况及问题解决,本文就来具体介绍下怎么实现SpringBoot项目中的监控服务Actuator Spring Boot Actuator可以帮助你监控和管理Spring Boot应用,比如健康检查、审计、统计和HTTP追踪等。所有的这些特性可以通过JMX或者HTTP endpoints来获...原创 2019-05-29 20:04:34 · 4382 阅读 · 1 评论 -
SpringCloud-Eureka【服务案例】
上篇文章我们介绍了Eureka的集群环境搭建,本文我们来通过Eureka作为注册中心来实现一个案例,案例结构如下一、启动Eureka服务 在我们部署的Eureka几点上分别指向如下命令,启动Eureka服务./server.sh start二、构建Provider服务1.创建SpringBoot项目2.修改pom文件 添加相关依赖,注意此处添加的Eureka的依赖不需...原创 2019-05-28 23:40:12 · 1747 阅读 · 0 评论 -
SpringCloud-Eureka【server服务高可用搭建】
在分布式环境中Eureka做为注册中心存在,承担着各个服务的注册与发现,是非常核心的组件,所以如果Eureka环境挂了,那么我们的整个系统也就不稳定了,所以我们要保证我们的Eureka是高可用的,本文来介绍下Eureka的集合搭建。Eureka高可用一、创建项目 创建一个SpringBoot项目。单节点的Eureka服务器上篇文章我们已经介绍过了,所以本文就重点突出集群环境要配置的地方...原创 2019-05-28 11:53:49 · 2044 阅读 · 0 评论 -
SpringCloud-Eureka【入门案例】
一、 什么是服务注册中心 服务注册中心是服务实现服务化管理的核心组件,类似于目录服务的作用,主要用来存储服务信息,譬如提供者 url 串、路由信息等。服务注册中心是 SOA 架构中最基础的设施之一。1 服务注册中心的作用服务的注册服务的发现2 常见的注册中心有哪些Dubbo 的注册中心 ZookeeperSringcloud 的注册中心 Eureka3 服务注册中心解决了...原创 2019-05-27 21:09:16 · 2133 阅读 · 0 评论