2024年7月2日

摘要: 随着业务规模的不断的增大, 系统的复杂度也越来越高, 公司软件架构也进入到了分布式微服务的阶段, 在这样的情况下每一次请求都有可能跨越多个项目, 传统的日志监控方式无法满足调用链路追踪, 这就导致问题定位/诊断服务变得复杂。但是使用中发现xxl-job的日志是没有traceId的,只能根据线程id来筛选日志,且跨服务后的日志查不到了。通过增加以上类,即可实现traceId注入,同时也增加了统一日志打印,不需要在每个定时任务入口都打印日志(如果不需要也可以去掉)。 阅读全文
posted @ 2024-07-02 16:52 知北游z 阅读(155) 评论(0) 推荐(0) 编辑

2024年6月20日

摘要: 剖析 Kafka 消息丢失的原因 Kafka消息丢失的原因通常涉及多个方面,包括生产者、消费者和Kafka服务端(Broker)的配置和行为。下面将围绕这三个关键点,详细探讨Kafka消息丢失的常见原因,并提供相应的解决方案和最佳实践。总的来说,Kafka消息丢失是一个涉及多个环节的问题,需要从生产者、Broker和消费者三个层面综合考虑。通过合理的配置和策略,结合监控和及时的应对措施,可以大幅降低消息丢失的风险,确保数据在分布式系统中的可靠传递。 阅读全文
posted @ 2024-06-20 16:45 知北游z 阅读(2053) 评论(1) 推荐(6) 编辑

2024年4月11日

摘要: 从 Oracle 到 MySQL 数据库的迁移之旅 添加一套针对MuSQL数据库CRUD的Dao和Mapper代码,同时我们写了一个注解以切面的方式实现根据配置实例化Oracle的Dao、MySQl的Dao、同时调用Oracle和MySQLDao的功能。​ 首先,我们需要设置一个新的MySQL数据库环境,这将作为我们的新数据源。我们有额外的数据核对方案,通过应用读Oracle,再异步读取MySQL并进行对比的方式进行业务表的数据核对。Oracle和MySQL的函数有一定对的相似性也要有一定的区别,下面表格列出了Oracle和MySQL常用函数的对比和区别。 阅读全文
posted @ 2024-04-11 15:06 知北游z 阅读(1578) 评论(0) 推荐(1) 编辑

2023年8月29日

摘要: 概述 Redis底层有六种数据类型包括:简单动态字符串、双向链表、压缩列表、哈希表、跳表和整数数组。这六种数据结构五大数据类型关系如下: String:简单动态字符串 List:双向链表、压缩列表 Hash:压缩列表、哈希表 Sorted Set:压缩列表、跳表 Set:哈希表、整数数组 数据类型和 阅读全文
posted @ 2023-08-29 22:25 知北游z 阅读(2239) 评论(0) 推荐(1) 编辑

2023年8月28日

摘要: Redis 为什么这么快? 作为一名后端软件工程师,工作中你肯定和 Redis 打过交道。但是Redis 为什么快呢?很多人只能答出Redis 因为它是基于内存实现的,但是对于其它原因都是模棱两可。那么今天就一起来看看是Redis 为什么快吧:Redis 为什么这么快? 阅读全文
posted @ 2023-08-28 23:28 知北游z 阅读(429) 评论(0) 推荐(1) 编辑

2023年8月25日

摘要: 虚拟机是如何调用方法的内容已经讲解完毕,从本节开始,我们来探讨虚拟机是如何执行方法中的字节码指令的。上文中提到过,许多Java虚拟机的执行引擎在执行Java代码的时候都有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选择,在本章中,我们先来探讨一下在解释执行时,虚拟机执行 阅读全文
posted @ 2023-08-25 16:09 知北游z 阅读(84) 评论(0) 推荐(0) 编辑

2023年8月24日

摘要: 方法调用并不等同于方法执行,方法调用阶段唯一的任务就是确定被调用方法的版本(即调用哪一个方法),暂时还不涉及方法内部的具体运行过程。在程序运行时,进行方法调用是最普遍、最频繁的操作,但前面已经讲过,Class文件的编译过程中不包含传统编译中的连接步骤,一切方法调用在Class文件里面存储的都只是符号 阅读全文
posted @ 2023-08-24 22:17 知北游z 阅读(50) 评论(0) 推荐(0) 编辑

2023年8月23日

摘要: 代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。 一、概述 在Java虚拟机规范中制定了虚拟机字节码执行引擎的概念模型,这个概念模型成为各种虚拟机执行引擎的统一外观(Facade)。在不同的虚拟机实现里面,执行引擎在执行Java代码的时候可能会有解释执行(通 阅读全文
posted @ 2023-08-23 23:10 知北游z 阅读(25) 评论(0) 推荐(0) 编辑

2023年8月22日

摘要: 类加载器 虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。 类加载器可以说是Java语言的一项创新,也是Java语言流行的重要原因之一,它最初是 阅读全文
posted @ 2023-08-22 23:06 知北游z 阅读(113) 评论(0) 推荐(0) 编辑

2023年8月21日

摘要: 虚拟机类加载的时机和过程 一、类加载的时机 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载( 阅读全文
posted @ 2023-08-21 22:48 知北游z 阅读(94) 评论(0) 推荐(0) 编辑