apache kafka系列之安装与使用

【分布式学习】消息中间件(MQ)学习:kafka 1,概念 Kafka是一种高吞吐量的分布式发布订阅消息系统,是观察者模式的一种实现。 1)特性 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。 高吞吐量 :即使是非常普通的硬件Kafka也可以支持每秒数百万的消息。 支持通过Kafka服务器和消费机集群来分区消息。 支持Hadoop并行数据加载。 Broker Kafka集群包含一个或............ 阅读详情

kafak安装与使用

1、前言

学习kafka的基础是先把kafka系统部署起来,然后简单的使用它,从直观上感觉它,然后逐步的深入了解它。
本文介绍了kafka部署方法,包括配置,安装和简单的使用。

2、Kafka的安装与配置

准备三台虚拟机,分别是node01,node02,node03,并且修改hosts文件如下:

vim /etc/hosts

#注意: 前面的ip地址改成自己的ip地址

 

192.168.40.133 node01

192.168.40.134 node02

192.168.40.135 node03

 

#3台服务器的时间要一致

#时间更新:

yum install -y rdate

rdate -s  time-b.nist.gov

2.1、基础环境配置

2.1.1、JDK环境

由于Kafka 是用Scala 语言开发的,运行在JVM上,因此在安装Kafka 之前需要先安装JDK 。

安装过程略过,我这里使用的是jdk1.8。

file

2.1.2、ZooKeeper环境

2.1.2.1、安装ZooKeeper

Kafka 依赖ZooKeeper ,通过ZooKeeper 来对服务节点、消费者上下线管理、集群、分区元数据管理等,因此ZooKeeper 也是Kafka 得以运行的基础环境之一。

#上传zookeeper-3.4.9.tar.gz到/export/software

cd /export/software

mkdir -p /export/servers/

tar -xvf zookeeper-3.4.9.tar.gz -C /export/servers/

#创建ZooKeeper的data目录

mkdir /export/data/zookeeper -p

cd /export/servers/zookeeper-3.4.9/conf/

#修改配置文件

mv zoo_sample.cfg zoo.cfg

vim zoo.cfg

 

#设置data目录

dataDir=/export/data/zookeeper

#启动ZooKeeper

./zkServer.sh start

#检查是否启动成功

jps

2.1.2.3、搭建ZooKeeper集群

#在/export/data/zookeeper目录中创建myid文件
vim /export/data/zookeeper/myid
#写入对应的节点的id,如:1,2等,保存退出

#在conf下,修改zoo.cfg文件
vim zoo.cfg
#添加如下内容
server.1=node01:2888:3888
server.2=node02:2888:3888
server.3=node03:2888:3888

2.1.2.3、配置环境变量

vim /etc/profile
export ZK_HOME=/export/servers/zookeeper-3.4.9
export PATH=${ZK_HOME}/bin:$PATH

#立即生效
source /etc/profile

2.1.2.4、分发到其它机器

scp /etc/profile node02:/etc/
scp /etc/profile node03:/etc/

cd /export/servers
scp -r zookeeper-3.4.9 node02:/export/servers/
scp -r zookeeper-3.4.9 node03:/export/servers/

2.1.2.5、一键启动、停止脚本

mkdir -p /export/servers/onekey/zk

vim slave

#输入如下内容

node01

node02

node03

#保存退出

 

vim startzk.sh

#输入如下内容

cat /export/servers/onekey/zk/slave | while read line

do

{

 echo "开始启动 --> "$line

 ssh $line "source /etc/profile;nohup sh ${ZK_HOME}/bin/zkServer.sh start >/dev/null 2>&1 &"

}&

wait

done

echo "★★★启动完成★★★"

#保存退出

 

vim stopzk.sh

#输入如下内容

cat /export/servers/onekey/zk/slave | while read line

do

{

 echo "开始停止 --> "$line

 ssh $line "source /etc/profile;nohup sh ${ZK_HOME}/bin/zkServer.sh stop >/dev/null 2>&1 &"

}&

wait

done

