topic

day20kafka

给你一囗甜甜゛ 提交于 2020-02-10 07:50:00
Storm 上游数据源之 Kakfa PS:什么是kafka,为什么要学习它? http://blog.csdn.net/zcf_0923/article/details/70859535http://blog.csdn.net/SJF0115/article/details/78480433PS :kafka他不仅仅只是一个消息队列PS:发布与订阅系统一般会有一个broker,也就是发布消息的中心点PS:kafka的数据单元被称为消息, 可以理解为数据库的一条记录PS: def 批次 5.3 Kafka 集群部署 PS:启动kafka时,要先启动zookeeper 5.3.1 、下载安装包 http://kafka.apache.org/downloads.html 在 linux 中使用 wget 命令下载安装包 wget http://mirrors.hust.edu.cn/apache/kafka/0.8.2.2/kafka_2.11-0.8.2.2.tgz 5.3.2 、解压安装包 tar -zxvf kafka_2.11-0.8.2.2.tgz -C /apps/ cd /export/servers/ ln -s kafka_2.11-0.8.2.2 kafka 5.3.3 、修改配置文件 cp /export/servers/kafka/config/server

RocketMQ原理解析-Producer

与世无争的帅哥 提交于 2020-02-09 19:14:44
producer producer 1.启动流程 Producer如何感知要发送消息的broker即brokerAddrTable中的值是怎么获得的, 1. 发送消息的时候指定会指定topic,如果producer集合中没有会根据指定topic到namesrv获取topic发布信息TopicPublishInfo,并放入本地集合 2. 定时从namesrv更新topic路由信息, Producer与broker间的心跳 Producer定时发送心跳将producer信息(其实就是procduer的group)定时发送到, brokerAddrTable集合中列出的broker上去 Producer发送消息只发送到master的broker机器,在通过broker的主从复制机制拷贝到broker的slave上去 producer 2.如何发送消息 Producer轮询某topic下的所有队列的方式来实现发送方的负载均衡 1) Topic下的所有队列如何理解: 比如broker1, broker2, borker3三台broker机器都配置了Topic_A Broker1 的队列为queue0 , queue1 Broker2 的队列为queue0, queue2, queue3, Broker3 的队列为queue0 当然一般情况下的broker的配置都是一样的

RocketMQ初步应用架构理论

半城伤御伤魂 提交于 2020-02-09 19:09:49
RocketMQ初步应用架构理论 写给RocketMQ架构应用入门,内容涉及它的设计机理以及推到出来的应用注意事项,入门人员请看。 稍微涉及技术细节,留以我设计中间件时参考,将来整理深度文档时会抽取走,入门人员可以无视。 以下RocketMQ简称为RQ,理论部分采用版本为3.2.4,测试部分采用版本为3.2.6。 MQ的需求 我们对MQ的需求,相比JMS标准有几点要求更高: 1. 必须优美灵活地支持集群消费。 2. 尽量支持消息堆积。 3. 服务高可用性和消息可靠性。 4. 有起码的运维工具做集群管理和服务调整。 其他 提供顺序消息、事务、回溯等面向特别场景的功能更好,目前暂不需要。 RQ架构 RQ的基本组成包括nameserver、broker、producer、consumer四种节点,前两种构成服务端,后两种在客户端上。 还有其他辅助的进程,不提。 NameServer的基本概念 在没有NameServer的中间件中,服务端集群就由干活的broker组成 ,其中的实例分主从两种角色。那么客户端就要知道,需要连接到哪个地址的broker上去做事情,于是客户端就需要配置服务端机器的IP地址,如果服务端部署结构复杂,客户端的配置结构也挺复杂,更讨厌的是甚至可能需要客户端也得更新地址配置。由于有了两种思路的方案: 一是引入NameServer,负责提供地址

kafka集群搭建

让人想犯罪 __ 提交于 2020-02-09 02:56:32
第一步 先去官网下载 kafka_2.9.2-0.8.1.1.tgz 并解压再进入到安装文件夹(也能够自己配置路径,方法跟配置java、hadoop等路径是一样的). > tar -xzf kafka_2.9.2-0.8.1.1.tgz > cd kafka_2.9.2-0.8.1.1 第二步 zeekeeper集群搭建(用的是kafka自带的zeekeeper,一共准备了三台机器) 1、关闭各台机器的防火墙(一定要切记。我搭建的时候以为能ping通就ok了,就没关心防火墙的问题了。最后白白浪费了一天的时间) 命令 /ect/init.d/iptables stop 2、进入到打开/ect下的hosts文件 改动为 127.0.0.1 localhost 10.61.5.66 host1 10.61.5.67 host2 10.61.5.68 host3 (ip和机器名依据个人实际情况改动) 3、改动zeekeeper 配置文件 进入到kafka安装文件夹下的config文件。打开zookeeper.properties 改动dataDir={kafka安装文件夹}/zookeeper/logs/ 凝视掉maxClientCnxns=0 在文件末尾加入例如以下语句 tickTime=2000 initLimit=5 syncLimit=2 #host1、2、3为主机名

Flink之KafkaConnector

