topic

Kafka运维操作指南

故事扮演 提交于 2020-01-17 07:04:00
作者:石文 时间:2018-12-14 1.启停,进程状态 #启动。若要开启JMX端口需要加载环境变量 su hadoop ./bin/kafka-server-start.sh -daemon ./config/server.properties #停止。 su hadoop ./bin/kafka-server-stop.sh 2.topic相关 #创建topic.默认数据保留时间为7天,配置<replication-factor>至少为为2 ./bin/kafka-topics.sh --create --zookeeper $ZK_ADDR --replication-factor 2 --partitions N --topic ${topic_name} #创建topic时指定代理 ./kafka-topics.sh --zookeeper $ZK_ADDR --creat --topic --topic ${topic_name} --replica-assignment 0:1,1:2,2:3,3:4,4:0 #删除topic.不会立马删除,只会标记为删除<- marked for deletion> ./bin/kafka-topics.sh --delete --zookeeper $ZK_ADDR --topic ${topic_name}

ActiveMQ

穿精又带淫゛_ 提交于 2020-01-16 23:19:14
一、什么是消息中间件   消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。对于消息中间件,常见的角色大致也就有Producer(生产者)、Consumer(消费者)   常见的消息中间件产品: ( 1 ) ActiveMQ   ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现 ,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。   主要特点:   1. 多种语言和协议编写客户端。语言: Java, C, C++, C#, Ruby, Perl, Python, PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP   2. 完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务)   3. 对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去,而且也支持Spring2.0的特性   4. 通过了常见J2EE服务器(如 Geronimo,JBoss 4, GlassFish,WebLogic)的测试

ActiveMQ使用示例之Topic