echo "★★★停止完成★★★"

#保存退出

 

#设置可执行权限

chmod +x startzk.sh stopzk.sh

 

#添加到环境变量中

export ZK_ONEKEY=/export/servers/onekey

export PATH=${ZK_ONEKEY}/zk:$PATH

2.1.2.6、检查启动是否成功

file

发现三台机器都有“QuorumPeerMain”进程,说明机器已经启动成功了。

检查集群是否正常:

zkServer.sh status

file

file

file

发现,集群运行一切正常。

2.2、安装Kafka

2.2.1、单机版Kafka安装

第一步:上传Kafka安装包并且解压

 

rz 上传kafka_2.11-1.1.0.tgz到 /export/software/

cd /export/software/

tar -xvf kafka_2.11-1.1.0.tgz -C /export/servers/

cd /export/servers

mv kafka_2.11-1.1.0/ kafka

第二步:配置环境变量

 

vim /etc/profile

 

#输入如下内容

export KAFKA_HOME=/export/servers/kafka

export PATH=${KAFKA_HOME}/bin:$PATH

 

#保存退出

source /etc/profile

第三步:修改配置文件

 

cd /export/servers/kafka

cd config

vim server.properties

 

# The id of the broker. This must be set to a unique integer for each broker.

# 必须要只要一个brokerid,并且它必须是唯一的。

broker.id=0

 

# A comma separated list of directories under which to store log files

# 日志数据文件存储的路径 (如不存在,需要手动创建该目录, mkdir -p /export/data/kafka/)

log.dirs=/export/data/kafka

 

# ZooKeeper的配置,本地模式下指向到本地的ZooKeeper服务即可

zookeeper.connect=node01:2181

 

# 保存退出

第四步:启动kafka服务

 

# 以守护进程的方式启动kafka

kafka-server-start.sh -daemon /export/servers/kafka/config/server.properties

第五步:检测kafka是否启动

file

如果进程中有名为kafka的进程,就说明kafka已经启动了。

2.2.2、验证kafka是否安装成功

由于kafka是将元数据保存在ZooKeeper中的,所以,可以通过查看ZooKeeper中的信息进行验证kafka是否安装成功。

file

file

file

2.2.3、部署kafka-manager

Kafka Manager 由 yahoo 公司开发,该工具可以方便查看集群 主题分布情况,同时支持对 多个集群的管理、分区平衡以及创建主题等操作。

源码托管于github:https://github.com/yahoo/kafka-manager

第一步:上传Kafka-manager安装包并且解压

 

rz上传kafka-manager-1.3.3.17.tar.gz到 /export/software/

cd /export/software

tar -xvf kafka-manager-1.3.3.17.tar.gz -C /export/servers/

cd /export/servers/kafka-manager-1.3.3.17/conf

第二步:修改配置文件

 

#修改配置文件

vim application.conf

#新增项,http访问服务的端口

http.port=19000

#修改成自己的zk机器地址和端口

kafka-manager.zkhosts="node01:2181"

#保存退出

第三步:启动服务

 

cd /export/servers/kafka-manager-1.3.3.17/bin

#启动服务

./kafka-manager -Dconfig.file=../conf/application.conf

 

#制作启动脚本

vim /etc/profile

export KAFKA_MANAGE_HOME=/export/servers/kafka-manager-1.3.3.17

export PATH=${KAFKA_MANAGE_HOME}/bin:$PATH

 

source /etc/profile

 

cd /export/servers/onekey/

mkdir kafka-manager

cd kafka-manager

vim start-kafka-manager.sh

nohup kafka-manager -Dconfig.file=${KAFKA_MANAGE_HOME}/conf/application.conf >/dev/null 2>&1 &

chmod +x start-kafka-manager.sh

vim /etc/profile

export PATH=${ZK_ONEKEY}/kafka-manager:$PATH

source /etc/profile

第四步:检查是否启动成功

打开浏览器,输入地址:http://node01:19000/,即可看到kafka-manage管理界面。

file

