Golang 连接Kafka

Kafka介绍

Kafka是Apache软件基金会开发的一个开源流处理平台,由Java和Scala编写;Kafka是一种高吞吐、分布式、基于订阅发布的消息系统。

Kafka名称解释

Producer:生产者

Consumer:消费者

Topic:消息主题,每一类的消息称之为一个主题

Broker:Kafka以集群的方式运行,可以由一个或多个服务器组成,每个服务器叫做一个broker

Partition:物理概念上的分区,为了提供系统吞吐量,在物理上每个Topic会分为一个或多个Partition

Kafka架构图

一个典型的Kafka集群中包含若干Producer,若干broker(Kafka支持水平扩展,一般broker数量越多,集群吞吐率越高),若干Consumer Group,以及一个Zookeeper集群。

Kafka通过Zookeeper管理集群配置及服务协同,Producer使用push模式将消息发布到broker,Consumer通过监听使用pull模式从broker订阅并消费消息。

图上有个细节需要注意,producer给broker的过程是push,也就是有数据就推送给broker,而consumer给broker的过程是pull,是通过consumer主动去拉数据的,而不是broker把数据主动发送给consumer端的。

Kafka与RabbitMQ比较

Kafka比RabbitMQ性能要高

RabbitMQ比Kafka可靠性要高

因此在金融支付领域使用RabbitMQ居多,而在日志处理、大数据等方面Kafka使用居多。

原文地址:https://www.cnblogs.com/vincenshen/p/9824486.html

时间: 2024-10-21 03:35:13

Golang 连接Kafka的相关文章

windows下用golang连接mssql

版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 安装Microsoft SQL Server Native Client 安装golang的mssql驱动 写测试代码 我擦,最近下了几十个G的数据(哈哈,你们懂的),都是mssql格式的,需要处理下.想用golang处理,于是就需要golang连接mssql. 1.安装Microsoft SQL Server Native Client 去官方下载吧,下载地址: [plain] view plain copy print?

golang连接orcale

使用glang有一段时间了,最开始其实并不太喜欢他的语法,但是后来熟悉之后发现用起来还挺爽的.之前数据库一直使用mysql,连接起来没有什么问题,github上有很多完善的驱动,所以以为连接其他数据库也应该没什么问题,近日听说其连接orcale比较麻烦,所以就试了试. 之所以连接orcale比较麻烦是因为orcale并没有提供golang的驱动,所以并不能像java那样引入个驱动包就能连接,也不能像mysql之类的开源数据库可以自己实现驱动.不过正所谓天无绝人之路,既然纯go实现不了,那么还可以

SpringBoot 连接kafka ssl 报 CertificateException: No subject alternative names present 异常解决

当使用较新版本SpringBoot时,对应的 kafka-client 版本也比较新,如果使用了 2.x 以上的 kafka-client ,并且配置了 kafka ssl 连接方式时,可能会报如下异常: javax.net.ssl.SSLException: Inbound closed before receiving peer's close_notify: possible truncation attack? ..... org.apache.kafka.common.errors.S

php连接kafka

1.首先安装kafka扩展 #安装librdkafka:   版本: https://github.com/edenhill/librdkafka/releases/tag/v0.9.2 $   git clone https://github.com/edenhill/librdkafka.git $  ./configure $  make $  sudo make install #安装 rdkafka.so  版本:https://github.com/arnaud-lb/php-rdk

Flume连接Kafka的broker出错

在启动Flume的时候,出现下面的异常,但是程序照样能运行,Kafka也能够收到数据,只是偶尔会断点. 2016-08-25 15:32:54,561 (SinkRunner-PollingRunner-DefaultSinkProcessor) [INFO - kafka.utils.Logging$class.info(Logging.scala:68)] Fetching metadata from broker id:2,host:10.208.129.5,port:9092 with

Java 连接Kafka报错java.nio.channels.ClosedChannelExcep

Java 客户端连接Kafka报如下错误 bin/kafka-console-consumer.sh --zookeeper 255.255.255.255:2181 --topic eventbustopic [2015-06-02 16:23:04,375] WARN Fetching topic metadata with correlation id 0 for topics [Set(eventbustopic)] from broker [id:1,host:SOME_HOST,po

asp.netcore Log4Net连接kafka的方法

1.NuGet添加2个包: Microsoft.Extensions.Logging.Log4Net.AspNetCore log4net.Kafka.Core 2.Program里修改CreateWebHostBuilder: public class Program { public static void Main(string[] args) { System.Threading.ThreadPool.SetMinThreads(200, 200); // NLogBuilder.Con

Golang之发送消息至kafka

windows下安装zookeeper 1.安装JAVA-JDK,从oracle下载最新的SDK安装(我用的是1.8的) 2.安装zookeeper3.3.6,下载地址:http://apache.fayea.com/zookeeper/ 3.重命名conf/zoo_sample.cfg 为conf/zoo.cfg 4.编辑 conf/zoo.cfg,修改dataDir=D:\zookeeper-3.3.6\data\ 4.运行bin/zkServer.cmd 启动结果如下: 安装kafka 1

本地连接虚拟机内的kafka遇到的问题

学习技术,提升自己 安装kafka 1.官网找到压缩包,下载并上传到虚拟机内(没钱买不起服务器) 2.执行解压缩命令 tar -zxvf kafka_2.11-2.1.0.tgz 3.进入到kafka_2.11-2.1.0/config目录里,执行图片中的命令,将zookeeper.properties中的信息筛选出来并将筛选出来的数据给一个新建的文件zk.properties cat zookeeper.properties | grep -v '#' >> zk.properties 4.