- 博客(4)
- 收藏
- 关注
原创 记一次Kafka消费消息防丢失和重复的解决方案
例如,对于新增用户相关的kafka消息,可以将用户的唯一标识作为消息的唯一标识处理,当用户标识在系统的数据库中出现,便可以认为这条消息是重复的。订阅拉取三个topic的消息,然后根据消息类型分别进行不同的处理。手动提交偏移量的一个弊端就是有可能实现消费的阻塞,因为偏移量的提交总是在消息处理的逻辑之后,而如果处理过程中出错,导致偏移量无法正常提交,就会一直循环消费这几条问题消息。防止消费阻塞,即当消息失败次数过多(超过阈值)的时候,将失败消息记录,并跳过该消息的处理,继续处理后续消息,并正常提交偏移量。
2024-12-27 17:15:49
1193
原创 记一次Java反射的简单使用方式
这段代码通过反射机制,动态地获取optPo对象的所有字段,然后检查每个字段的值是否为非null,以确定是否需要执行更新操作。核心逻辑获取所有字段(除id外)的值。如果存在任意一个字段的值不为null,则表示有需要更新的内容。根据是否有需要更新的内容,决定是否执行更新操作。
2024-12-10 10:44:16
862
原创 记录一种系统用户跨时区动态展示和存储的方案,并解决SimpleDateFormat的线程安全问题
规定日期格式、请求头当中时区对应的字段常量。定义一个Concurrenthashmap,用于缓存请求中用过的时区信息。提供一个获取请求当中时区的方法。/*** TimeZone::getTimeZone有锁* 缓存TimeZone*///从当前请求中获取TimeZone= null) {每次请求来临时,通过获取独立的实例。调用parse或format方法时,获取当前请求的时区。根据当前请求的时区设置实例的时区。最后调用父类的parse或format。
2024-11-21 19:38:04
1035
原创 SSO系统与下游系统通过Kafka传递消息时数据不一致的问题排查和解决
问题:更新记录时,员工id-新的主部门id作为表的主键,可能表中已经存在对应的记录导致更新失败(因为员工的非主部门中可能有这个部门,他作为负责人在里面,但是在A系统他并不属于那个部门)4、人员信息变更问题,根据mq新字段--变更人员所属的所有部门,防止主键冲突问题,更改对应部门的主部门表示字段。所属部门:先调B系统api查询人员的部门数据,主部门路径dept_id_path对比A系统会的人员的部门路径。4、人员信息变更的消息:人员变更时,添加字段----该人员所有负责部门的信息。
2024-11-19 19:44:42
361
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人