Kafka是由Apache软件基金会开发的一个高吞吐量的分布式发布订阅消息系统,由Scala和Java编写。官网地址:http://kafka.apache.org

0.基本概念

  Broker:Kafka集群包含一个或多个服务器,这种服务器被称为broker。
  Topic:每条发布到Kafka集群的消息都有一个主题名称,这个主题名称就被称为Topic。
  Partition:Partition是物理上的概念,每个Topic包含一个或多个Partition。
  Producer:消息生产者,负责发布消息到Kafka broker。
  Consumer:消息消费者,向Kafka broker读取消息的客户端。
  Consumer Group:每个Consumer属于一个特定的Consumer Group,group name可单独设定,若不设定则属于默认的group。

1.安装步骤

  系统:Centos7.2

  JDK:   java1.8

  另外需要安装zookeeper,可以使用已有的zookeeper服务,新版的kafka已内置了一个zookeeper环境,也可以直接使用。

  (1)下载

  kafka安装包下载地址:http://mirrors.shu.edu.cn/apache/kafka/2.1.0/kafka_2.11-2.1.0.tgz

  /bin 可执行脚本目录

  /config 配置文件目录

tar -xzf kafka_2.-2.1..tgz
cd kafka_2.-2.1.

  (2)启动zookeeper

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

  (3)配置kafka相关属性

broker.id=   //唯一标识
listeners=PLAINTEXT://:9092 指定服务的端口
advertised.listeners=PLAINTEXT://192.168.31.222:9092 如果要提供外网访问 必须配置此项
log.dirs=/tmp/kafka-logs- //日志目录

  (4)启动服务

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

  (5)检查服务

[root@localhost config]# netstat -tunlp|egrep "(2181|9092)"
tcp6 ::: :::* LISTEN /java
tcp6 ::: :::* LISTEN /java

2.集群配置

  所谓的kafka集群就是指多个broker组成的集群,通过zookeeper来进行管理。以下在本机部署三个broker组成的集群。

  首先将config/server.properties的复制三份,分别命名为server-0.properties、server-1.properties、server-2.properties,分别配置如下:

  server-0.properties:

broker.id=
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://192.168.31.222:9092
log.dirs=/tmp/kafka-logs-

  server-1.properties:

broker.id=
listeners=PLAINTEXT://:9093
advertised.listeners=PLAINTEXT://192.168.31.222:9093
log.dirs=/tmp/kafka-logs-

  server-2.properties:

broker.id=
listeners=PLAINTEXT://:9094
advertised.listeners=PLAINTEXT://192.168.31.222:9094
log.dirs=/tmp/kafka-logs-

  然后分别都启动就可以了:

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

  查看是否启动了:

[root@localhost ~]# netstat -tunlp|egrep "(2181|9092|9093|9094)"
tcp6 ::: :::* LISTEN /java
tcp6 ::: :::* LISTEN /java
tcp6 ::: :::* LISTEN /java
tcp6 ::: :::* LISTEN /java

3.客户端调用

  客户端使用.net core测试,使用官网推荐的confluent-kafka-dotnet类库

  生产者代码:通过192.168.31.222:9092发布消息

public static void Main(string[] args)
{
var conf = new ProducerConfig { BootstrapServers = "192.168.31.222:9092" };
Action<DeliveryReportResult<Null, string>> handler = r =>
Console.WriteLine(!r.Error.IsError
? $"Delivered message to {r.TopicPartitionOffset}"
: $"Delivery Error: {r.Error.Reason}"); using (var p = new Producer<Null, string>(conf))
{
for (int i=; i<; ++i){
p.BeginProduce("my-topic", new Message<Null, string> { Value = i.ToString() }, handler);
}
p.Flush(TimeSpan.FromSeconds());
}
}

  消费者代码:通过192.168.31.222:9093订阅接收消息

public static void Main(string[] args)
{
var conf = new ConsumerConfig
{
GroupId = "test-consumer-group",
BootstrapServers = "192.168.31.222:9093",
AutoOffsetReset = AutoOffsetResetType.Earliest
};
using (var c = new Consumer<Ignore, string>(conf))
{
c.Subscribe("my-topic");
bool consuming = true;
c.OnError += (_, e) => consuming = !e.IsFatal;
while (consuming)
{
try{
var cr = c.Consume();
Console.WriteLine($"Consumed message '{cr.Value}' at: '{cr.TopicPartitionOffset}'.");
}
catch (ConsumeException e){
Console.WriteLine($"Error occured: {e.Error.Reason}");
}
}
c.Close();
}
}