柔情痞子 提交于 2020-02-08 18:33:54
1.1 Kafka背景 最初由Linkedin 开发的分布式消息中间件现已成为Apache顶级项目 Broker:Kafka中指部署了Kafka实例的服务器节点 Topic:用来区分不同类型信息的主题 Partition:每个topic可以有一个或多个partition(分区)。分区是在物理层面上的,不同的分区对应着不同的数据文件。Kafka使用分区支持物理上的并发写入和读取,从而大大提高了吞吐量 Record:实际写入Kafka中并可以被读取的消息记录。每个record包含了key、value和timestamp Producer:生产者,用来向Kafka中发送数据(record) Consumer:消费者,用来读取Kafka中的数据(record) Offset( 生产offset,消费offset,offset lag):offset lag是kafka消费数据和生产数据的距离偏移量,在0.8版本的时候记录在zk里面,0.9开始用特定的topic来记录 Consumer Group:为了区分不同消费者消费数据的偏移量,提出了消费者组概念,相同消费组会改变相同的偏移量 1.2 引入依赖 Flink读取kafka数据需要通过maven引入依赖: <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink

ERROR Failed to send requests for topics

不打扰是莪最后的温柔 提交于 2020-02-08 09:45:00
如果是在同一台机器(localhost),Kafka Client工作正常,Producer和Consumer都能正常发送和接收消息,但是一旦部署到两台机器,则默认配置的话不能正常工作。会出现“kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries”的错误。 [2020-01-09 12:42:43,841] ERROR Failed to send requests for topics cache-message with correlation ids in [17,24] (kafka.producer.async.DefaultEventHandler) [2020-01-09 12:42:43,841] ERROR Error in handling batch of 1 events (kafka.producer.async.ProducerSendThread) kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries. at kafka.producer.async.DefaultEventHandler.handle

kafka集群搭建

你离开我真会死。 提交于 2020-02-08 03:56:17
环境准备 1.服务器概览 ip 操作系统 说明 安装内容 192.168.0.113 centos 7 master节点 jdk1.8, kafka_2.11-0.10.1.1, zookeeper-3.4.8.tar 192.168.0.114 centos 7 master节点 jdk1.8, kafka_2.11-0.10.1.1, zookeeper-3.4.8.tar 192.168.0.115 centos 7 master节点 jdk1.8, kafka_2.11-0.10.1.1, zookeeper-3.4.8.tar 2.服务器环境安装 jdk1.8 安装 参考:centos7 安装jdk 1.8 注意:三台服务均执行 #添加host 192.168.0.112 master.kafka 192.168.0.114 worker1.kafka 192.168.0.115 worker2.kafka #执行以下命令关闭防火墙 [root@node1 ~]systemctl stop firewalld && systemctl disable firewalld [root@node1 ~]setenforce 0 #将SELINUX的值改成disabled [root@node1 ~]vim /etc/selinux/config SELINUX

(08)java程序连接kafka示例

て烟熏妆下的殇ゞ 提交于 2020-02-07 18:40:47
  1、导入kafka所需要的包   在服务器上安装kafka程序的时候,解压后就有kafka需要的jar包,如下图所示:    2、新建生产者类 1 package demo; 2 3 import java.util.Properties; 4 import java.util.concurrent.TimeUnit; 5 6 import kafka.javaapi.producer.Producer; 7 import kafka.producer.KeyedMessage; 8 import kafka.producer.ProducerConfig; 9 import kafka.serializer.StringEncoder; 10 11 public class ProducerDemo extends Thread { 12 13 //指定具体的topic 14 private String topic; 15 16 public ProducerDemo(String topic){ 17 this.topic = topic; 18 } 19 20 //每隔5秒发送一条消息 21 public void run(){ 22 //创建一个producer的对象 23 Producer producer = createProducer(); 24 //发送消息

Kafka消费者多线程实现

旧街凉风 提交于 2020-02-07 11:19:43
Kafka的生产者KafkaProducer是线程安全的,然而消费者KafkaConsumer却是非线程安全的。KafkaConsumer定义了一个acquire()方法,用来检测当前是否只有一个线程在操作,若有其它线程正在操作会抛出ConcurrentModifycationException异常: java.util.ConcurrentModifycationException: KafkaConsumer is not sage for multi-threaded access KafkaConsumer中的每个公用方法在执行所要执行的动作之前都会调用这个acquire()方法。acquire()如下: private final AtomicLong currentThread = new AtomicLong(NO_CURRENT_THREAD);//KafkaConsumer成员变量 private void acquire() { long threadId = Thread.currentThread().getId(); if (threadId != currentThread.get() && !currentThread.compareAndSet(NO_CURRENT_THREAD, threadId)) throw new

kafka 高可靠

喜夏-厌秋 提交于 2020-02-07 00:17:21
1.集群高可靠 ①搭建kafka集群(略) ②重点配置项(每个broker配置相同,只有broker.id不一样) broker.id =1 当前机器在集群中的唯一标识,和zookeeper的myid性质一样 listeners= PLAINTEXT://10.22.0.13:9092 最好用真实的IP advertised.listeners= PLAINTEXT://10.22.0.13:9092 最好用真实的IP hostname,port配置过时 num.partitions=3 新建topic 默认分区数 default.replication.factor=3 新建topic 默认副本集数 offsets.topic.replication.factor=3 副本集因子 (必须配置为大于1,小于或者等于broker数,不然当消费者的协同节点broker宕机了,不会重新选举,导致消费者dead,达不到集群高可靠目的) zookeeper.connect=10.22.0.13:2182,10.22.0.14:2182,10.22.0.15:2182 zookeeper地址 log.dirs=/home/txc/kafka1/kafkalogs kafka数据日志保存路径 2.消息至少消费一次 消费者默认情况下,enable.auto.commit=true