自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 分布式事务(Saga模式)

分布式事务(Saga模式)(解决mq,api分布式事务问题)一 概览1.分布式事务包含两个组件TxServer和TxClientTxServer是分布式事务协调器,主要负责接收每个参与者事务开启和结束的上报信息,并做持久化。协调补偿子事务,达到事务的最终一致。TxClient是分布式事务客户端,主要负责上报事务开启和结束结果信息。2.业务接入业务服务需要引入TxClient依赖<dependency> <groupId>com.mw</groupId&gt

2021-03-29 16:47:26 1134

原创 分布式事务(Saga模式)

分布式事务(Saga模式)概览分布式事务包含两个组件TxServer和TxClientTxServer是分布式事务协调器,主要负责接收每个参与者事务开启和结束的上报信息,并做持久化。协调补偿子事务,达到事务的最终一致。TxClient是分布式事务客户端,主要负责上报事务开启和结束结果信息。业务接入业务服务需要引入TxClient依赖 com.mw mw-transaction-client-starter 0.0.1-SNAPSHOT

2021-03-29 15:18:37 785

原创 rabbitMQ框架(消费幂等,消息可靠性等)

一.架构图二.开启相应mq配置1.启动类中开启mq配置注解2.绑定生产者消费者管道3.在你的配置中心(consul,Apollo等)添加基础配置三.生产者执行流程1.首先定义一个发送消息的接口2.实现消息的接口3.通过BinderAwareChannelResolver中获取massageChannel实例调用send方法通过管道发送消息四.消费者消费1.streamlistener监听消息2.消费后无论成功与否会调用channel中的ack或nack方法,让生产者确

2021-03-27 17:34:20 463 2

原创 基于注解异步开发

一. 基本开发及配置1.在Spring Boot 启动类添加注解//开启异步调用 @EnableAsync2.在需要使用异步调用的方法头上添加注解@Async3.需要取得异步计算方法的结果添加注解@Async的方法返回值写成:@Asyncpublic Future<ApiResult> doTaskOne() throws Exception { log.info("开始做任务"); //业务逻辑 ApiResult apiResul...

2021-03-01 20:05:23 90

原创 threadLocal简单介绍

ThreadLocal简介变量值的共享可以使用public static的形式,所有线程都使用同一个变量,如果想实现每一个线程都有自己的共享变量该如何实现呢?JDK中的ThreadLocal类正是为了解决这样的问题。ThreadLocal类并不是用来解决多线程环境下的共享变量问题,而是用来提供线程内部的共享变量,在多线程环境下,可以保证各个线程之间的变量互相隔离、相互独立。在线程中,可以通过get()/set()方法来访问变量。ThreadLocal实例通常来说都是private static类型的,它

2020-11-27 17:09:07 70

原创 SpringBoot中Cache缓存解析

一、Cache缓存的作用随着时间的积累,应用的使用用户不断增加,数据规模也越来越大,往往数据库查询操作会成为影响用户使用体验的瓶颈,此时使用缓存往往是解决这一问题非常好的手段之一。Spring 3开始提供了强大的基于注解的缓存支持,可以通过注解配置方式低侵入的给原有Spring应用增加缓存功能,提高数据访问性能。在Spring Boot中对于缓存的支持,提供了一系列的自动化配置,使我们可以非常方便的使用缓存。1.核心接口Java Caching定义了5个核心接口,分别是CachingProvider,

2020-07-11 16:05:16 467

转载 synchronized简介

synchronized并发编程是Java程序员最重要的技能之一,也是最难掌握的一种技能。它要求编程者对计算机最底层的运作原理有深刻的理解,同时要求编程者逻辑清晰、思维缜密,这样才能写出高效、安全、可靠的多线程并发程序。本系列会从线程间协调的方式(wait、notify、notifyAll)、Synchronized及Volatile的本质入手,详细解释JDK为我们提供的每种并发工具和底层实现机制。在此基础上,我们会进一步分析java.util.concurrent包的工具类,包括其使用方式、实现源码及其

2020-06-22 16:26:02 145

转载 设计模式-责任链介绍

一.逻辑来源:1.chain.doFilter:filter-链路,web.xml里面配置几个,几个串联起来后形成链路进行逻辑执行chain.doFilter将请求交给过滤链路执行下一个filter,如果web.xml中没有下一个filter,执行的就是你自己的资源。例如web.xml中:<filter-mapping><filter-name>myfilter</filter-name><url-pattern>/output.jsp<

2020-06-12 17:29:01 115

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除