![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分布式
文章平均质量分 88
alwaysBrother
这个作者很懒,什么都没留下…
展开
-
redis同时设置key和过期时间实现分布式锁
/*** 用来处理消息*/static class AppStompFrameHandler implements StompFrameHandler { @Override public Type getPayloadType(StompHeaders headers) { return GreetingResponse.class; } @Override public void handleFrame(StompHeaders heade原创 2021-03-24 12:14:38 · 1658 阅读 · 0 评论 -
TCC-transaction源码(三):示例工程介绍
示例项目地址:https://github.com/changmingxie/tcc-transaction/tree/master-1.2.x/tcc-transaction-tutorial-sample一. 示例项目源码中各个类之间交互时序图二. 示例项目泳道流程图异常交易流程:正常交易流程:三. 示例项目主流程图...原创 2020-11-16 14:22:58 · 359 阅读 · 0 评论 -
调试dubbo-3.服务引用
/** * 通过websocket广播消息,发给所有定阅用户 * * @param subsAdd 用户的定阅地址 * @param msg 发送的内容,Json字符串格式 */public void broadCast(String subsAdd, Object msg) { messagingTemplate.convertAndSend(subsAdd, msg); log.info("BroadCast through webSocket successfull原创 2020-10-15 19:28:51 · 224 阅读 · 0 评论 -
调试dubbo-2.服务导出
使用SimpMessagingTemplate发送消息public class WebSocketHelperImpl { @Autowired private SimpMessagingTemplate messagingTemplate; /** * 通过websocket点对点发送单一定阅用户 * * @param subsAdd 用户的定阅地址,不需要拼接前缀和用户id * @param msg 发送的内容,Json字符串原创 2020-10-15 19:28:16 · 176 阅读 · 0 评论 -
调试dubbo-1
spring启动解析dubbo的bean定义 在dubbo-config-spring 的resources/META-INF/spring.handlers文件中,指定了dubbo的配置解析器, 用来解析dubbo配置文件中的那些标签。key是spring配置文件中的schemaLocation指定的,value是解析器类,一一对应。 spring容器启动阶段加载配置文件中bean定义的时候(org.springframework.beans.factory.xml.BeanDefinitio..原创 2020-10-15 19:27:36 · 161 阅读 · 0 评论 -
TCC-transaction源码(二):事务恢复
一、为什么需要恢复任务为了处理异常。在TCC事务下,假如A服务调用B服务,B服务超过事务恢复的时间还没有返回,就要取消事务,进行回滚操作,不能让事务一直这么挂着不结束。或者还没等B结果返回A服务就挂了,重启A服务后的遗留事务需要恢复。或者是B返回成功/失败后,A服务执行二阶段的确认提交/回滚事务的方法时候失败了,如果没有异常处理,A的资源便无法释放,事务无法结束。二、恢复任务初始化类public class RecoverScheduledJob { private TransactionR原创 2020-08-04 01:11:10 · 219 阅读 · 0 评论 -
TCC-transaction源码(一):Compensable注解和事务拦截器
一 、Compensable注解的两个切面@Pointcut("@annotation(org.mengyun.tcctransaction.api.Compensable)")org.mengyun.tcctransaction.spring.ConfigurableTransactionAspect顺序 Ordered.HIGHEST_PRECEDENCE;org.mengyun.tcctransaction.interceptor.ResourceCoordinatorAspect原创 2020-07-30 23:44:50 · 1494 阅读 · 0 评论 -
通过redisson源码看看它实现的分布式锁
redisson实现分布式锁,是通过一个hash结构存储的,形式如下:MY_LOCK 3444e697-8ab7-43ba-bfb5-28a38aeb1f02:1 1MY_LOCK 是我获取分布式锁的时候,通过redisson.getLock(“MY_LOCK”)定义的,它作为hash结构的key3444e697-8ab7-43ba-bfb5-28a38aeb1f02:1 作为hash结构的一个field,冒号后面的1是线程id。1 是field的值,作为当前线程重入锁的次数。每次原创 2020-06-13 18:58:37 · 577 阅读 · 0 评论 -
试一试Seata
安装Seata从https://github.com/seata/seata/releases下载最新版的安装包解压后的conf目录中的两个重要配置文件file.conf:配置存储方式、透传事务信息的NIO、事务组配置、锁配置等信息,file.conf.example文件中有可以参考的样例。这种文件形式的配置默认对应registry.conf文件内的file方式配置。registr...原创 2020-04-30 23:43:14 · 614 阅读 · 0 评论