Kafka安装配置的更多相关文章

  1. Kafka 安装配置 windows 下

    Kafka 安装配置 windows 下 标签(空格分隔): Kafka Kafka 内核部分需要安装jdk, zookeeper. 安装JDK 安装JDK就不需要讲解了,安装完配置下JAVA_HOM ...

  2. 一、kafka 安装配置

    Kafka是什么 Kafka最初是由LinkedIn公司采用Scala语言开发的一个分布式.多分区.多副本且基于ZooKeeper协调的内部基础设置,现已捐献给Apache基金会.Kafka是一个流平 ...

  3. 3.kafka安装配置

    kafka安装配置 ### 1.集群规划 hadoop102 hadoop103 hadoop104 zk zk zk kafka kafka kafka jar包下载 http://kafka.ap ...

  4. Kafka 安装配置

    1. 下载安装kafka 下载地址:http://apache.fayea.com/kafka/ 解压安装包 tar zxvf kafka_版本号.tgz 2. 配置 修改kafka的config/s ...

  5. kafka安装配置及操作(官方文档)http://kafka.apache.org/documentation/(有单节点多代理配置)

    https://www.cnblogs.com/biehongli/p/7767710.html w3school https://www.w3cschool.cn/apache_kafka/apac ...

  6. 消息队列集群kafka安装配置

    1. 下载wget http://mirror.rise.ph/apache/kafka/0.11.0.0/kafka_2.12-0.11.0.0.tgz2. 安装tar xf kafka_2.12- ...

  7. Kafka 安装配置 及 简单实验记录

    1. 下载二进制文件并解压,并修改 broker.id 的值 wget http://apache.fayea.com/kafka/0.10.0.0/kafka_2.10-0.10.0.0.tgz - ...

  8. KAFKA安装+配置详解+常用操作+监控

    http://blog.csdn.net/hadas_wang/article/details/50056381 http://qiyishi.blog.51cto.com/5731577/18575 ...

  9. kafka系列一、kafka安装及部署、集群搭建

    一.环境准备 操作系统:Cent OS 7 Kafka版本:kafka_2.10 Kafka官网下载:请点击 JDK版本:1.8.0_171 zookeeper-3.4.10 二.kafka安装配置 ...

随机推荐

  1. How to Make Fibonacci Confusing

    前几天同事发了这么一段代码 (fn => (f => f(f))(f => fn(n => f(f)(n))) )(g => n => [1, 2].indexOf ...

  2. mysql中将多行数据合并成一行数据

    .1GROUP_CONCAT()中的值为你要合并的数据的字段名; SEPARATOR 函数是用来分隔这些要合并的数据的: ' '中是你要用哪个符号来分隔: 2.必须要用GROUP BY 语句来进行分组 ...

  3. C# 使用CsvHelper读取.csv文件

    1,先到包管理器下载 安装CsvHelper. 2,创建一个与csv文件字段名称相同的类 public class SurveyInfoModel { public string DIST_CD { ...

  4. Java中的String,StringBuilder,StringBuffer

    String被final修饰,不可变,每次更改其实是重新创建了一个对象.StringBuilder,StringBuffer是可变的. StringBuffer是线程安全的,StringBuilder ...

  5. python 三元运算符、推导式、递归、匿名函数、内置函数

    三目运算符 # 三目(元)运算符:就是 if...else...语法糖 # 前提:简化if...else...结构,且两个分支有且只有一条语句 # 注:三元运算符的结果不一定要与条件直接性关系 cmd ...

  6. 注解 springbootapplication 自动扫描所在包及其子包。会将有注解的加入到spring容器中

    注解 springbootapplication 自动扫描所在包及其子包.会将有注解的加入到spring容器中

  7. luogu P1602 Sramoc问题

    嗯...这篇题解写的原因是一位大佬网友问我的题 本蒟蒻为了纪念下这一刻,就写了 我只会写一写基本思路,经不起推敲 还是大家凑活看吧 重点来了 在bfs时,队列里的每个元素由一个高精度的数和那个数模m的 ...

  8. mac 下 clang++ 找不到头文件 stdlib.h

    因为要用 openmp库,用 clang++ 编译 c++程序,出现了如下报错: clang++ xx.cpp -o xx -fopenmp /usr/local/Cellar/llvm/7.0.0/ ...

  9. Nginx-反向代理实现

    Nginx 反向代理操作案例 Nginx反向代理的组件模块 upstream模块介绍->点我< http_proxy_module模块介绍->点我< 环境准备 1)四台服务器都 ...

  10. yii2 gridview默认排序

    Yii2 GridView 使用起来很方便,但是默认排序很是个问题,数据默认按 主键 正序排列 但是在使用过程中,大多数数据默认是 倒序才符合正常思维的. 第一次 的解决方法是在 直接为 Model添 ...