2.2.4、kafka-manager的使用

进入管理界面,是没有显示Cluster信息的,需要添加后才能操作。

  • 添加 Cluster:

file

输入Cluster Name、ZooKeeper信息、以及Kafka的版本信息(这里最高只能选择1.0.0)。

file

点击Save按钮保存。

file

添加成功。

  •  查看kafka的信息 file
  • 查看Broker信息
    file
  • 查看Topic列表
    file
  • 查看单个topic信息以及操作
    file
  • 优化副本选举
    file
  • 查看消费者信息
    file

2.2.5、搭建kafka集群

kafka集群的搭建是非常简单的,只需要将上面的单机版的kafka分发的其他机器,并且将ZooKeeper信息修改成集群的配置以及设置不同的broker值即可。

第一步:将kafka分发到node02、node03

 

cd /export/servers/

scp -r kafka node02:/export/servers/

scp -r kafka node03:/export/servers/

scp /etc/profile node02:/etc/

scp /etc/profile node03:/etc/

# 分别到node02、node03机器上执行

source /etc/profile

第二步:修改node01、node02、node03上的kafka配置文件

 

node01:

 

cd /export/servers/kafka/config

vim server.properties

zookeeper.connect=node01:2181,node02:2181,node03:2181

node02:

 

cd /export/servers/kafka/config

vim server.properties

broker.id=1

zookeeper.connect=node01:2181,node02:2181,node03:2181

node03:

 

cd /export/servers/kafka/config

vim server.properties

broker.id=2

zookeeper.connect=node01:2181,node02:2181,node03:2181

第三步:编写一键启动、停止脚本。注意:该脚本依赖于环境变量中的KAFKA_HOME。

 

mkdir -p /export/servers/onekey/kafka

vim slave

#输入如下内容

node01

node02

node03

#保存退出

 

vim start-kafka.sh

#输入如下内容

cat /export/servers/onekey/kafka/slave | while read line

do

{

 echo "开始启动 --> "$line

 ssh $line "source /etc/profile;nohup sh ${KAFKA_HOME}/bin/kafka-server-start.sh -daemon ${KAFKA_HOME}/config/server.properties >/dev/null 2>&1 &"

}&

wait

done

echo "★★★启动完成★★★"

#保存退出

chmod +x start-kafka.sh

 

vim stop-kafka.sh

#输入如下内容

cat /export/servers/onekey/kafka/slave | while read line

do

{

 echo "开始停止 --> "$line

 ssh $line "source /etc/profile;nohup sh ${KAFKA_HOME}/bin/kafka-server-stop.sh >/dev/null 2>&1 &"

}&

wait

done

echo "★★★停止完成★★★"

#保存退出

chmod +x stop-kafka.sh

 

#加入到环境变量中

export PATH=${ZK_ONEKEY}/kafka:$PATH

source /etc/profile

第四步:通过kafka-manager管理工具查看集群信息。
file

由此可见,kafka集群已经启动完成。

3、Kafka快速入门

对kafka的操作有2种方式,一种是通过命令行方式,一种是通过API方式。

3.1、通过命令行Kafka

Kafka在bin目录下提供了shell脚本文件,可以对Kafka进行操作,分别是:
file

通过命令行的方式,我们将体验下kafka,以便我们对kafka有进一步的认知。

3.1.1、topic的操作

3.1.1.1、创建topic

kafka-topics.sh --create --zookeeper node01:2181 --replication-factor 1 --partitions 1 --topic my-kafka-topic

 

#执行结果:

Created topic "my-kafka-topic".

参数说明:

 

zookeeper:参数是必传参数,用于配置 Kafka 集群与 ZooKeeper 连接地址。至少写一个。

partitions:参数用于设置主题分区数,该配置为必传参数。

replication-factor:参数用来设置主题副本数 ,该配置也是必传参数。

topic:指定topic的名称。

3.1.1.2、查看topic列表

kafka-topics.sh --list --zookeeper node01:2181

 

__consumer_offsets

my-kafka-topic

可以查看列表。

 

