topic

MQTT介绍与使用(转载)

旧时模样 提交于 2019-11-26 12:39:22
  物联网是新一代信息技术的重要组成部分,也是“信息化”时代的重要发展阶段。其英文名称是:“Internet of things(IoT)”。顾名思义,物联网就是物物相连的互联网。这有两层意思:其一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;其二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信,也就是物物相息。物联网通过智能感知、识别技术与普适计算等通信感知技术,广泛应用于网络的融合中,也因此被称为继计算机、互联网之后世界信息产业发展的第三次浪潮。   而在物联网的应用上,对于信息传输,MQTT是一种再合适不过的协议工具了。 一、MQTT简介   MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的轻量级协议,该协议构建于TCP/IP协议之上,MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。   MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M

kafka-clients 1.0 内部响应接口文档

微笑、不失礼 提交于 2019-11-26 10:04:50
AddOffsetsToTxnResponse version:0 name type defaultValue docString throttle_time_ms INT32 0 Duration in milliseconds for which the request was throttled due to quota violation (Zero if the request did not violate any quota) error_code INT16 null Response error code AddPartitionsToTxnResponse version:0 name type defaultValue docString throttle_time_ms INT32 0 Duration in milliseconds for which the request was throttled due to quota violation (Zero if the request did not violate any quota) errors ARRAY({topic:STRING,partition_errors:ARRAY({partition:INT32,error_code:INT16})}) null null

Spring Kafka学习

