topic

kafka安装

前提是你 提交于 2019-12-06 08:12:57
1.下载 http://kafka.apache.org/downloads 2.解压&启动 tar -xzf kafka_2.11-2.3.0.tgz cd kafka_2.11-2.3.0 ./bin/zookeeper-server-start.sh config/zookeeper.properties //zk ./bin/kafka-server-start.sh config/server.properties &    //kafka 3.创建主题 bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test bin/kafka-topics.sh --list --zookeeper localhost:2181 >test Ps 除手工创建topic外,你也可以配置你的broker,当发布一个不存在的topic时自动创建topic。 kafka项目启动报错:可查看与Spring-Boot的版本是否一致(匹配) 如果在服务器上安装要注意防火墙或安全策略有没有放开对应的端口 参考: https://www.orchome.com/6 来源: https://www.cnblogs.com/julian-chang/p

《浅入浅出》-RocketMQ

风流意气都作罢 提交于 2019-12-06 07:49:21
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点脑图、个人联系方式和技术交流群,欢迎Star和指教 前言 消息队列 在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在 消息队列 的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数竞争对手,每次都只能看到无数落寞的身影失望的离开,略感愧疚( 请允许我使用一下夸张的修辞手法 )。 于是在一个寂寞难耐的夜晚,我痛定思痛,决定开始写 《吊打面试官》 系列,希望能帮助各位读者以后面试势如破竹,对面试官进行360°的反击,吊打问你的面试官,让一同面试的同僚瞠目结舌,疯狂收割大厂Offer! 捞一下 消息队列系列前面两章分别讲了 消息队列 的基础知识,还有比较常见的问题和常见分布式事务解决方案,那么在实际开发过程中,我们使用频率比较高的消息队列中间件有哪些呢? 帅丙我工作以来接触的消息队列中间件有 RocketMQ 、 Kafka 、 自研 ,是的因为我主要接触的都是电商公司,相对而言业务体量还有场景来说都是他们比较适合,再加上杭州阿里系公司偏多,身边同事或者公司老大基本都是阿里出来创业的,那在使用技术栈的时候 阿里系的开源框架 也就成了首选。

dbus通信与接口介绍

大城市里の小女人 提交于 2019-12-06 07:45:29
DBUS是一种高级的进程间通信机制。DBUS支持进程间一对一和多对多的对等通信,在多对多的通讯时,需要后台进程的角色去分转消息,当一个进程发消息给另外一个进程时,先发消息到后台进程,再通过后台进程将信息转发到目的进程。DBUS后台进程充当着一个路由器的角色。 DBUS中主要概念为总线,连接到总线的进程可通过总线接收或传递消息,总线收到消息时,根据不同的消息类型进行不同的处理。DBUS中消息分为四类: 1. Methodcall消息:将触发一个函数调用 ; 2. Methodreturn消息:触发函数调用返回的结果; 3. Error消息:触发的函数调用返回一个异常 ; 4. Signal消息:通知,可以看作为事件消息。 1.2 DBUS应用场景 根据DBUS消息类型可知,DBUS提供一种高效的进程间通信机制,主要用于进程间函数调用以及进程间信号广播。 1 . 函数调用 DBUS可以实现进程间函数调用,进程A发送函数调用的请求(Methodcall消息),经过总线转发至进程B。进程B将应答函数返回值(Method return消息)或者错误消息(Error消息)。 2 . 消息广播 进程间消息广播(Signal消息)不需要响应,接收方需要向总线注册感兴趣的消息类型,当总线接收到“Signal消息”类型的消息时,会将消息转发至希望接收的进程。 1.3 DBUS通信特点

Kafka 集群管理

老子叫甜甜 提交于 2019-12-06 07:03:40
后台和停止kafka服务 注意事项: 生产环境推荐使用 -daemon 参数后台启动kafka,然后搭配使用 nohup 和 & 如果不想使用 kafka-server-stop.sh 关闭一台机器上的所有kafka broker,还可以使用另一种方式,首先 jps 查看kafka的pid,然后运行 ps ax | grep -i 'kafka/Kafka' | grep java | grep -v grep | awk '${print $1}' 自行寻找Kafka的PID ,最后运行 kill -s TERM $PID 关闭broker。 Topic管理/命令行脚本 创建topic 自动分区分配 bin/kafka-topics.sh --create --zookeeper localhost:2181 --partitions 6 --replication-factor 3 --topic topic-manager-test --config delete.retention.ms=259200000 最后一个参数是日志存留天数3天 手动分配分区 bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic topic-manager-test2 --replica-assignment 0:1,1:2

afka入门介绍

佐手、 提交于 2019-12-06 06:12:45
K afka入门介绍 https://www.cnblogs.com/swordfall/p/8251700.html最近在看hdoop的hdfs 以及看了下kafka的底层存储,发现分布式的技术基本上都是相同的。 都是通过增加一个coordinator的节点作为存储元数据, 将实体数据放到datanode 里面来提高容量。而且也跟微服务类似,将一个单体应用拆开分多份,放到不同的node节点中来 并且通过replication 来保证高可用。通过服务注册中心统一进行管理。 微服务 hadoop kafka 都是通过分而治之的办法来提高容量和性能和安全性。包含现在比较多的Greenplum和华为的高斯数据库,以及nginx的负责均衡工作原理 其实也是类似,都是通过增加一个服务注册中心类似的协调中心,然后增加datanode来存储具体的数据。 如果数量就行增大,就在协调中心上面再增加一层入口控制。而且像是nginx的底层的master和worker node 的进程模式也是如此。master负责协调 node干具体的工作redis的cluster也是 只不过通过hash算法作为服务注册或者是协调中心的工作。然后每个redis服务作为每一个datanode来提供服务,增加扩展性。然后redis的sentry模式就相当于replication模式来保证数据的安全性了