如果需要查看topic的详细信息,需要使用describe命令。

 

kafka-topics.sh --describe --zookeeper node01:2181 --topic test-topic

#若不指定topic,则查看所有topic的信息

kafka-topics.sh --describe --zookeeper node01:2181

3.1.1.3、删除topic

通过kafka-topics.sh执行删除动作,需要在server.properties文件中配置 delete.topic.enable=true,该配置默认为 false。

 

否则执行该脚本并未真正删除主题 ,将该topic标记为删除状态 。

 

kafka-topics.sh --delete --zookeeper node01:2181 --topic my-kafka-topic

 

# 执行如下

[root@node01 config]# kafka-topics.sh --delete --zookeeper node01:2181 --topic my-kafka-topic

Topic my-kafka-topic is marked for deletion.

Note: This will have no impact if delete.topic.enable is not set to true.

 

# 如果将delete.topic.enable=true

[root@node01 config]# kafka-topics.sh --delete --zookeeper node01:2181 --topic my-kafka-topic2

Topic my-kafka-topic2 is marked for deletion.

Note: This will have no impact if delete.topic.enable is not set to true.

 

# 说明:虽然设置后,删除时依然提示没有设置为true,实际上已经删除了。

3.1.2、生产者的操作

kafka-console-producer.sh --broker-list node01:9092 --topic my-kafka-topic

可以看到,已经向topic发送了消息。

 

3.1.3、消费者的操作

kafka-console-consumer.sh --bootstrap-server node01:9092 --topic my-kafka-topic

# 通过以上命令,可以看到消费者可以接收生产者发送的消息

 

# 如果需要从头开始接收数据,需要添加--from-beginning参数

kafka-console-consumer.sh --bootstrap-server node01:9092 --from-beginning --topic my-kafka-topic

file

3.2、通过Java Api操作Kafka

除了通过命令行的方式操作kafka外,还可以通过Java api的方式操作,这种方式将更加的常用。

3.2.1、创建工程

file

导入依赖:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"

         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <parent>

        <artifactId>itcast-bigdata</artifactId>

        <groupId>cn.itcast.bigdata</groupId>

        <version>1.0.0-SNAPSHOT</version>

    </parent>

    <modelVersion>4.0.0</modelVersion>

 

    <artifactId>itcast-bigdata-kafka</artifactId>

 

    <dependencies>

 

        <dependency>

            <groupId>org.apache.kafka</groupId>

            <artifactId>kafka_2.11</artifactId>

            <version>1.1.0</version>

        </dependency>

        <dependency>

            <groupId>org.apache.kafka</groupId>

            <artifactId>kafka-clients</artifactId>

            <version>1.1.0</version>

        </dependency>

        <dependency>

            <groupId>junit</groupId>

            <artifactId>junit</artifactId>

            <version>4.12</version>

        </dependency>

 

    </dependencies>

     

    <build>

        <plugins>

            <!-- java编译插件 -->

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-compiler-plugin</artifactId>

                <version>3.2</version>

                <configuration>

                    <source>1.8</source>

                    <target>1.8</target>

                    <encoding>UTF-8</encoding>

                </configuration>

            </plugin>

        </plugins>

    </build>

 

 

</project>

3.2.2、topic的操作

由于主题的元数据信息是注册在 ZooKeeper 相 应节点之中,所以对主题的操作实质是对 ZooKeeper 中记录主题元数据信息相关路径的操作。 Kafka将对 ZooKeeper 的相关操作封装成一 个 ZkUtils 类 , 井封装了一个AdrninUtils 类调用 ZkClient 类的相关方法以实现对 Kafka 元数据 的操作,包括对主题、代理、消费者等相关元数据的操作。对主题操作的相关 API调用较简单, 相应操作都是通过调用 AdminUtils类的相应方法来完成的。

 

package cn.itcast.kafka;

 

import kafka.admin.AdminUtils;

import kafka.utils.ZkUtils;

import org.apache.kafka.common.security.JaasUtils;

