spring boot kafka_架构成长之路:SpringBoot中三分钟上手日志堆积系统kafka(附源码)...

kafka消息堆积能力比较强,可以堆积上亿的消息,特别适合日志处理这种实时性要求不太高的场景,同时支持集群部署,相比redis堆积能力和可靠性更高

可以通过下面的步骤快速上手这个kafka

获取一个可用的kafka实例

可以使用docker一键启动一个kafka集群

git clone https://github.com/simplesteph/kafka-stack-docker-compose.gitcd kafka-stack-docker-composedocker-compose -f full-stack.yml up -d

操作效果如下

3c98d72ddb614c87af2387b19d223a0a

使用命令docker-compose -f full-stack.yml ps获取可以kafka监听的端口

3e547fdd31ea49fc895201ca86f00157

记下kafka监听的地址9092,这个后面会用到

8000端口是这个kafka的topic的ui界面,这个界面可以查看当前的topic列表,效果如下

3f20b9ee4f824e0eb2532bc230986251

这里也看到topic里保存的数据

准备案例项目

可以在https://start.spring.io/创建测试项目

dccd61b7873c40948badf02a94079948

需要加上下面这三个包

  1. spring-boot-starter-web
  2. spring-kafka
  3. lombok

在appliation.properties中配置kafka的地址和使用的group-id,这个group-id名称可以自行定义,比如:myconsumergroup

spring.kafka.bootstrap-servers=127.0.0.1:9092spring.kafka.consumer.group-id=myconsumergroup

用kafka客户端发送消息

使用一个spring boot的service封装kafka发送消息的代码,核心代码如下

package mykafka.service;import org.springframework.kafka.core.KafkaTemplate;import org.springframework.stereotype.Service;@Servicepublic class Producer { private final KafkaTemplate kafkaTemplate; private String topic = "自行定义的topic"; Producer(KafkaTemplate kafkaTemplate) { this.kafkaTemplate = kafkaTemplate; } public void send(String message) { this.kafkaTemplate.send(topic, message); System.out.println("Sent sample message [" + message + "] to " + topic); }}

然后编写一个接口调用这个发送kafka消息的service,核心代码如下:

@RestController@RequestMapping("/")@RequiredArgsConstructor(onConstructor = @__(@Autowired))public class MyController { private final Producer producer; @RequestMapping("/test1") public String test1() { producer.send(String.format("my message currentTimeMillis: %d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值