SpringBoot整合Kafka分布式消息中间件

项目中系统通知需要进行实时通知,选用Kafka,入门很简单,这里记录下来,方便查看。

1.什么是Kafka

Kafka是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的特性就是高吞吐量、消息持久化、高可靠性、高扩展性,可以实时的处理大量数据以满足各种需求场景;主要应用于消息系统、日志收集、用户行为追踪、流式处理等。

2.Kafka的下载与启动

下载:

可以去官网(http://kafka.apache.org/downloads)选择版本下载,为方便,博主这里提供已下载好的(方便演示以Windows方式启动,文件包含启动命令),点我

启动:

(Windows)进入Kafka的bin目录,由于Kafka是依赖zookeeper进行启动的,

输入命令启动zookeeper:bin\windows\zookeeper-server-start.bat config\zookeeper.properties,窗口不要关闭,

新打开窗口启动Kafka:bin\windows\kafka-server-start.bat config\server.properties

3.整合使用

引入Kafka依赖:

<dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka</artifactId>
</dependency>

配置application.properties:

spring.kafka.bootstrap-servers=localhost:9092
spring.kafka.consumer.group-id=test-consumer-group
spring.kafka.consumer.enable-auto-commit=true
spring.kafka.consumer.auto-commit-interval=3000

编写测试类:

@RunWith(SpringRunner.class)
@SpringBootTest
@ContextConfiguration(classes = CommunityApplication.class)
public class KafkaTests {

    @Autowired
    private KafkaProducer kafkaProducer;

    @Test
    public void testKafka() {
        kafkaProducer.sendMessage("test", "你好");
        kafkaProducer.sendMessage("test", "在吗");

        try {
            Thread.sleep(1000 * 10);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

}


//生产者
@Component
class KafkaProducer {

    @Autowired
    private KafkaTemplate kafkaTemplate;

    public void sendMessage(String topic, String content) {
        kafkaTemplate.send(topic, content);
    }

}

//消费者
@Component
class KafkaConsumer {

    //接收主题为test的消息
    @KafkaListener(topics = {"test"})
    public void handleMessage(ConsumerRecord record) {
        System.out.println("接收并消费消息:"+record.value());
    }


}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值