import org.junit.Test;

 

import java.util.Properties;

 

public class TestKafkaTopic {

 

    @Test

    public void testCreateTopic() {

        ZkUtils zkUtils = null;

        try {

            //参数:zookeeper的地址,session超时时间,连接超时时间,是否启用zookeeper安全机制

            zkUtils = ZkUtils.apply("node01:2181", 30000, 3000, JaasUtils.isZkSecurityEnabled());

 

            String topicName = "my-kafka-topic-test1";

            if (!AdminUtils.topicExists(zkUtils, topicName)) {

                //参数:zkUtils,topic名称,partition数量,副本数量,参数,机架感知模式

                AdminUtils.createTopic(zkUtils, topicName, 1, 1, new Properties(), AdminUtils.createTopic$default$6());

                System.out.println(topicName + " 创建成功!");

            } else {

                System.out.println(topicName + " 已存在!");

            }

        } finally {

            if (null != zkUtils) {

                zkUtils.close();

            }

        }

 

    }

}

测试结果:

file

3.2.2.1、删除topic

    @Test

    public void testDeleteTopic() {

        ZkUtils zkUtils = null;

        try {

            //参数:zookeeper的地址,session超时时间,连接超时时间,是否启用zookeeper安全机制

            zkUtils = ZkUtils.apply("node01:2181", 30000, 3000, JaasUtils.isZkSecurityEnabled());

            String topicName = "my-kafka-topic-test1";

            if (AdminUtils.topicExists(zkUtils, topicName)) {

                //参数:zkUtils,topic名称

                AdminUtils.deleteTopic(zkUtils, topicName);

                System.out.println(topicName + " 删除成功!");

            } else {

                System.out.println(topicName + " 不已存在!");

            }

        } finally {

            if (null != zkUtils) {

                zkUtils.close();

            }

        }

 

    }

测试结果:

file

3.2.3、生产者的操作

package cn.itcast.kafka;

 

import org.apache.kafka.clients.producer.*;

import org.apache.kafka.common.serialization.StringSerializer;

import org.junit.Test;

 

import java.util.Properties;

 

public class TestProducer {

 

    @Test

    public void testProducer() throws InterruptedException {

        Properties config = new Properties();

 

        // 设置kafka服务列表,多个用逗号分隔

        config.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "node01:9092,node02:9092");

        // 设置序列化消息 Key 的类

        config.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());

        // 设置序列化消息 value 的类

        config.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());

 

        // 初始化

        KafkaProducer<String, String> kafkaProducer = new KafkaProducer<String, String>(config);

        for (int i = 0; i < 100 ; i++) {

            ProducerRecord record = new ProducerRecord("my-kafka-topic","data-" + i);

            // 发送消息

            kafkaProducer.send(record);

            System.out.println("发送消息 --> " + i);

 

            Thread.sleep(100);

        }

 

        kafkaProducer.close();

 

    }

 

}

3.2.4、消费者的操作

package cn.itcast.kafka;

 

import org.apache.kafka.clients.consumer.ConsumerConfig;

import org.apache.kafka.clients.consumer.ConsumerRecord;

import org.apache.kafka.clients.consumer.ConsumerRecords;

import org.apache.kafka.clients.consumer.KafkaConsumer;

import org.apache.kafka.clients.producer.ProducerConfig;

import org.apache.kafka.common.serialization.StringDeserializer;

import org.apache.kafka.common.serialization.StringSerializer;

import org.junit.Test;

 

import javax.sound.midi.Soundbank;

import java.util.Arrays;

import java.util.Properties;

 

public class TestConsumer {

 

    @Test

    public void testConsumer() {

        Properties config = new Properties();

        // 设置kafka服务列表,多个用逗号分隔

        config.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "node01:9092,node02:9092");

        // 设置消费者分组id

        config.setProperty(ConsumerConfig.GROUP_ID_CONFIG, "my-group");

        // 设置序反列化消息 Key 的类

        config.setProperty(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName());

        // 设置序反列化消息 value 的类

