![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring Cloud
文章平均质量分 69
谦虚使人发胖
这个作者很懒,什么都没留下…
展开
-
rpc和http的区别
HTTP:如果是基于HTTP1.1的协议,请求中会包含很多无用的内容,如果是基于HTTP2.0,那么简单的封装以下是可以作为一个RPC来使用的,这时标准RPC框架更多的是服务治理。HTTP主要用于对外的异构环境,浏览器接口调用,APP接口调用,第三方接口调用等。RPC:使用自定义的TCP协议,可以让请求报文体积更小,或者使用HTTP2协议,也可以很好的减少报文的体积,提高传输效率。rpc的机制是根据语言的API(language API)来定义的,而不是根据基于网络的应用来定义的。转载 2022-11-01 11:06:10 · 250 阅读 · 0 评论 -
结合案例介绍Spring Cloud底层原理
目录一、业务场景介绍二、Spring Cloud核心组件:Eureka三、Spring Cloud核心组件:Feign四、Spring Cloud核心组件:Ribbon五、Spring Cloud核心组件:Hystrix六、Spring Cloud核心组件:Zuul七、总结概述毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓。因转载 2021-01-20 10:22:45 · 110 阅读 · 0 评论 -
SpringCloud多模块打包失败问题记录
项目采用了SpringCloud微服务架构,由于存在很多公共配置及工具类,所有抽离出一个公共模块供所有模块引用,但是对SpringCloud项目打包时总是提示找不到公共模块中的某个路径或者找不到main方法。原因:公共模块只是一个简单的maven项目,没有放置Application入口,不能使用“spring-boot-maven-plugin”进行打包解决办法;如果该插件是在每个项目的pom中设置的,删除公共模块中的该插件即可,如果是在SpringCloud父工程下统一设置的插件,则在公共原创 2020-09-23 10:02:53 · 1391 阅读 · 0 评论 -
@Transactional注解事务内层事务不影响外层事务的方法
1.问题目前有个两个方法,使用@Transactional声明事务。a方法中声明事务捕捉到Exception异常会回滚事务。现在当b方法中抛出异常,a方法就会回滚,目前有这样一个需求:当b方法抛出异常,a方法事务不回滚。@Transactional(rollbackFor=Exception.class)public String a() { this.bSerivce..b(); dosomething...}public String b() { dosomething...}转载 2020-09-16 16:38:18 · 4296 阅读 · 0 评论 -
Quartz在分布式集群环境下的应用(Spring、SpringBoot)
如果仅仅只是使用定时任务,可以使用Spring的schedule实现,方便,代码量少,只需引入必要依赖及一个简单的注解即可,类似@Scheduled(cron = "0 0 1 * * ?")public void schedule1 () { logger.info("=== 定时任务1 ===")}...原创 2020-04-08 15:11:24 · 3323 阅读 · 0 评论 -
史上最简单的SpringCloud教程 | 第十三篇: 断路器聚合监控(Hystrix Turbine)(Finchley版本)
上一篇文章讲述了如何利用Hystrix Dashboard去监控断路器的Hystrix command。当我们有很多个服务的时候,这就需要聚合所以服务的Hystrix Dashboard的数据了。这就需要用到Spring Cloud的另一个组件了,即Hystrix Turbine。一、Hystrix Turbine简介看单个的Hystrix Dashboard的数据并没有什么多大的价值,要想...转载 2018-10-16 16:24:17 · 274 阅读 · 0 评论 -
史上最简单的SpringCloud教程 | 第十一篇: docker部署spring cloud项目
一、docker简介Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。Docker通常用于如下场景:web应用的自动化打包和发布;自动化测试和持续集成、发布;在服务型环境中部署和调整数据库或其...转载 2018-10-16 16:32:19 · 219 阅读 · 0 评论 -
SpringCloud Config配置中心实现数据库持久化
Spring Cloud Config从Edgware版本开始新增了一种配置的方法,可以把配置信息放到数据库中,在SpringCloud项目启动的时候配置服务器从数据库中读取配置信息,分为配置服务器和客户端:配置服务器如下:配置服务器从数据库读取配置信息pom.xml <parent> <groupId>org.springframework.b...转载 2018-11-27 10:15:31 · 1255 阅读 · 0 评论 -
spring cloud -- eureka主动停止和恢复服务
开发SpingCloud项目时,一个开发组可能有多个人启动服务,将服务注册到Eureka中。当你想本机debug调试代码的时候,由于负载均衡的特性,很多时候服务调用跑不到你本机代码上。这时我们可以通过postman给eureka发送请求,剔除服务或者将剔除的服务恢复回来,方法如下:1.剔除服务:OUT_OF_SERVICEput请求:http://127.0.0.1:30000/eure...转载 2019-06-25 14:10:20 · 2355 阅读 · 0 评论 -
史上最简单的SpringCloud教程 | 第十二篇: 断路器监控(Hystrix Dashboard)(Finchley版本)
在我的第四篇文章断路器讲述了如何使用断路器,并简单的介绍了下Hystrix Dashboard组件,这篇文章更加详细的介绍Hystrix Dashboard。一、Hystrix Dashboard简介在微服务架构中为例保证程序的可用性,防止程序出错导致网络阻塞,出现了断路器模型。断路器的状况反应了一个程序的可用性和健壮性,它是一个重要指标。Hystrix Dashboard是作为断路器状态的...转载 2018-10-16 16:21:32 · 320 阅读 · 0 评论 -
史上最简单的SpringCloud教程 | 第四篇:断路器(Hystrix)(Finchley版本)
在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务瘫...转载 2018-09-27 17:56:24 · 132 阅读 · 0 评论 -
史上最简单的SpringCloud教程 | 第五篇: 路由网关(zuul)(Finchley版本)
在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现、服务消费、负载均衡、断路器、智能路由、配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统。一个简答的微服务系统如下图:注意:A服务和B服务是可以相互调用的,作图的时候忘记了。并且配置服务也是注册到服务注册中心的。在Spring Cloud微服务系统中,一种常见的负载均衡方式是,客户端的请求首先经过负载均衡(z...转载 2018-09-27 17:57:48 · 217 阅读 · 0 评论 -
史上最简单的SpringCloud教程 | 第二篇: 服务消费者(rest+ribbon)(Finchley版本)
在上一篇文章,讲了服务的注册和发现。在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的。Spring cloud有两种服务调用方式,一种是ribbon+restTemplate,另一种是feign。在这一篇文章首先讲解下基于ribbon+rest。一、ribbon简介Ribbon is a client side load balancer ...转载 2018-09-27 17:53:13 · 138 阅读 · 0 评论 -
史上最简单的SpringCloud教程 | 第三篇: 服务消费者(Feign)(Finchley版本)
上一篇文章,讲述了如何通过RestTemplate+Ribbon去消费服务,这篇文章主要讲述如何通过Feign去消费服务。一、Feign简介Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbo...转载 2018-09-27 17:55:15 · 106 阅读 · 0 评论 -
史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)(Finchley版本)
上一篇文章讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,都从配置中心读取文件,这时可以考虑将配置中心做成一个微服务,将其集群化,从而达到高可用,架构图如下:一、准备工作继续使用上一篇文章的工程,创建一个eureka-server工程,用作服务注册中心。在其pom.xml文件引入Eureka的起步依赖spring-cloud-start...转载 2018-09-27 18:00:57 · 148 阅读 · 0 评论 -
史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)(Finchley版本)
Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来。它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控。本文要讲述的是用Spring Cloud Bus实现通知微服务架构的配置文件的更改。一、准备工作本文还是基于上一篇文章来实现。按照官方文档,我们只需要在配置文件中配置 spring-cloud-starter-bus-amqp ;这就是说我们需要装rab...转载 2018-09-27 18:02:19 · 317 阅读 · 0 评论 -
史上最简单的SpringCloud教程 | 第九篇: 服务链路追踪(Spring Cloud Sleuth)(Finchley版本)
这篇文章主要讲述服务追踪组件zipkin,Spring Cloud Sleuth集成了zipkin组件。一、简介Add sleuth to the classpath of a Spring Boot application (see below for Maven and Gradle examples), and you will see the correlation data b...转载 2018-09-27 18:03:37 · 117 阅读 · 0 评论 -
史上最简单的SpringCloud教程 | 第十篇: 高可用的服务注册中心(Finchley版本)
文章 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka) 介绍了服务注册与发现,其中服务注册中心Eureka Server,是一个实例,当成千上万个服务向它注册的时候,它的负载是非常高的,这在生产环境上是不太合适的,这篇文章主要介绍怎么将Eureka Server集群化。一、准备工作Eureka can be made even more resi...转载 2018-09-27 18:09:12 · 302 阅读 · 0 评论 -
史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)(Finchley版本)
在上一篇文章讲述zuul的时候,已经提到过,使用配置服务来保存各个服务的配置文件。它就是Spring Cloud Config。一、简介在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程G...转载 2018-09-27 17:59:28 · 126 阅读 · 0 评论 -
史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)
一、spring cloud简介鉴于《史上最简单的Spring Cloud教程》很受读者欢迎,再次我特意升级了一下版本,目前支持的版本为Spring Boot版本2.0.3.RELEASE,Spring Cloud版本为Finchley.RELEASE。Finchley版本的官方文档如下:http://cloud.spring.io/spring-cloud-static/Finchley...转载 2018-09-27 17:50:22 · 216 阅读 · 0 评论