
史上最简单的 Spring Cloud 教程
文章平均质量分 87
该教程主要讲述如何用 Spring Cloud 构建微服务。
方志朋
生命不息,奋斗不止
展开
-
SpringCloud 2020版本教程4:使用spring cloud sleuth+zipkin实现链路追踪
Spring Cloud Sleuth+zipkin实现链路追踪Spring Cloud Sleuth 主要功能就是在分布式系统中提供追踪解决方案,并且兼容支持了 zipkin,你只需要在pom文件中引入相应的依赖即可。微服务架构上通过业务来划分服务的,通过REST调用,对外暴露的一个接口,可能需要很多个服务协同才能完成这个接口功能,如果链路上任何一个服务出现问题或者网络超时,都会形成导致接口调用失败。随着业务的不断扩张,服务之间互相调用会越来越复杂。本小节教程将讲述如何使用sleuth和zipki原创 2021-04-12 17:59:47 · 5852 阅读 · 1 评论 -
SpringCloud 2020版本教程3:使用sentinel作为熔断器
什么是sentinelSentinel,中文翻译为哨兵,是为微服务提供流量控制、熔断降级的功能,它和Hystrix提供的功能一样,可以有效的解决微服务调用产生的“雪崩”效应,为微服务系统提供了稳定性的解决方案。随着Hytrxi进入了维护期,不再提供新功能,Sentinel是一个不错的替代方案。通常情况,Hystrix采用线程池对服务的调用进行隔离,Sentinel才用了用户线程对接口进行隔离,二者相比,Hystrxi是服务级别的隔离,Sentinel提供了接口级别的隔离,Sentinel隔离级别更加精细,原创 2021-04-12 17:59:00 · 8004 阅读 · 3 评论 -
SpringCloud 2020版本教程2:使用spring cloud gateway作为服务网关
Spring Cloud Gateway是Spring Cloud官方推出的第二代网关框架,取代Zuul网关。网关作为流量的,在微服务系统中有着非常作用,网关常见的功能有路由转发、权限校验、限流控制等作用。在上一节的案例中,我们讲述了如何使用nacos作为服务注册中心和配置中心,使用feign和sc loadbalancer作为服务调用。本小节将讲述如何使用spring cloud gateway作为服务网关。工程构建新建一个gateway的工程,工程目录如下:gateway需要注册到nacos中原创 2021-04-12 17:58:18 · 10355 阅读 · 3 评论 -
SpringCloud 2020版本教程1:使用nacos作为注册中心和配置中心
使用nacos作为注册中心和配置中心本次教程旨在为读者提供2020版本的最佳实践方案,使用我认为最容易学习的组件,可能很多组件有很多替代方案,在这里不依依讲述。本次教程使用的组件如下:注册中心:nacos,替代方案eureka、consul、zookeeper配置中心: nacos ,替代方案sc config、consul config服务调用:feign,替代方案:resttempate熔断:sentinel、,替代方案:Resilience4j熔断监控:sentinel dashboar原创 2021-04-12 17:57:31 · 18714 阅读 · 10 评论 -
SpringCloud 2020版本教程0:springcloud 2020版本概述
Spring cloud赶在2020年最后几天发布了新版本,版本号取名为2020.0.0,取消了英国地铁的命名方式。从H版本之后,全新的命名为2020.x.x。马上快2021年了,为毛不取名为2021 ,哈哈。从maven仓库可知,当前版本为2020.0.2,版本关系Release TrainBoot Versionspring cloud alibaba version2020.0.x aka Ilford2.4.x2021.1Hoxton2.2.x, 2.3.x原创 2021-04-12 17:56:51 · 19153 阅读 · 2 评论 -
spring cloud config将配置存储在数据库中
转载请标明出处:https://blog.csdn.net/forezp/article/details/86634907本文出自方志朋的博客Spring Cloud Config Server最常见是将配置文件放在本地或者远程Git仓库,放在本地是将将所有的配置文件统一写在Config Server工程目录下,如果需要修改配置,需要重启config server;放在Git仓库,是将配...原创 2019-02-21 18:49:53 · 31604 阅读 · 10 评论 -
Spring Cloud Consul 之Greenwich版本全攻略
什么是ConsulConsul是HashiCorp公司推出的开源软件,使用GO语言编写,提供了分布式系统的服务注册和发现、配置等功能,这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网格。Consul不仅具有服务治理的功能,而且使用分布式一致协议RAFT算法实现,有多数据中心的高可用方案,并且很容易和Spring Cloud等微服务框架集成,使用起来非常的简单,具有简单...原创 2019-02-14 14:45:01 · 29146 阅读 · 19 评论 -
Spring Cloud Sleuth 之Greenwich版本全攻略
微服务架构是一个分布式架构,微服务系统按业务划分服务单元,一个微服务系统往往有很多个服务单元。由于服务单元数量众多,业务的复杂性较高,如果出现了错误和异常,很难去定位。主要体现在一个请求可能需要调用很多个服务,而内部服务的调用复杂性决定了问题难以定位。所以在微服务架构中,必须实现分布式链路追踪,去跟进一个请求到底有哪些服务参与,参与的顺序又是怎样的,从而达到每个请求的步骤清晰可见,出了问题能够快速...原创 2019-02-12 11:18:47 · 19566 阅读 · 12 评论 -
阿里分布式事务框架GTS开源了!
转载请标明出处:https://www.fangzhipeng.com本文出自方志朋的博客就在昨天,阿里分布式事务框架GTS开源了一个免费社区版Fescar,看到了这个消息内心非常的激动。在微服务系统中,分布式事务一直是痛点,也是难点。社区里也有一些开源的分布式解决方案的框架,比如ByteTCC、LCN,但是这些框架没有一个权威的组织在维护,或多或少大家都有点不敢用。阿里开源的分布式事务...原创 2019-01-24 23:27:05 · 27769 阅读 · 10 评论 -
Spring Boot Admin 2.1.0 全攻略
转载请标明出处:https://www.fangzhipeng.com本文出自方志朋的博客Spring Boot Admin简介Spring Boot Admin是一个开源社区项目,用于管理和监控SpringBoot应用程序。 应用程序作为Spring Boot Admin Client向为Spring Boot Admin Server注册(通过HTTP)或使用SpringCloud...原创 2019-01-08 23:07:56 · 90677 阅读 · 19 评论 -
spring cloud gateway之服务注册与发现
转载请标明出处:https://www.fangzhipeng.com本文出自方志朋的博客在之前的文章介绍了Spring Cloud Gateway的Predict(断言)、Filter(过滤器),大家对Spring Cloud Gateway有初步的认识,其中在对服务路由转发的这一块,在之前的文章是采用硬编码的方式进行路由转发。这篇文章以案例的形式来讲解Spring Cloud Gat...原创 2018-12-22 16:08:40 · 72495 阅读 · 18 评论 -
spring cloud gateway 之限流篇
转载请标明出处:https://www.fangzhipeng.com本文出自方志朋的博客在高并发的系统中,往往需要在系统中做限流,一方面是为了防止大量的请求使服务器过载,导致服务不可用,另一方面是为了防止网络攻击。常见的限流方式,比如Hystrix适用线程池隔离,超过线程池的负载,走熔断的逻辑。在一般应用服务器中,比如tomcat容器也是通过限制它的线程数来控制并发的;也有通过时间窗...原创 2018-12-18 21:52:04 · 79301 阅读 · 34 评论 -
spring cloud gateway之filter篇
转载请标明出处:https://www.fangzhipeng.com本文出自方志朋的博客在上一篇文章详细的介绍了Gateway的Predict,Predict决定了请求由哪一个路由处理,在路由处理之前,需要经过“pre”类型的过滤器处理,处理返回响应之后,可以由“post”类型的过滤器处理。filter的作用和生命周期由filter工作流程点,可以知道filter有着非常重要的作用...原创 2018-12-17 21:45:21 · 137157 阅读 · 27 评论 -
Spring Cloud Gateway 之Predict篇
Spring Cloud gateway工作流程在之前的文章的Spring Cloud Gateway初体验中,大家已经对Spring Cloud Gateway的功能有一个初步的认识,网关作为一个系统的流量的入口,有着举足轻重的作用,通常的作用如下:协议转换,路由转发流量聚合,对流量进行监控,日志输出作为整个系统的前端工程,对流量进行控制,有限流的作用作为系统的前端边界,外部流量只能...原创 2018-12-09 12:53:44 · 59710 阅读 · 28 评论 -
Spring Cloud Gateway初体验
转载请标明出处:https://www.fangzhipeng.com/springcloud/2018/11/06/sc-f-gateway1/本文出自方志朋的博客这篇文章讲述了如何简单地使用Spring Cloud Gateway,来源于Spring Cloud官方案例,地址https://spring.io/guides/gs/gateway 。简介Spring Cloud G...原创 2018-11-06 18:55:37 · 130663 阅读 · 42 评论 -
上传文件,经过Zuul,中文文件名乱码解决办法
转载请标明出处: http://blog.csdn.net/forezp/article/details/73017664 本文出自方志朋的博客问题描述在项目中又一个上传文件的oss服务,直接调用服务的上传文件成功,如果经过网关zuul服务,上传中文名字的文件,文件名会出现乱码,最终导致上传失败,如果上传英文名字的文件,没有任何问题。怀疑网关zuul对中文做编码处理。解决问题的过程这原创 2017-08-14 21:51:31 · 68265 阅读 · 5 评论 -
JWT如何在Spring Cloud微服务系统中在服务相互调时传递
转载请标明出处: http://blog.csdn.net/forezp/article/details/78676036 本文出自方志朋的博客在微服务系统中,为了保证微服务系统的安全,常常使用jwt来鉴权,但是服务内部的相互调用呢。经常有人在微信上问我,我给出一个解决办法,采用Feign的拦截器。在Feign中开启了hystrix,hystrix默认采用的是线程池作...原创 2017-11-30 14:42:07 · 59326 阅读 · 8 评论 -
书籍《深入理解Spring Cloud 与微服务构建》勘误、源码下载
转载请标明出处: https://blog.csdn.net/forezp/article/details/79638403 本文出自方志朋的博客文章勘误错误在所难免,欢迎大家批评指正,在文章下方留言即可。有任何问题加我微信miles02,由于可能问的人较多,建议把问题描述清楚,我有空回答,多谢大家的支持。 读者QQ交流群:719761942源码下载gi...原创 2018-03-21 12:50:45 · 48870 阅读 · 39 评论 -
《深入理解Spring Cloud与微服务构建》书籍目录
转载请标明出处: https://blog.csdn.net/forezp/article/details/79735542 本文出自方志朋的博客作者简介方志朋,毕业于武汉理工大学,CSDN博客专家,专注于微服务、大数据等领域,乐于分享,爱好开源,活跃于各大开源社区。著有《史上最简单的Spring Cloud教程》,累计访问量超过了300万。购买地址点...原创 2018-03-28 22:43:57 · 53051 阅读 · 4 评论 -
史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本)
转载请标明出处: http://blog.csdn.net/forezp/article/details/69696915 本文出自方志朋的博客一、spring cloud简介鉴于《史上最简单的Spring Cloud教程》很受读者欢迎,再次我特意升级了一下版本,目前支持的版本为Spring Boot版本2.0.3.RELEASE,Spring Cloud版本为F...原创 2018-07-14 10:04:27 · 567375 阅读 · 282 评论 -
史上最简单的SpringCloud教程 | 第二篇: 服务消费者(rest+ribbon)(Finchley版本)
转载请标明出处: http://blog.csdn.net/forezp/article/details/69788938 本文出自方志朋的博客在上一篇文章,讲了服务的注册和发现。在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的。Spring cloud有两种服务调用方式,一种是ribbon+restTemplate,另一种...原创 2018-07-14 10:05:50 · 205260 阅读 · 251 评论 -
史上最简单的SpringCloud教程 | 第三篇: 服务消费者(Feign)(Finchley版本)
转载请标明出处: http://blog.csdn.net/forezp/article/details/69808079 本文出自方志朋的博客上一篇文章,讲述了如何通过RestTemplate+Ribbon去消费服务,这篇文章主要讲述如何通过Feign去消费服务。一、Feign简介Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使...原创 2018-07-14 10:07:35 · 171724 阅读 · 114 评论 -
史上最简单的SpringCloud教程 | 第四篇:断路器(Hystrix)(Finchley版本)
转载请标明出处: http://blog.csdn.net/forezp/article/details/69934399 本文出自方志朋的博客在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或...原创 2018-07-14 10:10:17 · 142436 阅读 · 172 评论 -
史上最简单的SpringCloud教程 | 第五篇: 路由网关(zuul)(Finchley版本)
转载请标明出处: http://blog.csdn.net/forezp/article/details/69939114 本文出自方志朋的博客在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现、服务消费、负载均衡、断路器、智能路由、配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统。一个简答的微服务系统如下图: 注意:A服务和B服务是...原创 2018-07-14 10:11:41 · 148382 阅读 · 194 评论 -
史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)(Finchley版本)
转载请标明出处: http://blog.csdn.net/forezp/article/details/70037291 本文出自方志朋的博客在上一篇文章讲述zuul的时候,已经提到过,使用配置服务来保存各个服务的配置文件。它就是Spring Cloud Config。一、简介在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要...原创 2018-07-14 10:13:10 · 150458 阅读 · 366 评论 -
史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)(Finchley版本)
转载请标明出处: http://blog.csdn.net/forezp/article/details/70037513 本文出自方志朋的博客上一篇文章讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,都从配置中心读取文件,这时可以考虑将配置中心做成一个微服务,将其集群化,从而达到高可用,架构图如下:一、准备工作...原创 2018-07-14 10:14:06 · 96996 阅读 · 180 评论 -
原 史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)(Finchley版本)
转载请标明出处: http://blog.csdn.net/forezp/article/details/70148235 本文出自方志朋的博客 转载请标明出处: Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来。它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控。本文要讲述的是用Spring Cloud Bus实现通知微服务...原创 2018-07-14 10:15:06 · 106448 阅读 · 199 评论 -
史上最简单的SpringCloud教程 | 第九篇: 服务链路追踪(Spring Cloud Sleuth)(Finchley版本)
转载请标明出处: http://blog.csdn.net/forezp/article/details/70162074 本文出自方志朋的博客这篇文章主要讲述服务追踪组件zipkin,Spring Cloud Sleuth集成了zipkin组件。一、简介 Add sleuth to the classpath of a Spring Boot appli...原创 2018-07-14 10:16:13 · 87586 阅读 · 101 评论 -
史上最简单的SpringCloud教程 | 第十篇: 高可用的服务注册中心(Finchley版本)
转载请标明出处: http://blog.csdn.net/forezp/article/details/70183572 本文出自方志朋的博客文章 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka) 介绍了服务注册与发现,其中服务注册中心Eureka Server,是一个实例,当成千上万个服务向它注册的时候,它的负载是非常高的,这...原创 2018-07-14 10:18:07 · 70048 阅读 · 92 评论 -
史上最简单的SpringCloud教程 | 第十二篇: 断路器监控(Hystrix Dashboard)(Finchley版本)
转载请标明出处: http://blog.csdn.net/forezp/article/details/70217283 本文出自方志朋的博客在我的第四篇文章断路器讲述了如何使用断路器,并简单的介绍了下Hystrix Dashboard组件,这篇文章更加详细的介绍Hystrix Dashboard。一、Hystrix Dashboard简介在微服务架构中为例...原创 2018-07-14 10:19:02 · 64640 阅读 · 86 评论 -
史上最简单的SpringCloud教程 | 第十三篇: 断路器聚合监控(Hystrix Turbine)(Finchley版本)
转载请标明出处: http://blog.csdn.net/forezp/article/details/70233227 本文出自方志朋的博客上一篇文章讲述了如何利用Hystrix Dashboard去监控断路器的Hystrix command。当我们有很多个服务的时候,这就需要聚合所以服务的Hystrix Dashboard的数据了。这就需要用到Spring Clou...原创 2018-07-14 10:19:59 · 55603 阅读 · 44 评论 -
史上最简单的 SpringCloud 教程 | 终章
转载请标明出处: http://blog.csdn.net/forezp/article/details/70148833 本文出自方志朋的博客错过了这一篇,你可能再也学不会 Spring Cloud 了!Spring Boot做为下一代 web 框架,Spring Cloud 作为最新最火的微服务的翘楚,你还有什么理由拒绝。赶快上船吧,老船长带你飞。终章不是最后一篇,它是一个...原创 2017-04-12 23:14:39 · 1989165 阅读 · 391 评论 -
Spring Cloud Sleuth进阶实战
为什么需要Spring Cloud Sleuth?微服务架构是一个分布式架构,它按业务划分服务单元,一个分布式系统往往有很多个服务单元。由于服务单元数量众多,业务的复杂性,如果出现了错误和异常,很难去定位。主要体现在,一个请求可能需要调用很多个原创 2017-08-06 22:37:05 · 124454 阅读 · 17 评论 -
如何在IDEA启动多个Spring Boot工程实例
在我讲解的案例中,经常一个工程启动多个实例,分别占用不同的端口,有很多读者百思不得其解,在博客上留言,给我发邮件,加我微信询问。所以有必要在博客上记录下,方便读者。step 1在IDEA上点击Application右边的下三角 ,弹出选项后,点击Edit Configurationstep 2打开配置后,将默认的Single instance only(单实例)的钩去掉。原创 2017-07-30 22:27:01 · 178960 阅读 · 45 评论 -
深入理解Zuul之源码解析
本文从源码的深入讲解了Spring Cloud Zuul。原创 2017-07-27 21:42:57 · 89958 阅读 · 10 评论 -
深入理解Hystrix之文档翻译
什么是Hystrix在分布式系统中,服务与服务之间依赖错综复杂,一种不可避免的情况就是某些服务将会出现失败。Hystrix是一个库,它提供了服务与服务之间的容错功能,主要体现在延迟容错和容错,从而做到控制分布式系统中的联动故障。Hystrix通过隔离服务的访问点,阻止联动故障,并提供故障的解决方案,从而提高了这个分布式系统的弹性。Hystrix解决了什么问题在复杂的分布式系统中,可能有成百上千个依赖原创 2017-07-19 09:16:25 · 63605 阅读 · 3 评论 -
深入理解Ribbon之源码解析
Ribbon是Netflix公司开源的一个负载均衡的项目,它属于上述的第二种,是一个客户端负载均衡器,运行在客户端上。它是一个经过了云端测试的IPC库,可以很好地控制HTTP和TCP客户端的一些行为。 Feign已经默认使用.原创 2017-07-08 14:48:05 · 103607 阅读 · 19 评论 -
深入理解Feign之源码解析
什么是FeignFeign是受到Retrofit,JAXRS-2.0和WebSocket的影响,它是一个jav的到http客户端绑定的开源项目。 Feign的主要目标是将Java Http 客户端变得简单。Feign的源码地址:https://github.com/OpenFeign/feign写一个Feign在我之前的博文有写到如何用Feign去消费服务,文章地址:http://blog.csdn原创 2017-06-20 09:31:13 · 152038 阅读 · 24 评论 -
深入理解Eureka之源码解析
Eureka的一些概念Register:服务注册 当Eureka客户端向Eureka Server注册时,它提供自身的元数据,比如IP地址、端口,运行状况指示符URL,主页等。Renew:服务续约 Eureka客户会每隔30秒发送一次心跳来续约。 通过续约来告知Eureka Server该Eureka客户仍然存在,没有出现问题。 正常情况下,如果Eureka Server在90秒没有收到Eu原创 2017-06-11 11:22:10 · 249574 阅读 · 25 评论 -
如何在springcloud分布式系统中实现分布式锁?
最近在看分布式锁的资料,看了 Josial L的《Redis in Action》的分布式锁的章节。实现思路是利用springcloud结合redis实现分布式锁。一、简介一般来说,对数据进行加锁时,程序先通过acquire获取锁来对数据进行排他访问,然后对数据进行一些列的操作,最后需要释放锁。Redis 本身用 watch命令进行了加锁,这个锁是乐观锁。原创 2017-04-03 11:01:42 · 97080 阅读 · 26 评论