Linux下搭建kafka


一、kafka是什么?

Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。

主要术语:

  • Broker:Kafka集群包含一个或多个服务器,这种服务器被称为broker
  • Producer:生产者,负责发布消息到Kafka broker
  • Consumer:消费者:从Kafka broker读取消息的客户端。
  • Consumer Group:消费者组:每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)。
  • 主要应用场景是:日志收集系统和消息系统。
    负载均衡原理:
  • 一个topic对应一种消息格式,因此消息用topic分类
  • 一个topic代表的消息有1个或者多个patition(s)组成
  • 一个partition应该存放在一到多个server上,如果只有一个server,就没有冗余备份,是单机而不是集群;如果有多个server,一个server为leader(领导者),其他servers为followers(跟随者),leader需要接受读写请求,followers仅作冗余备份,leader出现故障,会自动选举一个follower作为leader,保证服务不中断;每个server都可能扮演一些partitions的leader和其它partitions的follower角色,这样整个集群就会达到负载均衡的效果

二、使用步骤

1.安装相关包

安装jdk、zookeeper、kafka包,想要的话访问以下链接:
链接: https://pan.baidu.com/s/1F5Z08R4Xcgw01iHBYjhkPg
提取码: mpjc

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

2.依次启动服务

启动zookeeper:

sh zookeeper-server-start.sh ../config/zookeeper.properties

启动kafka:

sh kafka-server-start.sh ../config/server.properties

启动完毕后使用命令:jps查看是否启动成功
启动kafka:

jps

启动成功如下图:
在这里插入图片描述

3.安装过程中遇到了问题

提示:这里对文章进行总结:
1、配置静态ip
放假前在虚拟机中已经配置好ip了,将虚拟机挂起了,今天打开之后,使用ip addr命令后发现ip没有了,只有一个本地ip:127.0.0.1,通过查阅资料后,使用命令:
启动kafka:

systemctl stop NetworkManager
systemctl disable NetworkManager
service network restart

成功!
在这里插入图片描述
2、使用jps查看当前运行的进程
报:权限不够 解决方法
解决方法:在jdk目录下添加一个权限就可以了:

chmod +x /usr/local/java/jdk1.8/bin/jps

3、
在这里插入图片描述
解决方法:修改kafka下的config/server.properties为:

advertised.listeners=PLAINTEXT://10.1.192.196:9092
advertised.listeners=PLAINTEXT://10.1.192.196:9092

4、配置java_home、zookeeper、kafka

vi /etc/profile

在这里插入图片描述

三、运行

.进入kafka安装目录,创建一个名为helloWorld的topic。

bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic helloWorld
./kafka-console-producer.sh --broker-list localhost:9092 --topic helloWorld

输入要传递的消息:向名为helloWorld的topic发送消息,例如 hello kafka
消费者已经输出了刚才发送的消息,hello world实例搭建完成。

./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic helloWorld --from-beginning

结果如下图:
生产者:./kafka-console-producer.sh --broker-list localhost:9092 --topic helloWorld
在这里插入图片描述
消费者:./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic helloWorld --from-beginning
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值