- 博客(35)
- 收藏
- 关注
原创 @KafkaListener的作用
org.springframework.kafka.annotation.KafkaListener 是 Spring Kafka 库中的一个注解,它用于在 Spring 应用程序中定义 Kafka 消息监听器。这个注解允许你将方法映射为 Kafka 消息的消费者,从而简化了 Kafka 消费者配置和消息处理的代码。
2024-10-08 05:45:52 125
原创 @KafkaListener注解中containerFactory属性的作用
在使用Spring Kafka时,containerFactory 属性是 @KafkaListener 注解中的一个选项,它允许你指定一个 ContainerFactory Bean 的名称。这个 ContainerFactory 负责创建和管理 Kafka 消息监听容器。
2024-10-07 09:58:39 298
原创 MySQL的ON DUPLICATE KEY UPDATE和REPLACE INTO
和是 MySQL 数据库中用于处理重复键值的两种不同方式。如果存在与要插入的记录具有相同唯一键或主键的记录,则会将新值更新到指定的列中。如果存在具有相同唯一键或主键的记录,则将删除该记录并插入新记录。因此,主要区别在于将执行更新操作,而将删除并插入新记录。选择使用哪个取决于您的需求和业务逻辑。如果您希望保留现有记录的其他值并只更新特定列,可以使用。如果您要完全替换重复键的记录,包括其他列的值,可以使用。
2024-10-05 09:39:27 503
原创 MeterSphere压测配置说明
这些参数共同决定了MeterSphere如何执行性能测试,以及如何模拟用户行为和网络流量。正确配置这些参数对于获得准确和有效的性能测试结果至关重要。更多详细信息和使用指南,可以参考MeterSphere的官方文档。在MeterSphere中,执行性能测试时的配置参数对测试结果有重要影响。
2024-10-03 09:26:38 312
原创 MyBatis-Plus如何分页查询?
MyBatis-Plus提供了一种简单而强大的分页查询功能,可以通过使用Page对象和Mapper接口中的方法来实现。
2024-09-29 06:12:30 550
原创 @Value能用在静态属性上吗?
在Spring框架中,@Value 注解通常用于注入外部配置值到非静态字段中。由于 @Value 注解依赖于Spring的依赖注入(DI)容器,它在初始化bean时解析值并将它们注入到相应的字段。由于静态字段不属于Spring容器管理的bean的生命周期的一部分,因此你不能直接将 @Value 注解用于静态字段。
2024-09-16 09:23:49 306
原创 @RequiredArgsConstructor是按类型注入还是按名称注入
@RequiredArgsConstructor 是 Lombok 库提供的一个注解,它用于自动生成构造函数,这个构造函数会包含类中所有被标记为 final 的字段以及带有 @NonNull 注解的字段。这个注解的目的是简化代码,避免重复编写构造函数。
2024-09-14 06:26:29 139
原创 @JSONField(name=xx)、@JsonProperty(value=xx)和@SerializedName的使用
@JSONField(name=xx)作用作用在get方法上,在序列化的时候(把对象转换为JSON串的时候),可以重新命名成指定的JSON数据的key名称;作用在set方法上,在反序列化的时候(解析JSON转为对象的时候),可以把数据绑定到对应的JAVA实体类属性上;作用在字段上,会在序列化和反序列的时候,把数据都绑定到对应的字段上。注意如果是使用JSON工具,上面的作用只能使用下面对应的方法;get:com.alibaba.fastjson.JSON#toJSONString(jav
2024-09-13 08:32:59 462
原创 Kafka如何实现失败重试?
生产者:通过配置重试参数和异步发送回调来实现失败重试。消费者:通过手动提交偏移量和使用Spring Kafka的错误处理机制来实现失败重试。幂等性:确保生产者和消费者处理消息的逻辑是幂等的,以避免重复处理消息导致的问题。死信队列:对于无法处理的消息,发送到死信队列进行监控和分析。通过上述方法,可以优雅地实现Kafka中消息发送和消费的失败重试,提高系统的健壮性和可靠性。
2024-09-10 06:31:10 475
原创 多条Kafka消息的key重复会怎样?
在org.apache.kafka.clients.producer.internals.DefaultPartitioner#partition方法中的注释【keyBytes serialized key to partition on (or null if no key)】可以看到,会通过key进行hash然后确定分区。在Kafka中,如果消息的key为null,那么Kafka会使用一个内置的分区策略来决定将这条消息发送到哪个分区。综上所述,是否发送具有相同key的消息取决于你的具体需求。
2024-09-08 17:44:44 817
原创 MyBatis的@MapKey的使用
在MyBatis中,@MapKey注解用于指定返回结果集是一个Map的集合时,映射结果集中的某列或字段作为Map的键(key)。
2024-08-29 08:43:08 201
原创 AQS算法简介
定义同步状态:确定同步器的同步状态表示什么。实现模板方法:根据同步器的类型(独占或共享),实现tryAcquiretryRelease和等方法。管理同步队列:使用AQS提供的和release方法来管理等待队列。实现查询方法:如有必要,实现getStatesetState等查询同步状态的方法。构建同步器:创建一个类实现同步器的逻辑,并使用AQS的方法来管理同步状态。
2024-08-23 20:58:53 368
原创 Java集合框架UML图
建议:在IntelliJ IDEA中打开【.uml】格式的源文件,方便修改或显示更详细、更清晰的内容。温馨提示:可找我免费获取【.uml】格式的源文件。
2023-09-04 22:28:14 105
原创 【张建飞:《程序员的底层思维》】看书笔记
本书涵盖程序员应知应会的16种思维能力,共18章,分为三部分。第一部分主要介绍抽象思维、逻辑思维、结构化思维、批判性思维、维度思维、分类思维、分治思维、简单思维,以及成长型思维等解决日常问题的基础思维能力。第二部分结合软件行业的特点,主要介绍解耦思维、契约思维、模型思维、工具化思维、量化思维、数据思维,以及产品思维等专业思维能力。第三部分主要是对上述思维能力的综合运用实践。
2023-08-31 09:40:43 210
原创 根据一个或多个属性对List去重
*** 按某个指定字段去重* @param keyExtractor - 需要去重的字段* @return <T> Predicate<T> - 谓词* @author 付聪*/super T,?
2023-08-20 21:30:10 974
原创 Stream流的使用
相同点用绿色字体标记,不同点用红色字体标记。在IDEA中打开UML文件,然后将排序改为【按字母顺序排序】,这样可以方便看到不同流之间的共同点,对比学习更容易把知识点记得牢固一些。将文件的“.png”删掉即可恢复成源文件Stream.uml.pngStream.drawio.pnghttps://doc.qzxdp.cn/jdk/17/zh/api/java.base/java/util/stream/BaseStream.html串行流stream:串行解决数据,不产生异步线程。并行流parallel
2023-08-13 10:46:36 75
原创 内部类的分类和作用
匿名内部类,就是没有名字的嵌套类。它是局部内部类一种特殊形式,也就是没有变量名指向这个类的实例,而且具体的类实现会写在这个类里面。匿名内部类可以使你的代码更加简洁,你可以在定义一个类的同时对其进行实例化。如果某个局部类你只需要用一次,那么你就可以使用匿名内部类@Override// TODO:@Override// TODO:有时候,使用内部类只是为了把一个类隐藏在另外一个类的内部,并不需要内部类有外围类对象的一个引用。为此,可以将内部类声明为static,这样就不会生成那个引用。
2023-07-30 13:39:21 53
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人