        config.setProperty(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName());

 

 

        KafkaConsumer<String, String> kafkaConsumer = new KafkaConsumer<String, String>(config);

        // 订阅topic

        kafkaConsumer.subscribe(Arrays.asList("my-kafka-topic"));

 

        while (true) { // 使用死循环不断的拉取数据

            ConsumerRecords<String, String> records = kafkaConsumer.poll(1000);

            for (ConsumerRecord<String, String> record : records) {

                String value = record.value();

                long offset = record.offset();

                System.out.println("value = " + value + ", offset = " + offset);

            }

        }

 

    }

}

org.apache.kafka kafka_2.10 0.10.2.0 的jar包下载 依赖方式     org.apache.kafka     kafka_2.10     0.10.0.0 但是没有被中央仓库的任何jar包依赖!您可以在这里点击下载 立即下载

相关推荐

基于Python的高考志愿辅助填报系统

在实际应用中,系统需要处理更复杂的数据,包括更多的高校和专业信息、更详细的录取规则、以及用户的历史选择等。系统需要提供用户友好的界面,让考生输入自己的信息和偏好,然后通过后端的模型计算出推荐的志愿列表。此外,系统还应该提供一些个性化的服务,如根据考生的输入动态调整推荐策略、保存用户的填报历史和偏好等。特征可能包括考生的分数、所在省份、文理科类别、专业偏好、高校的地理位置、排名、专业的就业前景等。3. **推荐逻辑**:根据用户的分数和专业偏好,结合历史录取数据,使用简单的算法来推荐可能录取的高校和专业。

coder_wwwdy的博客 1976

Kafka基础篇

常用的KafkaProducer和KafkaConsumer用来连接Kafka集群的入口参数。设置是否启用自动提交offset,默认true(可不写)设置bootstrap-servers参数。设置bootstrap-servers参数。指定类对value进行反序列化。设置自动提交间隔时间(可不写)指定类对value进行序列化。指定类对key进行反序列化。指定类对key进行序列化。...

qq_51628990的博客 1246

安装升级最新版本postman时遇到“无法定位程序输入点 SetDefaultDllDirectories于动态链接库KERNEL32.dll 上.”的问题

软件版本迭代更新真快,最近升级最新Postman版本时出现以下问题 我就简单纪录下解决办法: 备注:我用的是最新的postman工具包:Postman-win64-7.25.0-Setup.exe,目前是最新 0. 前提是已经到postman官网https://www.postman.com/downloads/下载好软件工具包 1.安装window7系统更新补丁KB2533623,请到微软公司官网https://support.microsoft.com/en-us/help/2...

董广明的博客 1万+

Apache Kafka的架构以及使用

Apache Kafka 一、概述 Apache Kafka是一个分布式的流数据平台,代表三层含义: Publish/Subscribe: 消息队列系统 MQ(Message Queue) Process: 流数据的实时处理(Stream Process) Store: 流数据会以一种安全、容错冗余存储机制存放到分布式集群中 架构 应用场景 1.两大类: 构建实时的流数据管道,在系统和应用...

weixin_45316851的博客 736

window下迁移SVN仓库到新的windows服务器

window下迁移SVN仓库到新的windows服务器

Bertram的博客 4691

本届挑战赛亚军方案:基于大模型和多AGENT协同的运维

我们分别构建了异常检测基础模型,一旦系统接受到异常即会通知LLM主管Agent,主管Agent对异常问题进行决策与子领域Agent进行桥接,多个子领域Agent协同工作,实现运维故障自动诊断和多个任务模型的编排,提升运维效率。

weixin_52705010的博客 2292

Kafka简介:深入解析ApacheKafka

作者:禅与计算机程序设计艺术 Kafka 简介:深入解析 Apache Kafka 在当今高速发展的数据时代,分布式消息队列系统作为数据流通的中转站和分发中心,得到了越来越广泛的应用。Kafka是一款非常流行的开源分布式消息队列系统,以其高性能、可靠性、高可

AI天才研究院 5386

