RocketMQ – 消费者异常处理和图形化监控

在消费消息时,因为异常导致消费不成功的时候,RocketMQ默认会连续进行三次重试。 可以通过下面的代码测试一下: @StreamListener("input1")public void receiveInput1(@Payload Message message) throws ValidationException {    if (0 == count) {        //此处模拟的是...

RocketMQ – 事务消息

选择RocketMQ是因为它支持事务消息,它的事务消息实现过程如下: 1. 先发送一条半消息。 2. 处理业务逻辑。 3. 业务逻辑成功,则确认消息,这时候半消息会正式推送至消费者。业务逻辑失败,则回滚消息,这时候半消息会取消。 4. 因为异常情况,导致无法确认或者回滚时,利用回查接口轮询最终的业务处理结果,再确认或者回滚消息。 上面的过程都是我抄的,只不过边读边理解,然后用自己的话...

Spring Cloud Alibaba – 莫名其妙的异常

每一次对莫名其妙发生的异常刨根问底的时候,都是非常痛苦的经历,脑仁要炸掉的感觉。 本文基于: Spring Cloud Alibaba 2.2.0.Release Dubbo 最近吧,应用越来越多,规范也越来越重要,就想把Nacos的配置中心用起来。 去年已经进行过初步调研,这次算是再拾掇一下,感觉应该没什么难度。 开始在示例工程里面写例子的时候,还是相当轻松愉快的,但是想要替换一个工程落地测试一下...

RocketMQ – 与Spring Cloud Stream结合

最近在加班,五一看了一遍《钢之炼金术师》,空闲时间又对Netty产生了兴趣,还得陪闺女,然后TBC怀旧又要蹭一波热度去,所以时间不够用,更新十分缓慢。 我在学习RocketMQ怎么和Spring Cloud结合的时候,首先被下面这个问题困扰: Spring Cloud Bus和Spring Cloud Stream有什么不同?应用的场景都是什么样的? 后来吧,我得出了一个非常简单的结论,无论什么场景都用Spring Cloud Stream就完事了...

RocketMQ – 入门

最近鼓捣了几个小玩意: RocketMQCASJWT 有空就记录一下,顺便再梳理一下思路,以后看自己写的东西也比看别人的易于理解。 如何下载? RocketMQ的下载地址如下: http://rocketmq.apache.org/dowloading/releases/ RocketMQ对于JDK版本的要求还是挺清晰的: 这里测试的话,我没有下载源码进行编译,以后想看源码的话再说。直接下载的是rocketmq-all-4.8.0-bin-release.zip。 ...

Flowable6 – 获得待办

十年前,同时带三个项目,还能记清楚各种细节。十年后,记事本翻页,就已经记不清楚上一页内容了。 花有重开日,人无再少年。相逢拌酩酊,何必备芳鲜 距离上一篇好长时间了,今天有点力气,简单说说Flowable的待办吧。 其实所谓的待办,归根到底就是通过查询act_ru_identitylink这张表得到的。 如果使用它的API接口来实现,简单的代码如下: taskService.createTaskQuery().taskCandidateU...

Flowable6 – 获得下一节点

打了个疫苗,找个借口歇一下。面试太多,再找个借口歇一下。没啥内容可写,继续歇一下。 躺着是最舒服的。好了,言归正传(本文基于Flowable6.6测试通过)。 有的集成了流程引擎的系统提供流程执行预测功能,说白了就是按照流程图提前跑一下,看看会到达哪个节点。 要实现这个功能,大概的步骤如下:  获得当前的节点。获得当前节点的出口连接线。按照连接线获得下一个节点。如果是非用...

Flowable6 – 多实例子流程(会签的方案)

今天我要写这篇文章的时候,关注量变成了一个傻数,哈哈: 之前有一篇文章,介绍过基于多实例用户任务实现会签的方案 - 《Flowable6.4 - 会签实现方案》。 有的场景,使用多实例用户任务无法实现,比如下面这种会签场景: 在会签时,需要“部门普通员工”先审核,然后“部门主管”再审核,这种情况使用多实例用户任务显然无法实现,即使勉强实现,最终所描述的场景肯定有所欠缺。 在使用...

日志追踪

对于分布式系统,在某些场景下不但需要知道异常发生的位置,可能还需要知道异常发生时的上下游情况。 如果在日志中加入唯一标识来对上下游的信息进行分类,可以简单的满足日常的需要。 有两个开源项目实现了这个需求,分别是: //TLoghttps://gitee.com/bryan31/TLog.git//日志链路追踪https://gitee.com/ganbing518/trace.git 这两个项目的核心原理其实是一样的,都是通过Slf4j的MDC实现全局...

Flowable6 – 事件

​貌似从来没有专门介绍过Flowable的事件,只是在流程设计器部分提到过,那么就总结一下吧。 Flowable所有的事件类型,可以参见枚举: org.flowable.common.engine.api.delegate.event.FlowableEngineEventType 比如最常用的: /** * A task has been created. This is thrown when task is fully initialized (b...
Copyright © 字痕随行 保留所有权利.   Theme  Ality 京ICP备14039894号

用户登录

分享到: