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

news2024/11/25 16:42:17

阿伟开始搭建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学习环境搭建的教程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2061353.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PDPS软件 那智机器人 (丰田版)离线程序导出处理

在PDPS仿真软件中导出的那智机器人离线程序&#xff0c;一般是无法直接给TFD控制装置-那智机器人&#xff08;丰田式样版&#xff09;导入及识别使用。因此要对导出的程序进行转换编译处理&#xff0c;才能给TFD那智机器人&#xff08;丰田式样版&#xff09;导入离线程序。以下…

comfyUI工作流-Flux大模型应用/黑神话悟空角色生成(附lora)

​ 是什么让悟空开始搬砖&#xff0c;这莫不是新的副本 其实我们用AI就能生成这种黑神话悟空的衍生图片 让悟空做ceo&#xff0c;做老师&#xff0c;上工地搬砖 七十二变&#xff0c;体验人生百态 操作很简单&#xff0c;只需要一个comfyUI工作流&#xff0c;你就能任意生成…

Studying-CodeTop | 3. 无重复字符的最长子串、206. 反转链表、146. LRU 缓存

目录 3. 无重复字符的最长子串 206. 反转链表 146. LRU 缓存 解题过程&#xff1a; 3. 无重复字符的最长子串 题目&#xff1a;3. 无重复字符的最长子串 - 力扣&#xff08;LeetCode&#xff09; 学习&#xff1a;本题题意很好理解&#xff0c;我们需要从所有不含有重复…

Linux 软件编程学习第十七天

1.select的缺点&#xff1a; 1.select监听的文件描述符集合是一个数组&#xff0c;有上限&#xff08;1024个&#xff09; 2.select监听的文件描述符集合在应用层&#xff0c;内核层监听事件后需要传递给用户层带来资源开销 3.select需要用户手动查找产生事件的文件…

数据复制一(主从复制详解)

目录 一、主从复制 二、同步复制和异步复制 三、节点失效处理方案 四、复制日志的实现 五、复制滞后问题 读自己的写 单调读 前缀一致读 数据复制就是相同的数据在多台机器上传输&#xff0c;多台机器可以在一个机房也不可以跨区域。通过数据复制有以下好处&#xff1a…

「数组」希尔排序 / 区间增量优化(C++)

目录 概述 思路 核心概念&#xff1a;增量d 算法过程 流程 Code 优化方案 区间增量优化 Code(pro) 复杂度 概述 我们在「数组」冒泡排序|选择排序|插入排序 / 及优化方案&#xff08;C&#xff09;中讲解了插入排序。 它有这么两个特点&#xff1a; ①待排序元素较…

<数据集>无人机航拍不同高度牧羊识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;6065张 标注数量(xml文件个数)&#xff1a;6065 标注数量(txt文件个数)&#xff1a;6065 标注类别数&#xff1a;1 标注类别名称&#xff1a;[sheep] 序号类别名称图片数框数1sheep6065149785 使用标注工具&…

【Spring】初识Spring MVC

文章目录 前言一、MVC是什么&#xff1f;二、学习Spring MVC建立连接RequestMapping注解注解的使用细节 三、传递参数的情况传递单个参数1.传递String2.传递包装类/基本类型3.参数重命名(RequestParam) 传递多个参数传递对象传递数组传递集合参数为变量传递文件小细节 四、JSON…

MCAL--MCU (S32K144)

AutoSAR中MCU Driver主要提供了用于基本的控制器初始化、下电、复位功能的服务,同时也为其它MCAL层需要的功能提供对应的服务函数。通常来说在AutoSAR的架构中MCU主要支持以下几个功能: 1.初始化控制器的外设时钟、系统时钟、PLL等,对所有控制器内各个外设模块用到的时钟提供…

Spring之@Bean注解

1. 使用方式 1.1 Configuration Bean 1.1.1 创建实体类 User Data NoArgsConstructor public class User {private String name;public User(String name) {this.name name;} } 1.1.2 创建配置类 UserConfig Configuration public class UserConfig {Beanpublic User us…

Web客户端软件测试

目录 1.测试分类 按照软件产生的阶段划分 按照代码可见度划分 其他测试 2.质量模型&#xff1a;衡量一个软件质量的维度 3.软件测试 1.单功能测试 等价类划分法&#xff1a;一种用少量数据获得较好测试效果的工具 边界值分析法&#xff1a;一个边界范围限制选取测试数…

最近云计算领域有哪些重大进展?

在云计算领域&#xff0c;近期确实涌现出了一系列令人瞩目的重大进展。以下是一些关键点&#xff0c;为您概述了当前的科技动态&#xff1a; 中国云计算市场迅猛发展&#xff1a; 中国云计算市场正处于快速发展期&#xff0c;年复合增长率超过40%。公有云市场规模增长49.3%至32…

深信达反向沙箱:构筑内网安全与成本效益的双重防线

# 深信达反向沙箱&#xff1a;内网安全与成本控制的双重保障 在数字化时代&#xff0c;企业面临着日益复杂的网络安全挑战。内网安全尤其关键&#xff0c;因为它涉及到企业的核心数据和运营。深信达的反向沙箱技术&#xff0c;作为一种创新的安全解决方案&#xff0c;为政企单…

厦门凯酷全科技有限公司:抖音小店前沿的探索者与引领者

在数字经济浪潮席卷全球的今天&#xff0c;电商平台已成为推动消费升级、激发市场活力的关键力量。其中&#xff0c;抖音作为短视频与直播电商的佼佼者&#xff0c;正以其独特的内容生态和庞大的用户基础&#xff0c;重新定义着零售行业的边界。在这一背景下&#xff0c;厦门凯…

学习记录——day33 HTTP

目录 一、HTTP相关概念 二、客服端请求 1、请求首部 2、 响应首部 三、线程实现HTTP并发服务器 一、HTTP相关概念 1、HTTP&#xff0c;全称Hyper Text Transfer Protocol&#xff0c;用于万维网&#xff08;world wide web&#xff09;进行超文本学习的传输协议 2、HTTP属…

如何使用 Java 记录简化 Spring Data 中的数据实体

Java 开发人员一直依赖 Spring Data 来实现高效的数据访问。但是&#xff0c;随着 Java Records 的引入&#xff0c;数据实体的管理方式发生了重大变化。 在本文中&#xff0c;我们将讨论 Java Records 在 Spring Data 应用程序中的集成。我们将探讨使用 Java 记录创建健壮的数…

CGAL 线性插值(自然邻近坐标)

文章目录 一、简介二、实现代码三、实现效果一、简介 自然邻近坐标插值(Natural Neighbor Interpolation)是一种基于Voronoi图的插值方法。它被广泛应用于地理信息系统(GIS)、计算几何以及科学计算领域。该方法的核心思想是利用数据点的Voronoi单元来确定插值点的权重,从而…

基于java的酒店管理系统设计与实现

系统分析与设计 需求分析 1.系统概要 根据餐饮系统的流程&#xff0c;完成从用户登录到开台点菜&#xff0c;到结账收银&#xff0c;到统计一条线的信息化管理&#xff0c;因此整个餐饮管理信息系统的研发内容就是开发一整套餐饮管理信息系统&#xff0c;实现餐饮业务的计算…

【三维重建】2D Gaussian Splatting:几何准确的2D辐射场(更新中)

标题&#xff1a;2D Gaussian Splatting for Geometrically Accurate Radiance Fields 项目地址&#xff1a;https://github.com/hbb1/2d-gaussian-splatting 文章目录 功能输入输出 一、摘要二、引言深入分析解读 三、相关工作3.1新视角合成3.2 3D重建3.3 可微分基于点的图形…

Manim动画:相机的移动(MovingCameraScene)

1.相机的移动(MovingCameraScene) MovingCameraScene 是 Manim 中的一个类&#xff0c;用于创建可以移动的相机场景。这个类继承自 Scene&#xff0c;并提供了关于相机移动的额外功能。 MovingCameraScene(camera_class<class manim.camera.moving_camera.MovingCamera>…