大模型时代必备技能:3种向量量化技术对比(PQ/AQ/RVQ)与选型指南

本文深入解析了大模型时代处理海量向量数据的关键技术——向量量化。通过对比Product Quantization (PQ)、Additive Quantization (AQ)和Residual Vector Quantization (RVQ)三种主流技术的核心原理、性能表现与适用场景,为工程师提供了从理论到实践的选型指南,旨在解决向量存储与检索的效率瓶颈,助力RAG等大模型应用高效落地。

silver的专栏 797

【Apache KafKa系列之一】KafKa安装部署

kafka是一种高吞吐量的分布式发布订阅消息系统,她有如下特性: 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。高吞吐量:即使是非常普通的硬件kafka也可以支持每秒数十万的消息。支持通过kafka服务器和消费机集群来分区消息。支持Hadoop并行数据加载。 卡夫卡的目的是提供一个发布订阅解决方案,它可以处理消费者规模的网站中

Jonathan.Wei的专栏 2万+

告别SquareLine!用免费的NXP GUI-Guider为海思3516AV300开发LVGL界面(附完整移植流程)

本文详细介绍了如何利用免费的NXP GUI-Guider工具为海思Hi3516AV300开发LVGL界面,包括环境配置、代码移植和性能优化等全流程实战指南。特别针对二维码组件缺失等常见问题提供解决方案,帮助开发者零成本构建高效嵌入式GUI系统。

weixin_28292761的博客 415

prplOS适配USB LAN网卡

本文介绍了将USB LAN网卡(如rndis0)适配到prplOS的LAN管理流程。

四儿家的小祖宗的博客 322

Apache Kafka教程A系列:安装步骤

原文地址:https://www.tutorialspoint.com/apache_kafka/apache_kafka_installation_steps.htm以下是在您的机器上安装Java的步骤。第1步 - 验证Java安装希望你现在已经在你的机器上安装了java,所以你只需使用下面的命令来验证它。$ java -version如果您的计算机上已成功安装Java,则可以看到已安装的Jav...

纸上得来终觉浅,绝知此事要躬行 412

从源码编译CesiumForUnreal

从源码编译CesiumForUnreal插件

专注GIS开发 5643

Ubuntu + Apache Kafka Installation

http://vulab.com/blog/?p=576 Aim of this Kafka Tutorial: Install Apache Kafka, Create a topic and use a producer to send test messages to Kafka Topics. Also launch a consumer to consume

leonpengweicn的专栏 1020

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Kafka运维实战 08 - kafka 3.7脚本工具最全整理汇总【建议收藏】

Kafka 脚本工具是 Apache Kafka 提供的一系列命令行工具,用于管理、监控和操作 Kafka 集群。这些工具位于 Kafka 安装目录的 bin 目录下(Windows 系统为 .bat 文件,Linux/Mac 为 .sh 文件)。以下是一些核心脚本工具的详细介绍kafka-broker-api-versions.sh 是 Kafka 自带的一个重要脚本工具,用于查询 Kafka Broker 支持的 API 版本信息。

cuiwin的专栏 1765

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Spring-Kafka

课程学习:https://www.jianshu.com/c/0c9d83802b0c Kafka的windows安装说明:https://blog.csdn.net/weixin_38004638/article/details/91893910 Kafka的历史版本下载:https://archive.apache.org/dist/zookeeper/ 如:zookeeper启动无法找到主类:使用zookeeper3.5.x的版本会出现你描述的问题,把版本还为3.4.x后可以解决该问题。 Apache

u011930054的博客 1560

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

apache kafka技术分享系列(目录索引) .

apache kafka中国社区QQ群:162272557 每当有新blog发布时,会在此处更新,欢迎大家拍砖共同成长 目录索引: 1)apache kafka消息服务 2)kafka在zookeeper中存储结构 3)kafka log4j配置 4)kafka replication设计机制 5)apache kafka监控系列-监控指标 6)kafka.common

xiao_jun_0820的专栏 1610

Kafka 安装和使用

