IT评测·应用市场-qidao123.com技术社区
标题:
黑马点评 利用Kafka替换Redis消息队列
[打印本页]
作者:
笑看天下无敌手
时间:
2025-4-10 05:39
标题:
黑马点评 利用Kafka替换Redis消息队列
Redis Stream不仅利用起来不如Kafka方便,而且对于流量更大的场景,其性能也不如Kafka。因此利用Kafka来实现秒杀场景的异步读取是一个非常不错的选择。
一. 配置Kafka
要利用Kafka,首先需要添加依赖:
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
复制代码
然后对application.yaml文件进行配置:
spring:
kafka:
bootstrap-servers: localhost:9092
consumer:
group-id: voucher-order-group
auto-offset-reset: earliest
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer
properties:
spring.json.trusted.packages: "com.hmdp.entity"
producer:
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
复制代码
提前在Kafka中利用命令行创建一个”voucher-orders“的topic。固然也可以利用IDEA中的插件,如许更方便。以下展示命令行创建:
~/kafka-topics.sh --create --topic voucher-orders --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
复制代码
这里我利用的参数都是默认值。如果想要模仿真实环境,还可以手动配置一些参数。
到此Kafka的配置就完成了。
二. 利用Kafka替换Redis
接下来进行对源代码的改造。
1. 删除Redis消息队列的逻辑
首先与Redis消息队列的所有代码都可以删除:
private final ExecutorService SECKILL_ORDER_EXECUTOR = Executors.newSingleThreadExecutor();
// 需要引入AspectJWeaver依赖
// 需要给启动类加上@EnableAspectJAutoProxy(exposeProxy = true)的注解
private IVoucherOrderService proxy;
@PostConstruct // @PostC
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/)
Powered by Discuz! X3.4