Spring Cloud
文章平均质量分 95
c.
这个作者很懒,什么都没留下…
展开
-
Transactional outbox pattern
正常情况下(不发生消息发送到Broker失败的情况),只要我们是按照顺序往outbox table存入数据,并且Message Relay使用单线程从outbox table顺序拉取消息,并把消息投递到Message Broker,那么在正常情况下(不发生消息发送到Broker失败的情况)我们是能保证消息是顺序发送到Broker的。通过在数据库中创建 Outbox 表,将要发送的消息记录在 Outbox 表中,然后在事务提交之后,异步地读取 Outbox 表中的消息并将其发布到消息队列中。原创 2023-07-03 20:42:16 · 474 阅读 · 0 评论 -
Java分布式定时任务场景的思考与设计
其实还是具体业务场景具体分析,并没有哪一套设计就是能解决一切问题的"银弹"。当有分布式定时任务的场景,就可以结合实际场景来考虑一下以上的方案。原创 2022-09-06 21:00:00 · 1098 阅读 · 0 评论 -
Spring Cloud Stream 异常处理
文章目录Spring Cloud Stream 异常处理失败自动重试自定义错误处理逻辑全局异常处理死信队列参考Spring Cloud Stream 异常处理失败自动重试Spring Cloud Stream 支持失败之后自动重试,其实已经包含了默认的配置,但是我们可以通过如下的配置自定义我们的配置。spring: rabbitmq: host: 192.168.99.100 port: 5672 username: guest password: guest c原创 2020-08-01 12:41:08 · 1086 阅读 · 0 评论 -
Spring Cloud Stream 消费组和分区
文章目录Spring Cloud Stream 消费组Spring Cloud Stream 消息分区Spring Cloud Stream 消费组通常每个服务都不会以单节点的方式运行在生产环境中,当同一个服务启动多个实例的时候,这些实例会绑定到同一个消息通道的目标主题上。默认情况下,当生产者发出一条消息到绑定通道上,这条消息会产生多个副本被每个消费者实例接收和处理。但是在有些业务场景之下,我们希望生产者产生的消息只被其中一个实例消费,这个时候就需要为这些消费者设置消费组来实现这样的功能。实现的方式非原创 2020-08-01 00:13:59 · 1189 阅读 · 0 评论 -
Spring Cloud Stream 简单使用
文章目录Spring Cloud Stream 简单使用开启绑定功能绑定消息通道注入绑定接口注入消息通道消息生产与消费Spring Integration原生支持消息反馈参考Spring Cloud Stream 简单使用开启绑定功能在Spring Cloud Stream中,我们需要通过@EnableBinding注解来为应用启动消息驱动的功能,该注解我们在快速入门中已经有了基本的介绍,下面来详细看看它的定义:@Target({ElementType.TYPE, ElementType.ANNOT原创 2020-07-28 21:13:36 · 1239 阅读 · 0 评论 -
Spring Cloud Stream 快速入门
文章目录Spring Cloud Stream简介快速入门核心概念发布-订阅模式消费组消息分区源代码Spring Cloud Stream简介Spring Cloud Stream是一个用来为微服务应用构建消息驱动能力的框架。它可以基于Spring Boot 来创建独立的、可用于生产的Spring应用程序。它通过使用Spring Integration来连接消息代理中间件以实现消息事件驱动。Spring Cloud Stream为一些供应商的消息中间件产品提供了个性化的自动化配置实现,并且引入了发布-原创 2020-07-27 23:23:54 · 472 阅读 · 0 评论 -
Spring Cloud Data Flow 初尝试
文章目录Spring Cloud Data Flow 初尝试安装Spring Cloud Data FlowCreate TaskCreate Stream参考Spring Cloud Data Flow 初尝试安装Spring Cloud Data Flow在Spring Cloud Data Flow文档中介绍了几种在本地安装Spring Cloud Data Flow的方式。参考:https://dataflow.spring.io/docs/installation/local/我们这里原创 2020-07-27 20:42:11 · 527 阅读 · 1 评论 -
Spring Cloud Data Flow简介
文章目录Spring Cloud Data Flow简介Spring Cloud Data Flow介绍Server ComponentsApplication TypesLong-lived ApplicationsStreams with Sources, Processors and SinksShort-lived Applications参考Spring Cloud Data Flow简介Spring Cloud Data Flow介绍Spring Cloud Data Flow是用于构原创 2020-07-23 11:46:11 · 7037 阅读 · 0 评论 -
Spring Cloud Task 配置DataSource
文章目录Spring Cloud Task 配置DataSource源代码Spring Cloud Task 配置DataSourceSpring Cloud Task使用一个数据源来存储task执行的结果。默认情况下,提供一个内存中的H2实例来作为数据源。但是,在生产环境中,还是需要配置自己的数据源。如果只使用一个DataSource,并且该DataSourc同时用为业务数据存储和task执行结果的存储,那么所需要做的就是提供任何DataSource,比如MySQL。最简单的方法是通过Spring B原创 2020-07-18 23:22:58 · 500 阅读 · 0 评论 -
Spring Cloud Task 的生命周期
文章目录Spring Cloud Task 的生命周期TaskExecutionListener注解的方式参考源代码Spring Cloud Task 的生命周期生命周期是一个任务task实例运行的全过程,也是一个被配置为task的Spring Boot应用被执行的过程(通过添加@EnableTask注解配置)TaskExecutionListenerTaskExecutionListener允许我们为任务生命周期中发生的特定事件注册侦听器。创建一个实现TaskExecutionListener原创 2020-07-18 20:12:57 · 916 阅读 · 0 评论 -
Spring Cloud Task 快速入门
文章目录Spring Cloud Task 快速入门Spring Cloud Task 简要介绍运行环境数据库环境第一个 Spring Cloud Task 应用@EnableTask 注解CommandLineRunner和ApplicationRunner测试参考Spring Cloud Task 快速入门Spring Cloud Task 简要介绍Spring Cloud Task 允许用户使用Spring Cloud 开发和运行一个短生命周期的微服务。它主要就是来解决 short-lived原创 2020-07-18 17:21:03 · 7104 阅读 · 2 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 使用Swagger2自动生成RESTful API文档
文章目录使用Swagger2自动生成RESTful API文档参考源代码使用Swagger2自动生成RESTful API文档Swagger2可以帮助我们构建强大的RESTful API文档,具体的我就不多介绍了,可以参考最下面的链接。我直接上代码吧。首先我们需要加入依赖。<dependency> <groupId>io.springfox</gr...原创 2019-11-11 21:26:41 · 382 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud 基础设施搭建系列文章目录
文章目录说明Spring Cloud 基础设施搭建系列目录项目源代码说明首先声明一下,本人并不是什么大神,刚工作一年多,工作中也还没有涉及到Spring Cloud还有微服务这些。这一系列只是自己自学之后简单搭建的,并且这里记录一下自己学习的过程。我参考了很多的资料,也十分的感谢那些提供帮助的文章。当然这个项目中还存在很多的不足和还没有加入的模块,如果我的代码或者文章中有什么问题,也欢迎指出,...原创 2019-11-10 22:52:19 · 550 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 使用Flyway管理数据库版本
文章目录什么是FlywayFlyway 的特点使用Flyway管理数据库版本使用Flyway改造我们的集成测试参考源代码什么是FlywayFlyway 是一款开源的数据库版本管理工具,它更倾向于规约优于配置的方式。Flyway 可以独立于应用实现管理并跟踪数据库变更,支持数据库版本自动升级,并且有一套默认的规约,不需要复杂的配置,Migrations 可以写成 SQL 脚本,也可以写在 Ja...原创 2019-11-10 22:26:24 · 1323 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 Spring Cloud Contract契约测试
文章目录Spring Cloud Contract契约测试契约(Contract)生产者(服务提供方)提供定义好的契约消费者(服务调用方)使用存根参考源代码Spring Cloud Contract契约测试单元测试、组件测试和集成测试的一个共同特点是,会将应用的某一部分隔离开来去测试,而不是测试整个完整的应用。对于单元测试,被测单元只有一个或者很少几个类 ;对于集成测试,你在应用的边界测试应...原创 2019-11-10 15:11:57 · 968 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 Spring Boot Test单元测试环境搭建
文章目录Spring Boot Test单元测试环境搭建Service层的单元测试Controller层的单元测试Repository层的测试测试环境配置bootstrap-test.yml文件参考源代码Spring Boot Test单元测试环境搭建首先我用到了PowerMock和Mockito。所以先加入PowerMock和Mockito的依赖。PowerMock和Mockito的版本使...原创 2019-11-09 16:48:57 · 1276 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 Spring Boot Test集成测试环境搭建
文章目录集成测试@SpringBootTest的集成测试Spring Boot Test集成测试环境搭建参考源代码集成测试集成测试(Integration Testing,缩写为INT)将多个模块结合在一起进行测试,确保多个组件可以正确交互。当它失败表示你的各个代码块间无法有效协作。集成测试可以是下面其中一项:测试两个或多个类之间的交互。包含多层的测试。包括业务服务和持久层之间的交互。...原创 2019-11-09 11:32:09 · 943 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 设计RESTful API接口,实现统一格式返回
文章目录设计RESTful API接口,实现统一格式返回参考源代码设计RESTful API接口,实现统一格式返回我们需要对我们之前的API接口的response做一个简单的封装,实现统一的格式返回。首先我们创建一个统一状态码的类ResultCode,用来封装我们需要返回状态码的信息。通过这个状态码可以更好的应对我们业务异常,比如我们自定义的校验不通过,系统异常,权限不足之类的状态码。...原创 2019-11-06 21:45:41 · 656 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 整合Druid数据库连接池
文章目录Druid介绍整合Druid数据库连接池参考源代码Druid介绍Druid是阿里巴巴的一个开源项目,号称为监控而生的数据库连接池,在功能、性能、扩展性方面都超过其他例如DBCP、C3P0、BoneCP、Proxool、JBoss DataSource等连接池,而且Druid已经在阿里巴巴部署了超过600个应用,通过了极为严格的考验,这才收获了大家的青睐!整合Dru...原创 2019-11-03 13:19:31 · 1329 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 整合Spring Data JPA
文章目录Docker 安装Mysql整合Spring Data JPA引入依赖添加配置添加实体类JPA @MappedSuperclass 注解JPA @Column 注解JPA @Version 注解JPA @CreatedDate @CreatedBy @LastModifiedDate @LastModifiedBy 注解JPA @Id和@GeneratedValue 注解@JsonFor...原创 2019-11-02 10:55:10 · 732 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 使用Docker Compose编排Spring Cloud微服务
文章目录Docker Compose快速人门入门示例使用Docker Comose编排Spring Cloud微服务使用Maven插件读取Dockerfile进行构建使用Maven插件构建Docker镜像参考源代码Docker Compose快速人门Docker-Compose是Docker的一种编排服务,是一个用于在Docker上定义并运行复杂应用的工具,可以让用户在集群中部署分布式应用。...原创 2019-10-24 00:24:56 · 853 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 Spring Cloud Config Client 失败快速响应与超时重试
文章目录Spring Cloud Config Client 失败快速响应与重试测试参考源代码Spring Cloud Config Client 失败快速响应与重试Spring Cloud Config的客户端会先加载自己的配置文件,然后再开始连接ConfigServer进行配置加载。 当我们构建的应用较为复杂的时候, 可能在连接ConfigServer之前花费较长的启动时间, 而在一些特殊...原创 2019-10-22 22:16:12 · 2201 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 将微服务运行在Docker上
将微服务运行在Docker上我们需要把之前的微服务部署到docker上去,之前的微服务搭建可以翻看我博客的【Spring Cloud 基础设施搭建系列】我对之前的一些配置进行了抽取,抽取了common的配置,并且放置到配置中心,可以参考我的gitee:https://gitee.com/cckevincyh/spring-cloud-demo/tree/config-refactor/还解...原创 2019-10-20 19:17:33 · 482 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 使用Spring Cloud Bus自动刷新配置
文章目录使用/refresh 端点手动刷新配置使用Spring Cloud Bus自动刷新配置Spring Cloud Bus简介Docker安装RabbitMQ实现自动刷新架构改进Spring Cloud Config 使用安全认证后无法刷新配置端点参考源代码使用/refresh 端点手动刷新配置很多场景下,需要在运行期间动态调整配置。如果配置发生了修改,微服务要如何实现配置的刷新呢?之前...原创 2019-10-16 23:34:39 · 555 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 Spring Cloud Config的用户认证和高可用
Spring Cloud Config的用户认证Config Server是允许匿名访问的。为了防止配置内容的外泄,应该保护Config Server的安全。有多种方式做到这一点,例如通过物理网络安全,或者为Config Server添加用户认证等。首先我们需要给我们的cloud-config-server的pom文件中添加依赖<dependency> <g...原创 2019-10-13 21:02:34 · 595 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 使用Spring Cloud Config统一管理微服务配置
文章目录为什么要统一管理微服务配置Spring Cloud Config简介编写Config ServerSpring Cloud Config 参数配置本地存储配置的方式Config Server的端点Spring Cloud Config实现配置的"继承与"组合"编写Config Client多服务公共文件配置Config Server的占位符参考源代码为什么要统一管理微服务配置对于传统...原创 2019-10-12 23:30:38 · 877 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 使用Spring Boot Admin 监控服务
文章目录什么是 Spring Boot Admin?通过Admin Client的方式注册到Admin Server(HTTP方式 不需要eureka)创建Admin ServerAdmin Client 端源代码通过Eureka的方式注册到Admin Server源代码参考Spring Boot Actuator 提供了对单个 Spring Boot 的监控,信息包含:应用状态、内存、线程、...原创 2019-10-04 16:45:11 · 262 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 使用Spring Cloud Sleuth+Zipkin实现微服务的链路追踪
文章目录搭建链路追踪服务端(Zipkin服务端)创建Sleuth服务客户端配置链路追踪参考源代码我们知道,微服务之间通过网络进行通信。如果能够跟踪每个请求,了解请求经过哪些微服务(从而了解信息是如何在服务之间流动)、请求耗费时间、网络延迟、业务逻辑耗费时间等指标,那么就能更好地分析系统瓶颈、解决系统问题。因此,微服务跟踪很有必要。spring cloud sleuth提供了服务链路追踪,并兼...原创 2019-10-03 21:08:37 · 569 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 Zuul的路由重试和路由熔断
文章目录Zuul的路由熔断Zuul的路由重试Zuul超时时间参考源代码Zuul的路由熔断当我们的后端服务出现异常的时候,我们不希望将异常抛出给最外层,期望服务可以自动进行降级。Zuul给我们提供了这样的支持。当某个服务出现异常时,直接返回我们预设的信息。我们通过自定义的fallback方法,并且将其指定给某个route来实现该route访问出问题的熔断处理。主要实现FallbackProvi...原创 2019-10-02 17:31:11 · 623 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 使用Zuul构建微服务网关
文章目录Zuul简介编写Zuul微服务网关Zuul集成HystrixZuul的负载均衡Zuul的路由端点Zuul路由配置详解Zuul的安全与Header参考如果让客户端直接与各个微服务通信,会有以下的问题:客户端会多次请求不同的微服务,增加了客户端的复杂性。存在跨域请求,在一定场景下处理相对复杂。认证复杂,每个服务都需要独立认证。难以重构,随着项目的迭代,可能需要重新划分微服务。例如,...原创 2019-09-30 21:08:15 · 252 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 使用Turbine监控多个微服务
文章目录使用Turbine聚合监控数据Turbine简介使用Turbine监控多个微服务参考源代码使用Turbine聚合监控数据上一篇博文中讲到使用/hystrix.stream端点监控单个微服务实例。然而,使用微服务架构的应用系统一般会包含若干个微服务,每个微服务通常都会部署多个实例。如果每次只能查看单个实例的监控数据,就必须在Hystrix Dashboard上切换想要监控的地址,这显然很...原创 2019-09-21 21:13:13 · 313 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 使用Spring Boot Actuator和Hystrix Dashboard可视化监控数据
文章目录Hystrix断路器的状态监控Endpoints内置Endpoints健康检查Hystrix的监控使用Hystrix Dashboard可视化监控数据参考源代码Hystrix断路器的状态监控Spring Boot Actuator提供了很多监控端点。在Spring boot应用中,要实现可监控的功能,依赖的是 spring-boot-starter-actuator 这个组件。它提供...原创 2019-09-19 00:15:58 · 1136 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 使用Hystrix实现微服务的容错处理
文章目录实现容错的手段雪崩效应如何容错使用Hystrix实现容错Hystrix简介整合Hystrix参考实现容错的手段如果服务提供者响应非常缓慢,那么消费者对提供者的请求就会被强制等待,直到提供者响应或超时。在高负载场景下,如果不作任何处理,此类问题可能会导致服务消费者的资源耗竭甚至整个系统的崩溃。雪崩效应微服务架构的应用系统通常包含多个服务层。微服务之间通过网络进行通信,从而支撑起整个应...原创 2019-09-16 22:45:54 · 214 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 使用Feign实现声明式REST调用
文章目录Feign简介微服务整合Feign参考源代码Feign简介Feign是Netflix开发的声明式、模板化的HTTP客户端,其灵感来自Retrofit、JAXRS-2.0以及WebSocket。Feign可帮助我们更加便捷、优雅地调用HTTPAPI。在Spring Cloud中,使用Feign非常简单—创建一个接口,并在接口上添加一些注解,代码就完成了。Feign支持多种注解,例如Fe...原创 2019-09-15 17:04:00 · 224 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 将微服务注册到Eureka
将微服务注册到Eureka Server我们创建一个新的module, cloud-service-member。配置一下pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w...原创 2019-09-14 11:40:07 · 206 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 Eureka集群高可用搭建
文章目录Eureka Server的高可用构建一个双节点Eureka Server集群将应用注册到Eureka Server集群上参考源代码Eureka Server的高可用单节点Eureka Server并不适合线上生产环境。Eureka Client会定时连接Eureka Server,获取服务注册表中的信息并缓存在本地。微服务在消费远程API时总是使用本地缓存中的数据。因此一般来说,即使...原创 2019-09-13 21:18:08 · 228 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 Eureka搭建
文章目录注册中心Spring Cloud Eureka服务注册服务发现Eureka组件编与Eureka Server参考源代码注册中心关于注册中心的解决方案,dubbo 支持了 Zookeeper、Redis、Multicast 和 Simple,官方推荐 Zookeeper。Spring Cloud 支持了 Zookeeper、Consul 和 Eureka,官方推荐 Eureka。ZK...原创 2019-09-13 17:59:04 · 300 阅读 · 0 评论 -
【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目环境初始化
文章目录前提介绍项目环境初始化parent pom管理common module源代码前提介绍这个只是一个Spring Cloud 的个人学习项目,主要会涉及到一些Spring Cloud的基础设施,主要是个人的学习和记录。这系列的Spring Cloud Demo中所使用的Spring Cloud为Greenwich.RC1,使用的Spring Boot的版本为2.1.1.RELEASE。...原创 2019-09-09 22:44:16 · 438 阅读 · 0 评论 -
Spring Cloud 分布式配置中心
什么是配置中心在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。在spring cloud config 组件中,分两个角色,一是config server,二是confi...原创 2019-01-20 21:06:58 · 174 阅读 · 0 评论 -
Spring Cloud Hystrix 断路器
断路器(Hystrix)为什么需要 Hystrix?在微服务架构中,我们将业务拆分成一个个的服务,服务与服务之间可以相互调用(RPC)。为了保证其高可用,单个服务又必须集群部署。由于网络原因或者自身的原因,服务并不能保证服务的100%可用,如果单个服务出现问题,调用这个服务就会出现网络延迟,此时若有大量的网络涌入,会形成任务累计,导致服务瘫痪,甚至导致服务“雪崩”。为了解决这个问题,...原创 2019-01-20 19:24:09 · 198 阅读 · 0 评论