java
文章平均质量分 85
xxx_520s
这个作者很懒,什么都没留下…
展开
-
kafka mirror maker之实现两个kafka集群之间的数据同步
Kafka MirrorMaker 是 Apache Kafka 提供的一个用于在不同 Kafka 集群之间复制数据的工具。它的主要用途是在多个数据中心、地理位置或集群之间实现数据同步和冗余,以提升数据的高可用性和容灾能力。以下是关于 Kafka MirrorMaker 的详细介绍。Kafka MirrorMaker 是一个非常有用的工具,用于在不同 Kafka 集群之间进行数据复制和同步。无论是简单的集群间数据传输,还是复杂的多数据中心部署,MirrorMaker 都能提供可靠的解决方案。原创 2024-09-14 17:59:26 · 1196 阅读 · 0 评论 -
我不小心污染公司gitlab的master分支怎么办?详细教你恢复
idea上删除本地分支,然后再将远程分支pull到本地即可。原创 2024-09-11 11:06:03 · 381 阅读 · 0 评论 -
扫库任务存在的问题
现在有一个扫库的定时任务,匹配条件是A表的sync字段为0且relId不为空,一次性扫描200条记录,然后按照主键id生序排列,会利用这批记录的relId字段去匹配B表的dataOriginId,因为dataOriginId的字段可能为空,所以这部分记录会失败,下次再扫描的时候这部分记录还是存在。原创 2024-08-22 09:23:11 · 191 阅读 · 0 评论 -
初始化接口VS增量同步实现全量同步VS全量同步VS导数完成数据初始化需求
作为数据中台,下游对接的系统一张新表,需要用到全量的数据,大概有15w左右,现在的状态是我已经写好了增量同步的需求,但是初始化需求因为刚开始没有沟通清楚导致现在临时加东西。原创 2024-08-20 17:21:15 · 446 阅读 · 0 评论 -
xxl-job的分片广播+单播及其应用实战
Bean 调度策略主要用于定义任务的实际执行逻辑。在 Spring 项目中,通常通过@XxlJob注解将某个方法注册为 XXL-JOB 的 JobHandler。@Component在 XXL-JOB 管理后台中,配置任务的 JobHandler 为,这个任务就会执行上述类中的execute方法。Bean 调度策略。原创 2024-08-17 00:56:25 · 1167 阅读 · 0 评论 -
mysql批量更新唯一键的失败行为和解决方案
在这种情况下,由于您要对具有唯一索引的namename = ACname = BACB然后根据返回的结果来决定是否进行更新。需要注意的是,在实际操作中,一定要先在测试环境中进行充分的测试,以确保更新操作的正确性和数据的安全性。对于(一),可以将发生冲突的记录收集起来作为响应,这样以方便调用方处理,同时打印日志用于分析和处理冲突。原创 2024-08-15 23:42:36 · 819 阅读 · 0 评论 -
关于主键设置为bigint unsigned,在java中用什么承接呢?
在 MySQL 数据库中,可表示的范围是 0 到 18,446,744,073,709,551,615。在 Java 中,long类型的取值范围是到,不能完全覆盖的范围。原创 2024-08-15 12:38:50 · 429 阅读 · 0 评论 -
spring同一个接口如何分页实现主表或主+联表group by查询
这样,我们就成功地实现了一个能够兼容旧功能并支持新功能的查询接口。通过在请求体中新增一个子表的查询字段来扩展逻辑,确保最大限度的代码复用和功能扩展。原创 2024-08-10 15:01:12 · 367 阅读 · 0 评论 -
关于数据库连接池超时时间设置的合理值讨论
快速失败短超时时间(如 100ms 或更短)能确保在数据库连接耗尽的情况下,线程会快速失败,释放资源,保持系统的敏捷性。动态调整对于每个系统,最佳的超时时间可能不同。在实际环境中,可以从100ms开始,逐步观察系统行为和性能,逐渐调整至最适设置。负载监控与调优不断监控系统负载和数据库连接池的使用情况,并相应优化连接池的配置参数(如最大连接数、释放策略等)。整体优化除了调整超时时间,还应评估数据库查询效率、索引优化、应用程序逻辑等因素,以降低数据库压力和提高应用响应能力。原创 2024-08-02 21:29:29 · 994 阅读 · 0 评论 -
细说java17新特性
要定义一个密封类或接口,需要使用sealed修饰符,并在声明中指定允许扩展或实现它的其他类或接口(使用permits子句)。子类或子接口可以使用finalsealed或non-sealed修饰符来进一步控制扩展或实现。密封类和密封接口通过限制继承和实现,提供了一种强有力的工具来增强代码的封装性、可读性和可维护性。这种特性在复杂的类型层次结构和公共API设计中尤为有用,使得代码设计更加受控和安全。结合模式匹配,密封类可以显著简化代码逻辑,提高代码的执行效率和安全性。原创 2024-07-31 15:38:40 · 818 阅读 · 0 评论 -
后端程序员常犯的错误-本地缓存相关bug和技术思考
(1)主要有两个,一个是当rpc调用异常的时候,会被try捕获并且直接return一个实例化的user对象,然后触发@Cacheable注解定义的本地缓存机制,导致异常调用的时候,对象也被缓存,随后直至本地缓存中该条目过期,后面的请求才会发起rpc请求更新缓存,所以。(2)rpc是暂时故障,被调用方会进行迅速(秒级)的故障转移,比如重启、切换,在故障切换期间。(2)rpc调用成功但是返回了一个空对象,这个时候我直接返回的是null值,,如果某一波大流量打进来,rpc服务甚至会挂掉,这个时候会发生缓存击穿。原创 2024-07-31 08:50:24 · 1064 阅读 · 1 评论 -
微服务系统面经之四: 以秒杀系统为例 - 用户秒杀状态的通知【京东支付后端一面】
使用异步消息系统,在用户发起秒杀请求后,可以迅速响应,然后在后台异步处理请求,并最终将处理结果返回给用户。这种方式不仅提高了系统的处理能力和伸缩性,还能提供更好的用户体验。在设计秒杀系统时,异步处理机制是提高系统性能的关键之一。WebSocket和SSE更适合需要实时通信的场景,如秒杀系统,它们可以减少延迟并提高用户体验。轮询更适合简单应用或对实时性要求不高的场景。尽管它的效率相对较低,但在一些场景中仍然是一个可行的解决方案。在选择合适的技术时,需要根据应用的具体需求和现有架构来决定。原创 2024-01-08 23:50:20 · 1365 阅读 · 0 评论 -
leetcode网格题目中的上下左右四个方向和旋转90度的数量关系的代码表示
这里, 表示向上移动, 表示向右移动, 表示向下移动, 表示向左移动。1.2 方向数组的一维表示方法一维数组表示:另一种方法是使用一维数组结合模运算来表示方向。例如,可以定义一个一维数组 和 ,分别表示 x 轴和 y 轴的变化:这里的数组同样表示上、右、下、左四个方向。1.3 旋转的处理初始化方向:假设机器人最初面向北方,可以用一个变量 来表示当前方向,初始设为 (表示向右)。右旋转 90 度:向右旋转意味着 的值增加 1。可以使用模运算来确保 的值不超过方向数组的长度:左原创 2024-01-08 22:45:30 · 1209 阅读 · 0 评论 -
系统设计类题目汇总五
给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。原创 2023-11-03 11:40:46 · 112 阅读 · 0 评论 -
一文带你彻底弄懂ZGC
这是一种内存优化技术,通过减小对象引用的大小来减少内存占用和提高性能。在启用压缩指针的情况下,对象引用不再直接存储对象的实际内存地址,而是存储一个相对于某个基地址的偏移量。这允许使用更小的数据类型来存储引用,从而减小其大小。加载屏障是在读取对象引用时自动添加的。在ZGC中,每次应用线程尝试通过染色指针访问对象时,加载屏障都会介入。加载屏障的目的是确保即使在垃圾收集过程中对象被移动,应用线程也能够无缝地访问对象。原创 2023-10-22 21:05:48 · 724 阅读 · 0 评论 -
深度思考线程池面经之一:线程的系统设计类题目
实现一个线程池,效果是这样的:当流量大的时候,线程数要多一点,当流量小的时候,缩的小一些,如果说线程数过多,线程池又不要炸掉,然后客户端可以阻塞原创 2023-08-06 18:07:34 · 265 阅读 · 0 评论