kafka叢集安裝
首先了解幾個kafka中的概念:
kafka是一個訊息佇列伺服器,服務稱為broker, 訊息傳送者稱為producer, 訊息接收者稱為consumer;通常我們部署多個broker以提供高可用性的訊息服務叢集.典型的是3個broker;訊息以topic的形式傳送到broker,消費者訂閱topic,實現按需取用的消費模式;建立topic需要指定replication-factor(複製數目, 通常=broker數目);每個topic可能有多個分割槽(partition), 每個分割槽的訊息內容不會重複:
假定我們有一個名稱為test的topic, 分割槽數目為2, 當我們傳送到這個test具體的訊息"msg1:hello beijing"和"msg2:hello shanghai"的時候,我們如何知道訊息的傳送路徑呢(發往哪個分割槽)?
msg1如果被髮送到分割槽test.1,則肯定不會傳送到test.2. 資料傳送路徑選擇決策受kafka.producer.Partitioner的影響:
interface Partitioner {
int partition(java.lang.Object key, int numPartitions);
}
一個虛擬碼的實現如下:
package org.mymibao.mq.client;
import kafka.producer.Partitioner;
public class DefaultKafkaPartitioner implements Partitioner {
private final static int FIRST_PARTITION_ID = 1;
public int partition(Object key, int numPartitions) {
return FIRST_PARTITION_ID;
}
}
kafka安裝配置參考:
1)下載KAFKA
$ wget
2)配置$KAFKA_HOME/config/server.properties
我們安裝3個broker,分別在3個vm上:zk1,zk2,zk3:
zk1:
$ vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=zk1
$ vi $KAFKA_HOME/config/server.properties
broker.id=0
port=9092
host.name=zk1
advertised.host.name=zk1
...
num.partitions=2
...
zookeeper.contact=zk1:2181,zk2:2181,zk3:2181
zk2:
$ vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=zk2
broker.id=1
port=9092
host.name=zk2
advertised.host.name=zk2
...
num.partitions=2
...
zookeeper.contact=zk1:2181,zk2:2181,zk3:2181
zk3:
$ vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=zk3
broker.id=2
port=9092
host.name=zk3
advertised.host.name=zk3
...
num.partitions=2
...
zookeeper.contact=zk1:2181,zk2:2181,zk3:2181
3)啟動zookeeper服務, 在zk1,zk2,zk3上分別執行:
$ zkServer.sh start
4)啟動kafka服務, 在zk1,zk2,zk3上分別執行:
$ kafka-server-start.sh ../config/server.properties
5) 新建一個TOPIC(replication-factor=num of brokers)
$ kafka-topics.sh --create --topic test --replication-factor 3 --partitions 2 --zookeeper zk1:2181
6)假設我們在zk2上,開一個終端,傳送訊息至kafka(zk2模擬producer)
$ kafka-console-producer.sh --broker-list zk1:9092 --sync --topic test
在傳送訊息的終端輸入:Hello Kafka
7)假設我們在zk3上,開一個終端,顯示訊息的消費(zk3模擬consumer)
$ kafka-console-consumer.sh --zookeeper zk1:2181 --topic test --from-beginning
原文:http://blog.csdn.net/ubuntu64fan/article/details/2668
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29754888/viewspace-1267107/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Kafka叢集安裝Version2.10Kafka
- TiDB叢集安裝TiDB
- StarRocks 叢集安裝
- Kubernetes 叢集安裝
- 【redis叢集安裝】Redis
- cdh 叢集安裝
- kubernetes叢集安裝
- ElasticSearch 6.6.0叢集安裝Elasticsearch
- Hadoop叢集安裝配置Hadoop
- Elasticsearch 叢集安裝部署Elasticsearch
- ZooKeeper叢集安裝和部署
- elasticsearch叢集安裝(3臺)Elasticsearch
- Flink(四)叢集安裝(二)
- redis cluster 4.0.9 叢集安裝搭建Redis
- Zookeeper介紹與叢集安裝
- k8s 叢集安裝K8S
- WAS中介軟體垂直叢集安裝
- WAS中介軟體水平叢集安裝
- k8s叢集安裝-kubeadm安裝K8S
- elasticsearch叢集安裝+安全驗證+kibana安裝Elasticsearch
- WeblogicServer11G叢集安裝與配置WebServer
- MariaDB +Centos+MMM 叢集安裝除錯CentOS除錯
- ceph叢集安裝報錯解決方法
- centos7下zookeeper叢集安裝部署CentOS
- etcd簡介及叢集安裝部署使用
- 安裝Kafka叢集Kafka
- ElasticSearch 叢集安全Elasticsearch
- Kubernetes叢集部署史上最詳細(一)Kubernetes叢集安裝
- Oracle 11G RAC叢集安裝(2)——安裝gridOracle
- Oracle 11G RAC叢集安裝(3)——安裝OracleOracle
- 完全分散式模式hadoop叢集安裝與配置分散式模式Hadoop
- 02.Flink的單機wordcount、叢集安裝
- Hadoop3.0完全分散式叢集安裝部署Hadoop分散式
- elasticsearch-7.17.15 叢集安裝部署及kibana配置Elasticsearch
- Spark2.4.5叢集安裝與本地開發Spark
- 快速安裝 kafka 叢集Kafka
- 大資料叢集搭建 – 2. CDH叢集安裝 – NTP,MYSQL,nginx安裝大資料MySqlNginx
- redis-cluster叢集安裝(基於redis-3.2.10)Redis
- 第06講:Flink 叢集安裝部署和 HA 配置