centos7部署rabbitMq

时光怂恿深爱的人放手 提交于 2019-12-06 05:22:51
目录 一、消息中间件相关知识... 1 1、概述... 1 2、消息中间件的组成... 1 3 消息中间件模式分类... 2 4 消息中间件的优势... 3 5 消息中间件应用场景... 4 6 消息中间件常用协议... 6 7 常见消息中间件MQ介绍... 7 7.1 RocketMQ.. 7 7.2 RabbitMQ.. 7 7.3 ActiveMQ.. 8 7.4 Redis. 8 7.5 Kafka. 8 7.6 ZeroMQ.. 9 8、主要消息中间件的比较... 9 二、部署RabbitMq. 10 1、安装一些依赖... 10 2、因为rabbitmq是基于erlang环境的,所以要先安装erlang环境... 10 3、安装rabbitMQ.. 11 一、消息中间件相关知识 1、概述 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。 2、消息中间件的组成 2.1 Broker 消息服务器,作为server提供消息核心服务 2.2 Producer 消息生产者,业务的发起方,负责生产消息传输给broker, 2.3 Consumer

Kafka 生产者、消费者与分区的关系

无人久伴 提交于 2019-12-06 02:58:19
kafka 生产者、消费者与分区的关系 背景 最近和海康整数据对接, 需要将海康产生的结构化数据拿过来做二次识别. 基本的流程: 海康大数据 --> kafka server --> 平台 Kafka 的 topic 正常过车 topic: BAYONET_VEHICLEPASS 违法过车 topic: BAYONET_VEHICLEALARM 前言 首先我们需要对kafka中的一些名词有一定的了解, 有过一些使用经验, 一般来说, 生产者发送消息到主题, 而消费者从主题消费数据 ( 我初次接触的时候, 就是这样理解的, 后来在实践中慢慢发现分区这个角色的重要性 ), 主题下边是分区, 消息数据是存储在分区中的, 所以事实上是生产者发送消息到主题, 然后存储在分区上, 消费者从某个主题下的某个分区上消费数据, 那么生产者将消息发送到哪个分区, 消费者从哪个分区开始消费呢 ? 如何设置主题下的分区数量 在 config/server.properties 配置文件中, 可以设置一个全局的分区数量, 这个分区数量的含义是: 每个主题下的分区数量 , 默认为 1 也可以在创建主题的时候, 使用 --partitions 参数指定分区数量 bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic my_topic -

kafka实战,原来真的不难

我的梦境 提交于 2019-12-06 02:45:32
1. kafka介绍 1.1. 主要功能 根据官网的介绍,ApacheKafka®是一个分布式流媒体平台,它主要有3种功能:   1:It lets you publish and subscribe to streams of records.发布和订阅消息流,这个功能类似于消息队列,这也是kafka归类为消息队列框架的原因   2:It lets you store streams of records in a fault-tolerant way.以容错的方式记录消息流,kafka以文件的方式来存储消息流   3:It lets you process streams of records as they occur.可以再消息发布的时候进行处理 1.2. 使用场景 1:Building real-time streaming data pipelines that reliably get data between systems or applications.在系统或应用程序之间构建可靠的用于传输实时数据的管道,消息队列功能 2:Building real-time streaming applications that transform or react to the streams of data。构建实时的流数据处理程序来变换或处理数据流,数据处理功能 1.3

Kafka 自定义指定消息partition策略规则及DefaultPartitioner源码分析

浪尽此生 提交于 2019-12-06 02:25:12
Kafka 自定义指定消息partition策略规则及DefaultPartitioner源码分析 一.概述 kafka默认使用DefaultPartitioner类作为默认的partition策略规则,具体默认设置是在ProducerConfig类中(如下图) 二.DefaultPartitioner.class 源码分析 1.类关系图 2.源码分析 public class DefaultPartitioner implements Partitioner { //缓存map key->topic value->RandomNumber 随机数 private final ConcurrentMap<String, AtomicInteger> topicCounterMap = new ConcurrentHashMap<>(); //实现Configurable接口里configure方法, public void configure(Map<String, ?> configs) {} //策略核心方法 public int partition(String topic, Object key, byte[] keyBytes, Object value, byte[] valueBytes, Cluster cluster) { /

MySQL 固定分隔符列转行

人走茶凉 提交于 2019-12-06 01:59:30
有如下一个表,需要将tag列的每个标签都提取出来,一行对应一个标签 mysql> select * from user_tag; +--------+-----------------+ | userid | tag | +--------+-----------------+ | 1 | css,go | | 2 | mysql,sql,html | | 3 | css,spring,php | | 4 | css,java,go,sql | | 5 | java,c | | 6 | c | +--------+-----------------+ 6 rows in set (0.00 sec) 行转列实现过程 1.首先我们算出每个用户的标签个数: select userid,LENGTH(a.tag)-LENGTH(REPLACE(a.tag,',',''))+1 from user_tag; mysql> select userid,tag,LENGTH(tag)-LENGTH(REPLACE(tag,',',''))+1 from user_tag; +--------+-----------------+-------------------------------------------+ | userid | tag | LENGTH(tag)-LENGTH