二次信任 提交于 2019-11-26 09:16:38
Spring Kafka学习 使用参考 版本 2.1.6.RELEASE 配置主题 通过在ioc容器中配置KafkaAdmin实例,我们可以通过配置NewTopic实例和@bean轻松配置主题 @Component public class KafkaAdminConfig { @Value ( "${kafka-admin.servers}" ) private String servers ; @Bean public KafkaAdmin admin ( ) { Map < String , Object > configs = new HashMap < > ( ) ; configs . put ( AdminClientConfig . BOOTSTRAP_SERVERS_CONFIG , servers ) ; return new KafkaAdmin ( configs ) ; } @Bean public NewTopic topic1 ( ) { //主题名,分区数量,副本因子 return new NewTopic ( "foo" , 10 , ( short ) 2 ) ; } @Bean public NewTopic topic2 ( ) { return new NewTopic ( "bar" , 10 , ( short ) 2 ) ; } }

适合C# Actor的消息执行方式(4):阶段性总结

跟風遠走 提交于 2019-11-26 05:23:35
这个系列原本打算写3篇,也就是说在上一篇文章中已经把老赵认为较合适的方法展现出来了,但事实上这个系列的计划已经扩展为8篇了——没错,翻了一倍不止,而最终是几篇现在我也无法断言。其实这也是我写不了书的原因之一。虽说唯一不变的就是变化,但是我变的太离谱了。不断写,不断出现新想法,不断变化。作为这个系列的第4篇,我们现在来对之前3篇文章进行一番阶段性总结。 阶段性总结本不在计划之内,不过似乎Actor模型这方面内容还不太受人关注,因此有的朋友也误解这系列文章想要解决的问题是什么。除了这方面的解释之外,我还会对之前提出的几种做法进行综合的对比,可以进一步了解整个演变过程的思路,为接下去的改变做铺垫——因为下次改变就涉及到多个方向,每个方向都是在一定程度上真正可用的方式。 我们究竟是要解决什么问题 Actor模型的本质已经被强调了无数遍:万物皆Actor。Actor之间只有发送消息这一种通信方式,例如,无论是管理员让工作者干活,还是工作者把成果交还给管理员,它们之间也要通过发送消息的方式来传递信息。这么做看似不如直接方法调用来的直接,但是由于大量的消息可以同时执行。同样,消息让Actor之间解耦,消息发出之后执行成功还是失败,需要耗费多少时间,只要没有消息传递回来,这一切都和发送方无关。Actor模型的消息传递形式简化了并行程序的开发,使开发人员无需在共享内存(确切地说,其实是共享“写”

Kafka原理及单机部署

穿精又带淫゛_ 提交于 2019-11-26 04:57:42
博文大纲: 一、kafka介绍及原理 二、部署单机kafka 一、kafka介绍及原理 kafka是由Apache软件基金会发布的一个开源流处理平台,由Scala和Java编写。它是一种高吞吐量的分布式发布的订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。 1、kafka的特性 kafka是一种高吞吐量的分布式发布订阅消息系统,具有以下特性: 通过磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能; 持久性:使用文件性存储,日志文件存储消息,需要写入硬盘,采用达到一定阈值才写入硬盘,从而减少磁盘I/O,如果kafka突然宕机,数据会丢失一部分; 高吞吐量:即使是非常普通的硬件kafka也可以支持每秒数百万的消息; 支持通过kafka服务器和消费机集群来分区消息; 支持Hadoop并行数据加载。 2、kafka相关术语 Broker:消息中间件处理节点

RocketMq-粪发涂墙1.0

旧巷老猫 提交于 2019-11-26 02:56:26
角色 说明 Producer 生产者,用于将消息发送到RocketMQ,生产者本身既可以是生成消息,也可以对外提供接口,由外部来调用接口,再由生产者将受到的消息发送给MQ。 Consumer 消费者,从Broker拉取消息进行消费。从应用角度来说有两类消费者: PullConsumer:主动拉取消息,一旦拉取到消息,应用的消费进程进行初始化 PushConsumer:封装消息拉取,消费进程和内部 Broker RocketMQ服务器,也是整个服务的核心,它实现了消息的存储、拉取功能。它通常以集群方式启动,并可配置主从,每个broker上提供对指定topic的服务。理解了broker的原理以及它和其他服务交互的过程,也就命令消息中间件的原理,其实都大同小异。它具有2中角色 Master:能写、能读 Slave:只能读,不能写 Topic 消息的主题,由用于定义并在服务端配置,消费者可以按照主题进行订阅,也就是消息分类,通常一个应用一个Topic Message 在生产者、消费者、服务器之间传递的消息,一个message必须属于一个Topic Namesrv 一个无状态的名称服务,可以集群部署,每一个broker启动的时候都会向名称服务器注册,主要是接收broker的注册(broker每十秒就会向所有名称服务器发送心跳请求,同时注册topic信息到名称服务器)

部署Kafka群集

会有一股神秘感。 提交于 2019-11-26 02:03:00
前言 关于kafka的工作机制,已经在上篇博文: Kafka原理及单机部署 中详细写出来,这里只是将kafka的一个群集部署写了出来。 博文大纲: 一、环境准备 二、部署zookeeper服务 三、部署kafka集群 一、环境准备 部署kafka群集所需的安装包,可以从我的网盘链接中 下载 。 二、部署zookeeper服务 1、主机kafka01配置如下 #部署zookeeper [root@kafka01 src]# tar zxf zookeeper-3.4.9.tar.gz [root@kafka01 src]# mv zookeeper-3.4.9 /usr/local/zookeeper #修改配置文件 [root@kafka01 src]# cd /usr/local/zookeeper/conf/ [root@kafka01 conf]# cp -p zoo_sample.cfg zoo.cfg [root@kafka01 conf]# sed -i 's/dataDir=\/tmp\/zookeeper/dataDir=\/usr\/local\/zookeeper\/data/g' zoo.cfg #直接群集节点信息,2888和3888端口用于群集内部通信 [root@kafka01 conf]# echo "server.1 192.168.20.2:2888

Spring Boot整合WebSocket及Spring Security实例

只愿长相守 提交于 2019-11-26 00:54:02
一.为什么需要WebSocket 在HTTP协议中,所有请求都是由客户端发起的,由服务端进行响应,服务端无法向客户推送消息,但是在一些需要即时通信的应用中,有不可避免的需要服务端向客户端推送消息,传统的解决方案有如下几种 1.轮询 轮询是最简单的解决方案,其意义在于,客户端在固定的时间间隔下不停地向服务端发送请求,查看服务端是否有新的数据,若服务端有新的数据,则返回给客户端,若是服务端没有新的数据,则返回一个空的JSON或者XML文档,轮询对于开发者来说实现方便,但弊端明显:客户端每次都要建立新的HTTP请求,服务端要处理大量的无效请求,在高并发的情景下会严重拖慢服务端的运行效率,同时服务端的资源被极大地浪费了,因此,此种方式并不可取 2.长轮询 长轮询对于轮询存在的问题做了部分解决,在长轮询中,在服务端接收到客户端的请求后不会立即去响应客户端,而是会等到服务端有新的数据时才会立即响应客户端的请求,否则服务端会持有这个请求而不返回,直到有新数据时才返回,这种方式在一定程度上节省了服务端的资源,但是也存在一些问题,例如: (1)如果浏览器在服务响应之前有新的数据要发送就只能创建一个新的并发请求,或者尝试先断掉当前请求,在创建新的请求 (2)TCP和HTTP规范中都有连接超时一说,所以所谓的长轮询并不能一直持续,服务端和客户端的连接需要定期的连接和关闭,这就增大了开发者的工作量

Kafka笔记整理(二):Kafka Java API使用

微笑、不失礼 提交于 2019-11-26 00:29:04
[TOC] 下面的测试代码使用的都是下面的topic: $ kafka-topics.sh --describe hadoop --zookeeper uplooking01:2181,uplooking02:2181,uplooking03:2181 Topic:hadoop PartitionCount:3 ReplicationFactor:3 Configs: Topic: hadoop Partition: 0 Leader: 103 Replicas: 103,101,102 Isr: 103,101,102 Topic: hadoop Partition: 1 Leader: 101 Replicas: 101,102,103 Isr: 101,102,103 Topic: hadoop Partition: 2 Leader: 102 Replicas: 102,103,101 Isr: 102,103,101 Kafka Java API之producer 关于producer API的使用说明,可以查看 org.apache.kafka.clients.producer.KafkaProducer 这个类的代码注释,有非常详细的说明,下面就直接给出程序代码及测试。 程序代码 KafkaProducerOps.java package com.uplooking

Kafka常用shell命令

北战南征 提交于 2019-11-26 00:28:38
2.2 KAFKA命令行操作 1)查看当前服务器中的所有topic [qingfeng@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --list 2)创建topic [qingfeng@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --create --replication-factor 3 --partitions 1 --topic first 选项说明: --topic 定义topic名 --replication-factor 定义副本数 --partitions 定义分区数 3)删除topic [qingfeng@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --delete --topic first 需要server.properties中设置delete.topic.enable=true否则只是标记删除。 4)生产消息 [qingfeng@hadoop102 kafka]$ bin/kafka-console-producer.sh \ --broker-list hadoop102:9092 --topic