Java 实现简单单机时间轮方案 时间轮的使用场景自不必多说,最近研究RocketMQ 5.0时,想简单写一个活跃下思路,遂写了下面的方案(没有参照任何代码,没有优化),主要做下记录。 package top.imyzt.learning.algorithm.time... 2023-11-13
RocketMQ消息生产基本流程 RocketMQ 相较于 RabbitMQ、Kafka 能够集成两者的不少优点(原生的延迟消息、支持事务消息、能够支撑较大流量),加之Java技术架构,所以已作为目前队列选型调研时的第一选择,本文主要以图解形式讲明白RocketMQ一... 2023-11-12
FastJSON 序列化反序列化驼峰和下划线互转 在部分场景下,只需要简单将外部对象转换为标准JavaBean,而对接的外部是下划线命名时,如果需要一个个写JSONField必然是比较麻烦的,可以通过FastJSON提供的序列化/反序列化配置类来快速实现。 JSON是下划线,Bean... 2023-10-31
通过Spring工具类,父类获取子类泛型(多态泛型传参) 在平时需要写抽象策略处理器时,希望传给处理器执行器的对象是泛型,避免每个子类都写强制类型转换的代码,通常需要获取子类的泛型,然后才能够避免写@SuppressWarnings,可以通过如下工具类在Abstract类上面获取到子类泛型。... 2023-09-22
MySQL字符集不同转换字符集和排序规则 -- 转换编码不一致的情况 cast(ldr.id as char character set utf8) CONVERT(CAST(bpr.id AS char) USING utf8) --转换排序规则也不一致的情况 conver... 2023-09-04
go 新特性浅析(泛型) Golang在1.18时才支持了泛型,为此新增了两个操作符,|和~。 ~ T: 表示底层类型是T,比如 ~string表示所有基于string创建的自定义类型。 T1 | T2 |…: 代表或,类型列表之一。 Go的泛型... 2022-04-12
老版本ikbc c87 win(option)在Mac无法使用问题解决方案 解决方案 按住Fn+Del恢复出厂设置,option生效。IDEA跳单词问题解决! 后记 配置option与command键盘互换。 系统偏好设置-键盘-修饰键-配置command与option互换(注意「选择键盘」为USB键盘)。 2022-02-28
MySQL Explain 详解 详细讲解每一列的作用,当做字典查看。 前置知识 半连接 子查询物化 索引合并 table 无论查询语句中包含多少张表,最终都会转换为对单表的访问,所以EXPLAIN语句输出的每条记录都对应着对单表的访问方法,也即table列代表着表名... 2022-02-27
MySQL单表/连接访问方法 const 通过主键或者唯一二级索引列来定位一条记录的访问方法定义为const(常数级别,代价忽略不计)。 SELECT * FROM t WHERE id = xx; SELECT * FROM t WHERE 唯一索引column... 2022-02-26
Go 新特性 embed go 1.16版本开始,支持将静态资源文件打包至二进制文件啦~,在1.16版本之前,开源界提供了很多方案,终于在此版本官方提供了统一的解决方案。具体使用见官方文档:https://pkg.go.dev/embed import _ &... 2021-12-02