Kafka简介 1)发布 & 订阅: 类似于⼀个消息系统,读写流式的数据 2)处理: 编写可扩展的流处理应⽤程序,⽤于实时事件响应的场景 3)存储: 安全的将流式的数据存储在⼀个分布式,有副本备份,容错的集群 ⽤于构建实时的数据管道和流式的app.它可以⽔平扩展,⾼可⽤,速度快 Kafka安装 (三个节点) 1,先要安装好zookeeper,因为 kafka 的元数据是保存在zookeep...

Java大数据 411

Apache Kafka 使用详解

随着技术的进步和社区的不断贡献,Kafka 的功能和性能将会进一步提升,为更多的实时数据处理场景提供强大的支持。因此,对于需要处理大规模实时数据的组织来说,学习和掌握Kafka 的使用是非常有价值的。生产者发送消息到指定的Topic,Kafka根据分区规则(如轮询、随机、基于key的哈希等)将消息分配到不同的Partition中。它支持连接多种数据源,如数据库、文件系统、云存储等。Kafka Streams 是一个用于构建实时流处理应用程序的客户端库,它允许开发者以声明式的方式处理Kafka中的数据流。

Aaron_945的博客 2017

【kafka系列】centos7系统安装kafka

目录一、准备二、安装与配置三、配置文件详解四、运行1.启动zookeeper服务2.启动kafka服务3.创建topic4.查看topic5.产生消息:kafka-console-producer.sh6.消费消息:kafka-console-consumer.sh7.查看描述 Topic 信息8.删除topic 一、准备 确保服务器上已经搭建完成JDK,zookeeper服务; 如果未搭建完成,请移步参考以下文章: 安装zookeeper: https://blog.csdn.net/xuan_lu/ar

增量星球 3706

如何在 Ubuntu 22.04 上安装和使用 Apache Kafka

Apache Kafka是一个高性能、低延迟的分布式流处理平台,广泛用于构建实时数据管道和流式应用。本文将指导你如何在Ubuntu 22.04系统上快速部署Apache Kafka,让你体验到Kafka在处理大规模实时数据流方面的强大能力。通过本教程,你将学会如何安装、配置Kafka及其依赖的Zookeeper服务,并进行基本的测试以确保部署成功。Apache Kafka的核心优势在于其高吞吐量和分布式、容错的特性,使其成为处理大规模实时数据流的理想选择。高吞吐量。

weixin_53510183的博客 3466

Apache Kafka 简介与使用

Kafka Apache Kafka is a distributed streaming platform. It has three key capabilities: 可以使你能pub/sub streams of records. 从这方面看,它很像一个消息队列。 使你可以存储streams of records in a falut-tolerant(容错的) way. 可

「有且仅有」 7617

Apache Kafka安装和使用(入门教程轻松学)

本入门教程,涵盖Kafka核心内容,通过实例和大量图表,帮助学习者理解,任何问题欢迎留言。 目录: kafka简介 kafka安装和使用 kafka核心概念 kafka核心组件和流程--控制器 kafka核心组件和流程--协调器 kafka核心组件和流程--日志管理器 kafka核心组件和流程--副本管理器 kafka编程实战 第二章Kafka安装和使用 单机环境 官...

稀有气体的技术博客 8214

Win10安装和使用Apache Kafka

Apache Kafka是一个开源的分布式流处理平台,广泛用于构建高性能的数据管道和流式应用程序。它能够处理大量数据,支持实时数据流的传输和处理,适用于日志收集、监控数据聚合、流式数据处理、在线和离线分析等多种大数据场景。Kafka具有高吞吐量、可扩展性强、低延迟的特点,它通过分区、复制和容错机制来保证数据的持久性和可用性。在Kafka中,数据以主题(topics)的形式组织,生产者将消息发送到特定的主题,消费者从主题中读取消息。

振华OPPO的博客世界 1947
上一篇: kafka server部署配置优化
下一篇: Kafka三款监控工具
wrr-cat
博客等级 码龄9年 128粉丝 302原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值