- 博客(6)
- 收藏
- 关注
原创 Docker Desktop 配置canal实现监听MySQL binlog发送到RabbitMQ
在这里我是选择了基于Binlog的实时同步,也就是用canal监听Mysql的binlog来实现同步,同时为了提高可靠性,我选择了利用消息队列来接收canal的消息,后续再由消费者来做插入es的操作。这一步主要是将canal.properties和instance.properties配置文件提取出来映射到Windows宿主机,后面的D:\Develop\canal只是一个自定义存放文件的目录,先按我们想要的配置好,然后再挂载到新的一个容器上。如果不知道怎么新建网络,可以去网上搜索,这里不赘述了。
2025-08-30 15:15:25
1006
原创 取消超时订单场景,RabbitMQ Listener远程调用时,获取不到UserContext的userId问题 解决方案
继续排查,发现是UserContext对象为空,导致获取不到userId。没有也无所谓,说明上游业务与UserContext无关(如此例中的监听器远程调用支付服务查询支付流水状态)。经过改造后,问题解决。上手调试时,却发现该方法卡在了远程调用查询支付流水状态这一行。在本例中,监听器收到消息时,发起远程调用,向支付服务查询支付流水状态。假如订单超时支付时间为30分钟,理论上说我们应该在下单时发送一条延迟消息,延迟时间为30分钟。而这种拦截器的写法显然前提是同步发起的远程调用,无法处理异步调用的情景。
2025-06-22 20:05:40
386
原创 Docker desktop部署Seata,SpringBoot启动时报错:can not register RM,err:can not connect to services-server.解决
这几天在学习微服务的过程中,利用Docker Desktop部署seata,spring微服务集成启动时这样报错:can not registerRM,err:can not connect to services-server;很明显,是spring客户端连不上seata导致的,而且还会重试连接,反复报错。powershell 输入如下命令(注意7099端口号的地址需根据自己的配置文件变动),7099是seata客户端控制台端口;配置完后,启动nacos,打开控制台详情页,即可看到seata服务已部署。
2025-06-12 21:18:48
604
原创 编译原理实验五-逆波兰表达式的产生及计算
将简单算术表达式转换为用逆波兰式,并计算用逆波兰式的值,加深对逆波兰式在代码编译中的用途。本实验只需要支持正数即可。任务1:简单表达式转换成逆波兰式的原则如下:设置一个输出队列,设置一个符号栈,为了处理方便,可以在输入简单表达式的最后加一个#,然后遍历表达式中的每个单元1读取新单元。2是数值,则放入输出队列中,回到第1步,不是则下一步。3是操作符(+-*/()),如符号栈顶为空或栈顶操作符优先级比当前操作符优先级低,则直接将当前操作符压入符号栈,回到第1步;
2024-12-17 15:31:39
944
原创 编译原理大作业-LR(1)分析法
构造LR(1)分析程序,利用它进行语法分析,判断给出的符号串是否为该文法识别的句子,了解LR(K)分析方法是严格的从左向右扫描,和自底向上的语法分析方法。2 输入字符串bab#,输出分析过程。找到当前Action,先把已知的打印。1 输入baba#,输出分析过程。输入字符串bab#,输出分析过程。输入baba#,输出分析过程。
2024-12-10 17:41:45
498
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