自定义博客皮肤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和TxClient TxServer是分布式事务协调器,主要负责接收每个参与者事务开启和结束的上报信息,并做持久化。协调补偿子事务,达到事务的最终一致。 TxClient是分布式事务客户端,主要负责上报事务开启和结束结果信息。 2.业务接入 业务服务需要引入TxClient依赖 <dependency> <groupId>com.mw</groupId&gt

2021-03-29 16:47:26 1585

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

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

2021-03-29 15:18:37 1339

原创 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 713 2

原创 基于注解异步开发

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

2021-03-01 20:05:23 182

原创 threadLocal简单介绍

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

2020-11-27 17:09:07 156

原创 SpringBoot中Cache缓存解析

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

2020-07-11 16:05:16 652

转载 synchronized简介

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

2020-06-22 16:26:02 266

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

一.逻辑来源: 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 198

空空如也

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

TA关注的人

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