心不动则不痛 提交于 2020-01-16 23:03:57
非持久的Topic消息示例 对于非持久的Topic消息的发送 基本跟前面发送队列信息是一样的,只是把创建Destination的地方,由创 建队列替换成创建Topic,例如: Destination destination = session.createTopic("MyTopic"); 对于非持久的Topic消息的接收 1:必须要接收方在线,然后客户端再发送信息,接收方才能接收到消息 2:同样把创建Destination的地方,由创建队列替换成创建Topic,例如: Destination destination = session.createTopic("MyTopic"); 3:由于不知道客户端发送多少信息,因此改成while循环的方式了,例如: Message message = consumer.receive(); while(message!=null) {   TextMessage txtMsg = (TextMessage)message;   System.out.println("收到消 息:" + txtMsg.getText());   message = consumer.receive(1000L); } 生产者代码: public class NoPersistenceSender { //默认连接用户名 private static

ActiveMQ简述

旧巷老猫 提交于 2020-01-16 22:58:58
概述 ActiveMQ是Apache所提供的一个开源的消息系统,全然採用Java来实现。因此。它能非常好地支持J2EE提出的JMS(Java Message Service,即Java消息服务)规范。 JMS是一组Java应用程序接口。它提供消息的创建、发送、读取等一系列服务。JMS提供了一组公共应用程序接口和响应的语法。相似于Java数据库的统一訪问接口JDBC,它是一种与厂商无关的API,使得Java程序能够与不同厂商的消息组件非常好地进行通信。 JMS支持两种消息发送和接收模型。一种称为P2P(Ponit to Point)模型。即採用点对点的方式发送消息。P2P模型是基于队列的,消息生产者发送消息到队列。消息消费者从队列中接收消息,队列的存在使得消息的异步传输称为可能,P2P模型在点对点的情况下进行消息传递时採用。 还有一种称为Pub/Sub(Publish/Subscribe,即公布-订阅)模型,公布-订阅模型定义了怎样向一个内容节点公布和订阅消息,这个内容节点称为topic(主题)。主题能够觉得是消息传递的中介,消息公布这将消息公布到某个主题,而消息订阅者则从主题订阅消息。主题使得消息的订阅者与消息的公布者互相保持独立。不须要进行接触就可以保证消息的传递,公布-订阅模型在消息的一对多广播时採用。 ActiveMQ的安装 下载最新的安装包apache-activemq-5

一文入门rocketmq(扫盲版-附示例demo)

谁说我不能喝 提交于 2020-01-16 14:37:05
1、什么是Rocketmq 消息队列 RocketMQ 是阿里巴巴集团自主研发的专业消息中间件,基于高可用分布式集群技术,提供消息订阅和发布、消息轨迹查询以及定时(延时)消息、资源统计、监控报警等一系列消息云服务,是企业级互联网架构的核心产品。 消息队列 RocketMQ 历史超过9年,为分布式应用系统提供异步解耦、削峰填谷的能力,同时具备海量消息堆积、高吞吐、可靠重试等互联网应用所需的特性,是阿里巴巴双11使用的核心产品。 2012年开源,2017年成为apache顶级项目。 2、名词解释 以下主要对消息队列 RocketMQ 涉及的专有名词及术语进行定义和解析。 Topic 消息主题,一级消息类型,通过 Topic 对消息进行分类。 Message 消息,消息队列中信息传递的载体。 Message ID 消息的全局唯一标识,由消息队列 RocketMQ 系统自动生成,唯一标识某条消息。 Message Key 消息的业务标识,由消息生产者(Producer)设置,唯一标识某个业务逻辑。 Tag 消息标签,二级消息类型,用来进一步区分某个 Topic 下的消息分类。 Producer 消息生产者,也称为消息发布者,负责生产并发送消息。 Producer 实例 Producer 的一个对象实例,不同的 Producer 实例可以运行在不同进程内或者不同机器上。Producer

分布式之消息队列

旧巷老猫 提交于 2020-01-16 10:58:21
1、为什么要使用消息队列? 主要有三个原因: 解耦、异步、削峰 (1)解耦 传统模式: 传统模式的 缺点 : 系统间耦合性太强,如上图所示,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦! 中间件模式: 中间件模式的的 优点 : 将消息写入消息队列,需要消息的系统自己从消息队列中订阅,从而系统A不需要做任何修改。 (2)异步 传统模式: 传统模式的 缺点 : 一些非必要的业务逻辑以同步的方式运行,太耗费时间。 中间件模式: 中间件模式的的 优点 : 将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度 (3)削峰 传统模式 传统模式的 缺点 : 并发量大的时候,所有的请求直接怼到数据库,造成数据库连接异常 中间件模式: 中间件模式的的 优点 : 系统A慢慢的按照数据库能处理的并发量,从消息队列中慢慢拉取消息。在生产中,这个短暂的高峰期积压是允许的。 2、使用了消息队列会有什么缺点? 分析 :一个使用了MQ的项目,如果连这个问题都没有考虑过,就把MQ引进去了,那就给自己的项目带来了风险。我们引入一个技术,要对这个技术的弊端有充分的认识,才能做好预防。 要记住,不要给公司挖坑! 回答 :回答也很容易,从以下两个个角度来答 系统可用性降低 :你想啊,本来其他系统只要运行好好的,那你的系统就是正常的。现在你非要加个消息队列进去

Kafka、RabbitMQ、RocketMQ消息中间件的对比

扶醉桌前 提交于 2020-01-16 10:40:48
引言 分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。现在开源的消息中间件有很多,目前对Kafka、RabbitMQ、RocketMQ这三个消息中间件做下对比分析。 - - kafka RocketMQ RabbitMQ 数据来源 相关文章 定位 设计定位 系统间的数据流管道,实时数据处理。 例如:常规的消息系统、网站活性跟踪,监控数据,日志收集、处理等 非日志的可靠消息传输。 例如:订单,交易,充值,流计算,消息推送,日志流式处理,binglog分发等 可靠消息传输。和RocketMQ类似。 基础对比 成熟度 日志领域成熟 成熟 成熟 所属社区/公司 Apache Alibaba开发,已加入到Apache下 Mozilla Public License 社区活跃度 高 中 高 来源于网络 API完备性 高 高 高 文档完备性 高 高 高 来源于网络 开发语言 Scala Java Erlang 支持协议 一套自行设计的基于TCP的二进制协议 自己定义的一套 (社区提供JMS--不成熟) AMQP 客户端语言 C/C++、Python、Go、Erlang、.NET、Ruby、Node.js、PHP等 Java Java、C、 C++、 Python、 PHP、Perl 等 持久化方式 磁盘文件 磁盘文件 内存、文件 可用性、可靠性比较 部署方式 单机/集群

EMQ X 插件持久化系列 (五)MySQL MQTT 数据存储

微笑、不失礼 提交于 2020-01-16 06:43:38
本文以在 CentOS 7.2 中的实际例子来说明如何通过 MySQL 来存储相关的 MQTT 数据。 MySQL 属于传统的关系型数据库产品,其开放式的架构使得用户的选择性很强,而且随着技术的逐渐成熟,MySQL 支持的功能也越来越多,性能也在不断地提高,对平台的支持也在增多,此外,社区的开发与维护人数也很多。当下,MySQL 因为其功能稳定、性能卓越,且在遵守 GPL 协议的前提下,可以免费使用与修改,因此深受用户喜爱。 安装与验证 MySQL 服务器 读者可以参考 MySQL 官方文档 或使用 Docker 来下载安装 MySQL 服务器,本文章使用 MySQL 5.6 版本。 为方便管理操作,可下载使用官方免费图形化管理软件 MySQL Workbeanch 。 如果读者使用的是 MySQL 8.0 及以上版本,MySQL 需按照 EMQ X 无法连接 MySQL 8.0 教程特殊配置。 准备 初始化数据表 插件运行依赖以下几张数据表,数据表需要用户自行创建,表结构不可改动。 mqtt_client 存储设备在线状态 DROP TABLE IF EXISTS ` mqtt_client ` ; CREATE TABLE ` mqtt_client ` ( ` id ` int ( 11 ) unsigned NOT NULL AUTO_INCREMENT , `

Spring cloud 整合kafka

倾然丶 夕夏残阳落幕 提交于 2020-01-16 03:08:28
Kafka配置 一.安装 wget http://mirror.bit.edu.cn/apache/kafka/2.1.0/kafka_2.11-2.1.0.tgz 获取当前版本 tar -xzvf 解压 二.配置 /修改 kafka目录 config/server.properties listeners=PLAINTEXT://:9092 监听当前主机 advertised.listeners=PLAINTEXT://Your.Id:9092 配置下外网IP bin/zookeeper-server-start.sh config/zookeeper.propties 启动zookeeper [root@iZ23abbedn6Z config]# ../bin/kafka-server-start.sh ../config/server.properties 启动kafka 启动一个远程Custom用于方便测试 [root@iZ23abbedn6Z bin]# sh kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-test 服务端新建一个topic bin /kafka-topics .sh --create --zookeeper localhost:2181 -

Kafka使用总结与生产消费Demo实现

℡╲_俬逩灬. 提交于 2020-01-15 19:01:34
什么是kafka Kafka官网自己的介绍是:一个可支持分布式的流平台。 kafka官网介绍 kafka三个关键能力: 1.发布订阅记录流,类似于消息队列与企业信息系统 2.以容错的持久方式存储记录流 3.对流进行处理 kafka通常应用再两大类应用中: 1.构建实时流数据管道,在系统或应用程序之间可靠地获取数据 2.构建转换或响应数据流的实时流应用程序 kafka的一些基本概念: 1.Kafka作为一个集群运行在一个或多个服务器上,这些服务器可以跨越多个数据中心。 2.Kafka集群将记录流存储在称为topic的类别中。 3.每个记录由一个键、一个值和一个时间戳组成。 kafka核心API: 1.Producer API:允许应用程序将记录流发布到一个或多个topic。 2.Consumer API:允许应用程序订阅一个或多个topic并处理生成给它们的记录流。 3.Streams API:允许应用程序充当流处理器,使用来自一个或多个topic的输入流, 并生成一个或多个输出topic的输出流,从而有效地将输入流转换为输出流。 4.Connector API:允许构建和运行可重用的生产者或消费者,将topic连接到现有的应用程序或数据系统。 例如,到关系数据库的连接器可能捕获对表的每个更改。 作为消息系统 传统消息传递有两类模型:消息队列、发布订阅。在消息队列中