【六】阿伟开始搭建Kafka学习环境

阿伟开始搭建Kafka学习环境

概述

        上一篇文章阿伟学习了Kafka的核心概念,并且把市面上流行的消息中间件特性进行了梳理和对比,方便大家在学习过程中进行对比学习,最后梳理了一些Kafka使用中经常遇到的Kafka难题以及解决思路,经过上一篇的学习我相信大家对Kafka有了初步的认识,本篇将继续学习Kafka。

一、安装和配置

        学习一项技术首先要搭建一套服务,而Kafka的运行主要需要部署jdk、zookeeper、Kafka,Kafka是通过zookeeper来进行集群、broker、主题、分区等内容管理的。通过安装包的方式过于繁琐这里推荐使用docker容器的方式快速运行一套Kafka服务。

        首先我们拉取zookeeper镜像并构建和运行容器:

docker pull zookeeper

docker run -itd --name zookeeper -p 2181:2181 zookeeper:latest

        然后我们拉取Kafka镜像并构建和运行容器:

docker pull bitnami/kafka

docker run -d --name kafka -p 9092:9092 --link zookeeper:zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.90.39:9092 --env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 --env KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 bitnami/kafka:latest

        这样我们很快就运行了一套Kafka服务了,通常学习一项服务我们都想要一套可视化平台方便管理服务,这里我推荐一块可视化工具,部署方式如下:

docker pull nickzurich/efak:latest

docker run -d --name kafka-eagle -p 8048:8048 -e EFAK_CLUSTER_ZK_LIST="192.168.90.39:2181" nickzurich/efak:latest

访问地址 ip:8048,默认账号和密码Account:admin ,Password:123456,登录界面如下:

二、准备学习Kafka的demo工程

        这里选择springboot集成Kafka的方式来搭建学习demo工程,搭建了一个消费者和一个生产者工程,方便后续学习Kafka的一些特性:

我们需要引入如下依赖:

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

生产者工程实现如下:

配置文件

spring:
  kafka:
    producer:
      bootstrap-servers: 192.168.90.39:9092
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer

发送消息的关键代码如下:

@Autowired
private KafkaTemplate<String, String> kafkaTemplate;

public String sendMessage(String message) {
    logger.info(String.format("#### -> Producing message -> %s", message));
    this.kafkaTemplate.send(TOPIC, message);
    return message;
}

消费者工程实现如下:

配置文件

spring:
  kafka:
    consumer:
      bootstrap-servers: 192.168.90.39:9092
      group-id: group_id
      auto-offset-reset: earliest
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer

消费消息的关键代码如下:

@Service
public class Consumer {

    @KafkaListener(topics = "users", groupId = "group_id")
    public void consume(String message) throws IOException {
        log.info(String.format("#### -> Consumed message -> %s", message));
    }
}

通过上面的基础案例用户在学习的过程中可以继续扩展,从而学习Kafka其他的特性。

总结

        本文内容比较基础主要给大家提供了一个Kafka学习环境搭建的教程。

  • 12
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值