
SpringCloud
文章平均质量分 91
程序猿DD
《Spring Cloud微服务实战》作者、腾讯云TVP、阿里云MVP
展开
-
《Spring Cloud免费教程》连载目录
可能是全网最全的免费教程了原创 2021-12-05 22:15:03 · 929 阅读 · 1 评论 -
Spring Cloud 2021.0.0正式发布:第一个支持Spring Boot 2.6的版本
美国时间12月2日,Spring Cloud 正式发布了第一个支持 Spring Boot 2.6 的版本,版本号为:2021.0.0,codename 为 Jubilee。在了解具体更新内容之前,先提个最重要的点:2021.0.0版本对应的Spring Boot是从2.6.1开始的,所以如果在升级的时候不要用2.6.0版本。好了,下面就跟DD一起来看看这个版本的内容吧!更新内容Spring Cloud Commons支持为每个负载均衡进行配置,该特性也同样适用于Gateway、Contract和原创 2021-12-03 11:12:58 · 3729 阅读 · 0 评论 -
Spring Cloud 和 Dubbo 哪个会被淘汰?
今天在知乎上看到了这样一个问题:Spring Cloud 和 Dubbo哪个会被淘汰?看了几个回答,都觉得不在点子上,所以要么就干脆写篇小文瞎逼叨一下。简单说说个人观点我认为这两个框架大概率会长期都存在。时至今日,这两个框架放到现在,已经不存在谁取代谁这一说了。由于Spring Cloud Alibaba的出现,Dubbo已经很好的融入到了Spring Cloud体系,所以围绕Spring Cloud生态的各种周边产品都是可以无缝整合到一起来玩的。Dubbo无缝整合Spring Cloud生态是啥意原创 2020-05-25 09:24:30 · 7059 阅读 · 17 评论 -
Spring Cloud Hoxton正式发布,Spring Boot 2.2 不再孤单
距离Spring Boot 2.2.0的发布已经有一个半月左右时间,由于与之匹配的Spring Cloud版本一直没有Release,所以在这期间碰到不少读者咨询的问题都是由于Spring Boot和Spring Cloud版本不匹配导致。很多时候,我们在学习或重建系统的时候都喜欢直接选用最高版本来开发,但是在使用Spring全家桶的时候,这样的选择不一定是最佳选择。主要还是由于Spring全家...原创 2019-12-02 11:00:40 · 3578 阅读 · 1 评论 -
Spring Cloud Alibaba基础教程:使用Nacos作为配置中心
通过本教程的前两篇:《Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现》《Spring Cloud Alibaba基础教程:支持的几种服务消费方式(RestTemplate、WebClient、Feign)》我们已经学会了,如何利用Nacos实现服务的注册与发现。同时,也介绍了在Spring Cloud中,我们可以使用的几种不同编码风格的服务消费方式。接...原创 2019-01-28 22:28:26 · 8740 阅读 · 1 评论 -
Spring Cloud Alibaba基础教程:Nacos配置的加载规则详解
前情回顾:《Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现》《Spring Cloud Alibaba基础教程:支持的几种服务消费方式(RestTemplate、WebClient、Feign)》《Spring Cloud Alibaba基础教程:使用Nacos作为配置中心》上一篇,我们学习了如何在Nacos中创建配置,以及如何使用Spring Cl...原创 2019-01-30 09:15:18 · 1010 阅读 · 0 评论 -
Spring Cloud Alibaba基础教程:Nacos配置的多文件加载与共享配置
前情回顾:《Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现》《Spring Cloud Alibaba基础教程:支持的几种服务消费方式》《Spring Cloud Alibaba基础教程:使用Nacos作为配置中心》《Spring Cloud Alibaba基础教程:Nacos配置的加载规则详解》《Spring Cloud Alibaba基础教程:N...原创 2019-02-09 22:06:26 · 1245 阅读 · 0 评论 -
Spring Cloud Alibaba基础教程:Nacos配置的多环境管理
前情回顾:《Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现》《Spring Cloud Alibaba基础教程:支持的几种服务消费方式》《Spring Cloud Alibaba基础教程:使用Nacos作为配置中心》《Spring Cloud Alibaba基础教程:Nacos配置的加载规则详解》通过之前两篇对Nacos配置管理功能的介绍,已经学会...原创 2019-01-31 10:33:28 · 1293 阅读 · 0 评论 -
Spring Cloud Alibaba 基础教程:Nacos 生产级版本 0.8.0
Spring Cloud Alibaba 基础教程:Nacos 生产级版本 0.8.0昨晚Nacos社区发布了第一个生产级版本:0.8.0。由于该版本除了Bug修复之外,还提供了几个生产管理非常重要的特性,所以觉得还是有必要写一篇讲讲这次升级,在后续的文章中也都将以0.8.0版本为基础。升级的理由如Nacos官方的发布文档中描述的那样,本版本将支持非常重要的三个特性:第一,用户登录。在过...原创 2019-01-23 10:45:00 · 1500 阅读 · 0 评论 -
Spring Cloud Alibaba基础教程:支持的几种服务消费方式(RestTemplate、WebClient、Feign)
通过《Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现》一文的学习,我们已经学会如何使用Nacos来实现服务的注册与发现,同时也介绍如何通过LoadBalancerClient接口来获取某个服务的具体实例,并根据实例信息来发起服务接口消费请求。但是这样的做法需要我们手工的去编写服务选取、链接拼接等繁琐的工作,对于开发人员来说非常的不友好。所以接下来,我们再来看看除...原创 2019-01-27 09:18:56 · 1420 阅读 · 0 评论 -
Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现
自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注。虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭借阿里中间件团队的背景,还是得到不少团队的支持;同时,由于Spring Cloud Alibaba中的几项主要功能都直指Netflix OSS中的重要组件,而后者最近频繁宣布各组件不在更新新特性,这使...原创 2019-01-18 09:13:06 · 5215 阅读 · 3 评论 -
Spring Cloud Stream消费失败后的处理策略(四):重新入队(RabbitMQ)
应用场景之前我们已经通过《Spring Cloud Stream消费失败后的处理策略(一):自动重试》一文介绍了Spring Cloud Stream默认的消息重试功能。本文将介绍RabbitMQ的binder提供的另外一种重试功能:重新入队。动手试试准备一个会消费失败的例子,可以直接沿用前文的工程,也可以新建一个,然后创建如下代码的逻辑:@EnableBinding(TestApplic...原创 2018-12-17 23:15:28 · 1209 阅读 · 0 评论 -
Spring Cloud Stream消费失败后的处理策略(三):使用DLQ队列(RabbitMQ)
应用场景前两天我们已经介绍了两种Spring Cloud Stream对消息失败的处理策略:自动重试:对于一些因环境原因(如:网络抖动等不稳定因素)引发的问题可以起到比较好的作用,提高消息处理的成功率。自定义错误处理逻辑:如果业务上,消息处理失败之后有明确的降级逻辑可以弥补的,可以采用这种方式,但是2.0.x版本有Bug,2.1.x版本修复。那么如果代码本身存在逻辑错误,无论重试多少次...原创 2018-12-17 23:08:19 · 1505 阅读 · 2 评论 -
Spring Cloud Stream同一通道根据消息内容分发不同的消费逻辑
应用场景有的时候,我们对于同一通道中的消息处理,会通过判断头信息或者消息内容来做一些差异化处理,比如:可能在消息头信息中带入消息版本号,然后通过if判断来执行不同的处理逻辑,其代码结构可能是这样的:@StreamListener(value = TestTopic.INPUT)public void receiveV1(String payload, @Header("version") S...原创 2018-12-27 22:14:30 · 1077 阅读 · 0 评论 -
Spring Cloud Stream消费失败后的处理策略(二):自定义错误处理逻辑
应用场景上一篇《Spring Cloud Stream消费失败后的处理策略(一):自动重试》介绍了默认就会生效的消息重试功能。对于一些因环境原因、网络抖动等不稳定因素引发的问题可以起到比较好的作用。但是对于诸如代码本身存在的逻辑错误等,无论重试多少次都不可能成功的问题,是无法修复的。对于这样的情况,前文中说了可以利用日志记录消息内容,配合告警来做补救,但是很显然,这样做非常原始,并且太过笨拙,处...原创 2018-12-15 19:44:08 · 1090 阅读 · 1 评论 -
Spring Cloud Stream消费失败后的处理策略(一):自动重试
之前写了几篇关于Spring Cloud Stream使用中的常见问题,比如:如何处理消息重复消费如何消费自己生产的消息下面几天就集中来详细聊聊,当消息消费失败之后该如何处理的几种方式。不过不论哪种方式,都需要与具体业务结合,解决不同业务场景可能出现的问题。今天第一节,介绍一下Spring Cloud Stream中默认就已经配置了的一个异常解决方案:重试!应用场景依然要明确一点,...原创 2018-12-13 20:02:12 · 6106 阅读 · 1 评论 -
Spring Cloud Alibaba基础教程:Nacos的数据持久化
前情回顾:《Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现》《Spring Cloud Alibaba基础教程:支持的几种服务消费方式》《Spring Cloud Alibaba基础教程:使用Nacos作为配置中心》《Spring Cloud Alibaba基础教程:Nacos配置的加载规则详解》《Spring Cloud Alibaba基础教程:N...原创 2019-02-17 09:38:15 · 861 阅读 · 0 评论 -
Spring Cloud Alibaba基础教程:Nacos的集群部署
前情回顾:《Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现》《Spring Cloud Alibaba基础教程:支持的几种服务消费方式》《Spring Cloud Alibaba基础教程:使用Nacos作为配置中心》《Spring Cloud Alibaba基础教程:Nacos配置的加载规则详解》《Spring Cloud Alibaba基础教程:N...原创 2019-02-21 10:19:14 · 1084 阅读 · 0 评论 -
Spring Cloud与Dubbo的完美融合之手「Spring Cloud Alibaba」
很早以前,在刚开始搞Spring Cloud基础教程的时候,写过这样一篇文章:《微服务架构的基础框架选择:Spring Cloud还是Dubbo?》,可能不少读者也都看过。之后也就一直有关于这两个框架怎么选的问题出来,其实文中我有明确的提过,Spring Cloud与Dubbo的比较本身是不公平的,主要前者是一套较为完整的架构方案,而Dubbo只是服务治理与RPC实现方案。 由于Dubbo在...原创 2019-08-19 10:06:06 · 14117 阅读 · 2 评论 -
这个注解一次搞定限流与熔断降级:@SentinelResource
这个注解一次搞定限流与熔断降级:@SentinelResource原创 2019-07-02 09:58:53 · 3381 阅读 · 2 评论 -
Spring Cloud Alibaba基础教程:Sentinel Dashboard中修改规则同步到Nacos
Spring Cloud Alibaba基础教程:Sentinel Dashboard中修改规则同步到Nacos上一篇我们介绍了如何通过改造Sentinel Dashboard来实现修改规则之后自动同步到Apollo。下面通过这篇,详细介绍当使用Nacos作为配置中心之后,如何实现Sentinel Dashboard中修改规则同步到Nacos。关于下面改造的原理和分析可以见上一篇《Sentine...原创 2019-05-22 16:12:13 · 1244 阅读 · 0 评论 -
公益:开放一台Nacos服务端给各位Spring Cloud爱好者
之前开放过一台公益Eureka Server给大家,以方便大家在阅读我博客中教程时候做实验。由于目前在连载Spring Cloud Alibaba,所以对应的也部署了一台Nacos,并且也开放出来,给大家学习测试之用。Nacos控制台地址:http://nacos.didispace.com/nacos/index.html账户与密码均为:nacos客户端使用配置使用注册中心服...原创 2019-05-14 22:22:22 · 760 阅读 · 1 评论 -
Spring Cloud Alibaba基础教程:Sentinel Dashboard同步Apollo存储规则
在之前的两篇教程中我们分别介绍了如何将Sentinel的限流规则存储到Nacos和Apollo中。同时,在文末的思考中,我都指出了这两套整合方案都存在一个不足之处:不论采用什么配置中心,限流规则都只能通过Nacos界面或Apollo界面来完成修改才能得到持久化存储,而在Sentinel Dashboard中修改限流规则虽然可以生效,但是不会被持久化到配置中心。而在这两个配置中心里存储的数据是一个J...原创 2019-05-07 10:03:04 · 960 阅读 · 0 评论 -
Spring Cloud Alibaba 新版本发布:众多期待内容整合打包加入!
在Nacos 1.0.0 Release之后,Spring Cloud Alibaba也终于发布了最新的版本。该版本距离上一次发布,过去了整整4个月!下面就随我一起看看,这个大家期待已久的版本都有哪些内容值得我们关注。版本变化之前在《Spring Cloud Alibaba与Spring Boot、Spring Cloud之间不得不说的版本关系》一文中,我有提到过当前版本的Spring Clo...原创 2019-04-22 10:04:00 · 1330 阅读 · 0 评论 -
Spring Cloud Alibaba基础教程:Sentinel使用Nacos存储规则
通过上一篇《使用Sentinel实现接口限流》的介绍,相信大家对Sentinel已经有了初步的认识。在Spring Cloud Alibaba的整合封装之下,接口限流这件事情可以非常轻易的整合到我们的Spring Cloud应用中。但是,通过上篇的整合,依然还不能完美的满足我们日常的生产需求。其中,非常重要的一点就是限流规则的持久化问题。不少细心的读者也在留言中提出了Dashboard中设置的限流...原创 2019-04-17 10:18:25 · 1048 阅读 · 1 评论 -
Spring Cloud Alibaba基础教程:Sentinel使用Apollo存储规则
上一篇我们介绍了如何通过Nacos的配置功能来存储限流规则。Apollo是国内用户非常多的配置中心,所以,今天我们继续说说Spring Cloud Alibaba Sentinel中如何将流控规则存储在Apollo中。使用Apollo存储限流规则Sentinel自身就支持了多种不同的数据源来持久化规则配置,目前包括以下几种方式:文件配置Nacos配置ZooKeeper配置Apollo...原创 2019-04-21 17:08:00 · 790 阅读 · 0 评论 -
Spring Cloud Alibaba到底坑不坑?
之前我发过一篇《说说我为什么看好Spring Cloud Alibaba》,然后这两天有网友给我转了这篇文章《坑爹项目spring-cloud-alibaba,我们也来一个》,问我的看法是怎么样的,聊天时候简单说了一下。今天在家休息,抽空整理一下内容,逐点说一下我的看法,主要还是觉得这篇文章博眼球的成分高一些,因为这篇文章的解读与之前其他某些自媒体发布的《Eureka 2.0 开源工作宣告停止,继...原创 2019-04-09 10:40:19 · 5917 阅读 · 8 评论 -
说说我为什么看好Spring Cloud Alibaba
最近对《Spring Cloud Alibaba基础教程》系列的催更比较多,说一下最近的近况:因为打算Spring Boot 2.x一起更新。所以一直在改博客Spring Boot专题页和Git仓库的组织。由于前端技术太过蹩脚,花了不少时间。大家不用担心,这个系列不会太监,因为我真心看好这个套件的未来,后续的更新也会继续赶上来。今天就水更一篇吧,跟大家聊一下平时被问的比较多的一类问题,Sprin...原创 2019-03-29 09:58:45 · 2329 阅读 · 0 评论 -
Spring Cloud Alibaba基础教程:使用Sentinel实现接口限流
最近管点闲事浪费了不少时间,感谢网友libinwalan的留言提醒。及时纠正路线,继续跟大家一起学习Spring Cloud Alibaba。Nacos作为注册中心和配置中心的基础教程,到这里先告一段落,后续与其他结合的内容等讲到的时候再一起拿出来说,不然内容会有点跳跃。接下来我们就来一起学习一下Spring Cloud Alibaba下的另外一个重要组件:Sentinel。Sentine...原创 2019-04-10 14:23:39 · 1347 阅读 · 0 评论 -
Spring Cloud Alibaba与Spring Boot、Spring Cloud之间不得不说的版本关系
这篇博文是临时增加出来的内容,主要是由于最近连载《Spring Cloud Alibaba基础教程》系列的时候,碰到读者咨询的大量问题中存在一个比较普遍的问题:版本的选择。其实这类问题,在之前写Spring Cloud基础教程的时候,就已经发过一篇《聊聊Spring Cloud版本的那些事儿》,来说明Spring Boot和Spring Cloud版本之间的关系。Spring Cloud Ali...原创 2019-03-03 10:16:13 · 5215 阅读 · 1 评论 -
Spring Cloud Stream如何处理消息重复消费?
最近收到好几个类似的问题:使用Spring Cloud Stream操作RabbitMQ或Kafka的时候,出现消息重复消费的问题。通过沟通与排查下来主要还是用户对消费组的认识不够。其实,在之前的博文以及《Spring Cloud微服务实战》一书中都有提到关于消费组的概念以及作用。那么什么是消费组呢?为什么要用消费组?它解决什么问题呢?摘录一段之前博文的内容,来解答这些疑问:通常在生产环境,...原创 2018-11-26 20:58:48 · 3341 阅读 · 0 评论 -
Spring Cloud Stream如何消费自己生产的消息?
在上一篇《Spring Cloud Stream如何处理消息重复消费》中,我们通过消费组的配置解决了多实例部署情况下消息重复消费这一入门时的常见问题。本文将继续说说在另外一个被经常问到的问题:如果微服务生产的消息自己也想要消费一份,应该如何实现呢?常见错误在放出标准答案前,先放出一个常见的错误姿势和告警信息(以便您可以通过搜索引擎找到这里_)。以下错误基于Spring Boot 2.0.5、S...原创 2018-11-28 21:54:42 · 1090 阅读 · 1 评论 -
Logback中如何自定义灵活的日志过滤规则
当我们需要对日志的打印要做一些范围的控制的时候,通常都是通过为各个Appender设置不同的Filter配置来实现。在Logback中自带了两个过滤器实现:ch.qos.logback.classic.filter.LevelFilter和ch.qos.logback.classic.filter.ThresholdFilter,用户可以根据需要来配置一些简单的过滤规则,下面先简单介绍一下这两个原...原创 2018-11-18 21:53:34 · 2195 阅读 · 0 评论 -
Spring Cloud构建微服务架构(四)分布式配置中心(续)
本文接之前的《Spring Cloud构建微服务架构(四)分布式配置中心》,继续来说说Spring Cloud Config的使用。先来回顾一下,在前文中我们完成了什么:构建了config-server,连接到Git仓库在Git上创建了一个config-repo目录,用来存储配置信息构建了config-client,来获取Git中的配置信息在本文中,我们继续来看看Spring Clo原创 2017-06-26 14:09:35 · 776 阅读 · 0 评论 -
Spring Cloud构建微服务架构(七)消息总线
先回顾一下,在之前的Spring Cloud Config的介绍中,我们还留了一个悬念:如何实现对配置信息的实时更新。虽然,我们已经能够通过/refresh接口和Git仓库的Web Hook来实现Git仓库中的内容修改触发应用程序的属性更新。但是,若所有触发操作均需要我们手工去维护Web Hook中的应用位置的话,这随着系统的不断扩张,会变的越来越难以维护,而消息代理中间件是解决该问题最为合适的方原创 2017-06-26 14:09:38 · 784 阅读 · 0 评论 -
Spring Cloud构建微服务架构(七)消息总线(续:Kafka)
Spring Cloud Bus除了支持RabbitMQ的自动化配置之外,还支持现在被广泛应用的Kafka。在本文中,我们将搭建一个Kafka的本地环境,并通过它来尝试使用Spring Cloud Bus对Kafka的支持,实现消息总线的功能。由于本文会以之前Rabbit的实现作为基础来修改,所以先阅读《Spring Cloud构建微服务架构(七)消息总线》有助于理解本文。Kafka简介Kaf原创 2017-06-26 14:09:42 · 883 阅读 · 0 评论 -
Spring Cloud源码分析(二)Ribbon
断断续续看Ribbon的源码差不多也有7-8天了,总算告一段落。本文记录了这些天对源码的阅读过程与一些分析理解,如有不对还请指出。友情提示:本文较长,请选择一个较为舒适的姿势来阅读在之前介绍使用Ribbon进行服务消费的时候,我们用到了RestTemplate,但是熟悉Spring的同学们是否产生过这样的疑问:RestTemplate不是Spring自己就有的吗?跟Ribbon的客户端负载均衡原创 2017-06-26 14:09:46 · 1648 阅读 · 0 评论 -
Spring Cloud源码分析(二)Ribbon(续)
因文章长度限制,故分为两篇。上一篇:《Spring Cloud源码分析(二)Ribbon》负载均衡策略通过上一篇对Ribbon的源码解读,我们已经对Ribbon实现的负载均衡器以及其中包含的服务实例过滤器、服务实例信息的存储对象、区域的信息快照等都有了深入的认识和理解,但是对于负载均衡器中的服务实例选择策略只是讲解了几个默认实现的内容,而对于IRule的其他实现还没有详细的解读,下面我们来看看原创 2017-06-26 14:09:50 · 1390 阅读 · 0 评论 -
为Spring Cloud Ribbon配置请求重试(Camden.SR2+)
当我们使用Spring Cloud Ribbon实现客户端负载均衡的时候,通常都会利用@LoadBalanced来让RestTemplate具备客户端负载功能,从而实现面向服务名的接口访问。下面的例子,实现了对服务名为hello-service的/hello接口的调用。由于RestTemplate被@LoadBalanced修饰,所以它具备客户端负载均衡的能力,当请求真正发起的时候,url中的服原创 2017-06-26 14:10:00 · 2953 阅读 · 3 评论 -
SpringCloud实战小贴士:随机端口
太久没有更新,一时不知道该从哪儿开始,索性就从一个小技巧开始吧。在之前的《Spring Cloud构建微服务架构》系列博文中,我们经常会需要启动多个实例的情况来测试注册中心、配置中心等基础设施的高可用,也会用来测试客户端负载均衡的调用等。但是,我们一个应用只能有一个端口号,这就使得在本机测试的时候,不得不为同一个服务设置不同的端口来进行启动。在本地用不同端口启动同一服务实例的方法有很多。最传统原创 2017-06-26 14:10:42 · 1953 阅读 · 0 评论