MQTT简单介绍

MQTT简单介绍,第1张

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上。好比你给好友发送一封电子邮件,发送完成后你可以去做别的事情,收件人也不必立刻响应,可以在自己有空的时候查看邮件,是一个典型的异步发布/订阅场景。而另一种典型的同步请求/回答场景,可以用接打电话的场景来类比。

MQTT的设计遵循以下的原则:

为了满足不同的场景,MQTT支持三种不同级别的服务质量(Quality of Service,QoS)为不同场景提供消息可靠性:

MQTT拥有14种不同的消息类型:

实现MQTT协议需要客户端和服务器端通讯完成,在通讯过程中,MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。

MQTT传输的消息分为:主题(Topic)和负载(payload)两部分:

MQTT会构建底层网络传输:它将建立客户端到服务器的连接,提供两者之间的一个有序的、无损的、基于字节流的双向传输。

当应用数据通过MQTT网络发送时,MQTT会把与之相关的服务质量(QoS)和主题名(Topic)相关连。

一个使用MQTT协议的应用程序或者设备,它总是建立到服务器的网络连接。客户端可以:

MQTT服务器以称为"消息代理"(Broker),可以是一个应用程序或一台设备。它是位于消息发布者和订阅者之间,它可以:

订阅包含主题筛选器(Topic Filter)和最大服务质量(QoS)。订阅会与一个会话(Session)关联。一个会话可以包含多个订阅。每一个会话中的每个订阅都有一个不同的主题筛选器。

每个客户端与服务器建立连接后就是一个会话,客户端和服务器之间有状态交互。会话存在于一个网络之间,也可能在客户端和服务器之间跨越多个连续的网络连接。

连接到一个应用程序消息的标签,该标签与服务器的订阅相匹配。服务器会将消息发送给订阅所匹配标签的每个客户端。

一个对主题名通配符筛选器,在订阅表达式中使用,表示订阅所匹配到的多个主题。

消息订阅者所具体接收的内容。

MQTT协议中定义了一些方法(也被称为动作),来于表示对确定资源所进行 *** 作。这个资源可以代表预先存在的数据或动态生成数据,这取决于服务器的实现。通常来说,资源指服务器上的文件或输出。主要方法有:

大渡河沙湾水电站AVC功能设计及实现

陈胜祥1,颜现波2,郑勇1

(1四川圣达水电开发有限公司,四川 乐山 614900;2 北京中水科水电科技开发有限公司,北京 海淀

100038)

摘 要:电压质量是衡量电能质量的主要指标之一,自动电压控制(AVC)是水电站安全运行和经济运行的必要工具。根据四川电网自动电压控制(AVC)系统建设的要求,介绍了大渡河沙湾水电站AVC系统的功能特点、调节模式、控制模式、AVC系统无功分配值计算、无功分配原则及AVC系统安全约束条件,以及闭环试验的结果和分析。

关键词:沙湾水电站;自动电压控制(AVC);监控系统;分析

1 概述

随着电网规模的不断扩大,原有无功电压人工手动调整控制手段已不能满足电网安全、稳定、优质运行的要求,需要采用全网一体化的自动电压控制系统(AVC) 进行全网无功电压优化协调控制,以降低网损、提高电网电压稳定水平和电压质量。 水电厂自动电压控制(AVC)是按照预定条件和要求自动控制水电厂母线电压或全电厂无功功率的技术。水力发电厂可以通过快速调节电厂的无功功率使母线电压稳定在一个合理的范围,从而达到提高电能质量的目的。沙湾水电站AVC功能在监控系统上位机系统中集成实现。AVC软件包运行在双机配置的应用服务器中,目前电厂AGC软件包已经运行在应用服务器中。双机配置的应用服务器是主备运行方式工作,双应用服务器无扰动切换,只有主应用服务器能发出控制命令。同省调通信目前2路IEC 104规约通信和1路101规约通信。IEC 104规约通信通道电站侧是双通信服务器配置。2010年2月9日,沙湾水电站4台机组全部投运以来运行稳定,已具备AVC调试条件。

2 AVC功能总体设计背景及原则

沙湾水电站装机规模为480MW,采用扩大单元接线接线方式,配置 2台主变压器,以220kV电压等级并入四川电网,电站计算机监控系统由上位机系统(含工程师站、 *** 作员站、历史数据服务器、调度通信工作站等硬件设备以及H9000监控软件)、现地7套机组现地控制装置(siemens S7-414H系列PLC)、 5套厂用/公用现地控制装置、1套开关站现地控制装置以及 1 套闸门现地控制装置等组成,电站AGC/AVC集成在计算机监控系统H9000上位机软件中。

电站自动调压装置采用东方电机控制设备有限公司生产GES-3320型励磁系统。每台机组配置1个调节柜、3个功率柜、1个灭磁电阻柜、1个灭磁开关柜,实现PSS、电压自动调节等功能,并接受来自监控系统的增减磁命令。目前,机组励磁系统运行正常,PSS功能正常投运。

AVC以母线电压为调节目标。沙湾水电站自动电压控制AVC功能提供两种控制模式:第一种是全厂控制模式,在全厂控制模式下,沙湾水电站AVC子站系统接收省调AVC主站系统下发的全厂控制目标和全厂无功范围约束。AVC软件按照控制策略合理分配给电厂AVC可控制的每台发电机组,调节发电机无功出力,在全厂无功约束范围下,220kV 高压母线电压达到全厂目标控制值,实现全厂多机组的电压无功自动控制。第二种为单机控制模式,AVC子站系统直接接收AVC主站系统下发的每台机组的无功出力控制目标值,通过调节发电机无功

出力,最终使各机组无功出力达到目标值。控制方式有当地控制和远方控制。

自动电压控制采用下列方式运行:

(1)母线电压曲线方式

在该方式运行时,AVC自动检测母线电压是否在相应时段的母线电压上限、下限值范围内,一旦发现超出则通过调节全厂无功功率,使电站高压母线电压维持在该时段母线电压上限、下限值范围内。

(2)给定母线电压控制方式

在该方式运行时,AVC根据运行人员给定的母线电压目标值,调节机组无功功率,使电站高压母线电压维持在给定的死区范围内。

上述两种控制方式可由运行人员通过计算机系统人机接口设备在AVC控制画面上进行切换,通过调用相应的画面,运行人员也可随时修改母线电压曲线。在每天的零点,AVC自动将明日电压曲线输入到今日电压曲线。

AVC周期监视母线电压,一旦母线电压超出允许范围(死区),即根据设置的母线电压~无功调差系数计算出所需增减的全厂无功值,然后根据新的全厂无功值在发电运行的AVC可控机组间分配,分配准则:为按机组容量比例在各AVC成组可控机组中进行无功分配,同时参照机组P-Q运行图、设置的机组无功限值及相关约束条件。

当AVC控制方式为“投入”时,AVC用机组无功功率调节命令通过网络通讯将分配结果自动发给各AVC成组可控机组现地控制装置(LCU),由LCU无功功率调节软件根据设置的无功调节参数,计算出调节脉宽对励磁装置AVR进行自适应控制,直至达到给定的无功功率目标值。若母线电压仍未恢复正常,AVC再根据当前母线电压偏差值及设置的母线电压~无功调差系数重新计算出所需增减的全厂无功值,在各AVC成组可控发电运行的机组间进行新一轮分配,直至母线电压恢复正常或全厂无功功率分配完。

当AVC控制方式为“开环”时,AVC将闭锁控制命令输出,但仍进行全厂AVC无功计算分配,其结果写入数据库无功优化分配区,运行人员可通过AVC控制画面查看分配结果,实现开环指导。

运行人员可通过人机界面整定或修改母线电压的调节死区、调压系数、机组无功上下限,以适应机组调节特性的变化。

AVC功能可由运行人员随时无扰动投入或退出。各机组也可由运行人员随时设置为无功成组或无功单机。

当AVC功能开始执行或因故退出执行时均有相应的报警信息发出,用于提示运行人员。另外,当母线电压越限而AVC无法完成调节时(如无成组可控机组或成组可控机组无功已到限值),AVC也会发出调压任务无法完成的报警信息。

3 无功分配方式

AVC是依靠机组无功功率调节来实现对母线电压的调节的,即“目标总无功功率 = 当前总无功功率+电压调差系数(目标电压-当前电压)”

对目标无功功率,应在当前可用的无功成组机组间进行分配,当前较为常用的无功分配方式有机组间按容量比例分配和等功率因数分配两种方式,当同一母线上所有机组均无功成组时(如有未成组的机组,则在计算总有功/无功时不包括此机组)。

(1)无功容量比例分配原则,

QiAVC=QAVC⨯QiMax

∑n

i=1QiMax(i=1,2, ,n)

注:n:参加AVC的机组数

错误!未找到引用源。:参加AVC的第i台机组的最大无功容量。

错误!未找到引用源。:参加AVC机组的最大无功容量之和。

QiAVC:AVC分配到第i台参加AVC机组的无功。

(2) 等功率因数原则,

QiAVC=QAVC⨯Pi

∑n

i=1iP(i=1,2, ,n)

注:n:参加AVC的机组数。

Pi:参加AVC的第i台机组的当前有功实发值。

∑n

i=1Pi:参加AVC机组的当前有功实发值之和。

错误!未找到引用源。:AVC分配到第i台参加AVC机组的无功。

不参加AVC机组,AVC分配值跟踪实发值,但此值只供显示,并不实际作用于该机组。母线电压与给定电压值在电压死区内,AVC分配值跟踪实发值。AVC将同时具有这两种分配方式,并可由 *** 作人员自由选择使用哪种方式进行计算。

4 电厂AVC子系统结构及配置

省调AVC主站与沙湾水电站AVC子站系统拓扑结构示意见下图所示。

5 安全策略

51 机组增磁闭锁条件

在加无功升压的过程中,如机组机端电压、励磁电流、实发无功、相应厂用母线电压、定子电流(滞相运行)越高闭锁值,即停止该机组的加无功升压作业,仅允许往相反方向调节。且当所有机组都达到加励磁约束条件之一时,将增无功闭锁信号发送给省调。

52 机组减磁闭锁条件

在减无功的过程中,如机组机端电压、实发无功、相应厂用母线电压、转子电流越低闭锁值,定子电流越高闭锁值(进相运行),即停止该机组的减无功作业,仅允许往相反方向调节。且当所有机组都达到减励磁约束条件之一时,将减无功闭锁信号发送给省调。

53 单机AVC条件不满足退出

以下条件为机组运行中可能突然出现的异常、故障、事故情况,当这些情况任意之一发生时,机组退出AVC功能,以保障设备安全。

(1)机组出口断路器分闸;

(2)励磁系统现地控制模式或机组LCU现地模式;

(3)励磁故障;

(4)大于一个功率柜退出;

(5)下位机故障或通讯故障;

(6)机组增减磁同时闭锁;

(7)机端电压、有功采样故障或突变。

54 全站AVC异常退出

以下条件为机组运行中可能突然出现的异常、故障、事故情况,当这些情况任意之一发生时,全站退出AVC功能,以保障设备安全。

(1)继电保护或是安控装置动作;

(2)机组无功突变或是无功变送器故障(采样值质量位故障);

(3)机组强励动作;

(4)2台AVC应用程序服务器同时故障或退出运行;

(5)220KV母线电压突变、波动越限、采样故障;

(6)监控系统双网同时故障;

(7)未闭锁的情况下长时间调整不到目标值。

6 信息交互

61 AVC子站采集信息(遥测、遥信)

沙湾水电站AVC子站根据AVC主站控制模式的不同,接收主站下发的母线电压目标值或无功目标值,并进行闭环跟踪控制。同时具有对全厂的母线电压控制方式和对单机的无功给定控制方式,即可接受省调母线电压值和单机的无功值的遥调控制。同省调自动化系统通过2路IEC 104规约和1路IEC101通信,依照《四川电网自动电压控制(AVC)主站及子站互联接口规范》要求和沙湾水电站的实际情况制定。从子站向主站传输的信息,包含控制执行以及对子站控制过程监视与安全校核等内容,从主站下发到电厂子站的信息,以高压侧母线电压为主。

62 通信接口

621 AVC子站与AVC主站通信接口

电站AVC子站通过电厂远动装置(通信工作站)利用远动通道与AVC主站进行通信,上传AVC子站信息及接收AVC主站下发的遥控遥调命令。

远动装置(通信工作站)与主站的通讯采用网络和/或专线方式,通信规约采用SC 1801、DL/T6345104-2002等部颁规约并遵循电网的相应实施细则。

622 AVC子站与LCU的接口选择

电站AVC子站系统的控制命令通过现地控制单元LCU与励磁调节器AVR接口,利用电站计算机监控系统的机组无功调节回路实现。沙湾水电站目前能实现的接口方式开关量方式、模拟量方式和通信方式。采用开关量调节方式,机组无功闭环控制在LCU中实现。此方式实际运用中优点是励磁控制模式不受影响,原有监控系统与励磁之间的控制方式不变,缺点是机组LCU无功调节时间长,且容易超调且波动大。采用模拟量控制方式,则机组无功闭环控制在励磁系统中实现,优点是无功控制精确,调节时间短,缺点是模拟量控制可能受到干扰,且由于励磁系统工作在无功闭环控制模式,存在一定的安全性问题。通讯方式则采用MODBUS规约串口通讯方式,实际运用中有延时且不可靠暂不考虑。

综合几种情况,沙湾电站选用了开关量方式调节并设置防止因控制信号输出继电器接点粘死而导致误控的措施,调节效果良好。

7 结语

沙湾水电站于2014年06月17日与省调AVC进行联合调试试验。试验主要内容为等无功容量分配模式下的机组开环/闭环试验(包括受控机组AGC投入情况)以及相关安全策略试验。调试时,退出全站AGC功能。通过完善AVC程序,优化AVC参数,不断进行各功能、各级测试,AVC各项性能已满足各项质量要求并顺利进入试运行。从实际运用的效果看符合省调相关质量标准,采取的控制策略满足了调度和电站对于AVC的功能要求,使母线电压维持在给定值04KV之内。但是需要注意的是运用中无论AVC采用何种无功分配原则,有功变化都会使得无功重新分配。因此,如果AGC同时投入运行,就必须考虑AGC的影响,尤其是针对沙湾水电站振动区大,调节频繁的水电机组,要综合分析比较,合理采取无功分配策略和机组无功闭环实现方式、调节方式,否则无法稳定运行。其次对于像沙湾水电站这样的扩大单元接线的机组,单一投入同一单元的一台机组AVC功能,在调整无功功率的过程中另外一台机组会向相反的方向调节。因此必须在安全约束条件中注意增加避免出现“无功环流”现象的条件。AVC的功能要由励磁调节器实现,而励磁系统固有的特性和一些功能也会影响到AVC的效果,这就是调差环节、PSS反调以及低励限制。

AVC控制是水电厂稳定经济运行的基础,也是电站实现“无人值班、少人值守”的前提条件。但是实际运行中,有许多问题需要解决,且每个电站的特点不一样,AVC需要根据各电厂的运行情况探索出最适合的程序和方案,以满足电站稳定经济运行的要求。

参考文献:

[1] DL5002-2005,地区电网调度自动化设计规程[S]

[2] DL5003-2005,电力系统调度自动化设计规程[S]

[3] DL/T634-1997 ,基本远动任务配套标准[S]

作者简介:陈胜祥(1986-),男,四川乐山,二次专业工程师,从事水电厂二次设备维护、检修工作。联系电话:[1],邮箱:80370693@qqcom。

颜现波(1981-),男,河北邯郸,硕士学位,工程师,主要从事水电站计算机监控系统的研制、集成,水电站自动发电控制系统研究。

郑勇 (1980-),男,四川绵阳人,助理工程师,现任生产部副主任,从事水电厂生产技术管理工作。

⑴ 、调试的一般流程

         1 、确定规约版本。 现今一般采用02版。

         2 、确定通讯参数。 主站IP地址(目的IP地址)、远动IP地址(源IP地址)及它们的子网掩码,网关地址。另源端口和目的端口都是2404,这是104规约的唯一端口号。还有就是远动是server端,而调度是client端。

说明:

        注意在配置过程要尽量不要开输入法,配置文件中的字符仅支持半角模式(1个字符1个字节),输入法默认的可能是全角模式(1个字符2个字节)。同时,还需要注意空格的问题,不能多空也不要少空。记住,输入字符时要区分大小写。各类描述尽量少用汉字,避免引发未知错误。新手往往会在这里栽跟头。

         3 、配库。 根据点表、说明书、 *** 作指导书等资料配库。

说明:

        这步说起来简单,但根据远动软硬件的不同,经常出现各种各样的问题。这里只说一下比较常见的一些较为简单的问题——

        第一,遥测、遥控的起始点号与主站不一致。主站提供点表一般都是从0或1开始的顺序号,我们需要确认0或1对应的实际起始信息对象地址,不同类型报文的信息对象地址范围不能有交叉。

        第二,如果出现遥脉值无法上送的情况,可能是因为计数量召唤限定词的冻结命令词为0,部分主站不支  持。还有就是有些主站不能处理带时标的电度值。

        第三,从站中各遥测的数据类型必须保持一致,不能混用。未选用的类型其个数必须设置为0。

        第四,SOE一般为7字节时标,部分老站只支持3字节时标。

        第五,数据上送类型,主从双方要配置一致。老调度站遥测一般为归一化值,遥信为单点遥信,遥控为单点遥控,SOE采用短时标或长时标,按实际情况选择;新调度站,遥测一般为短浮点数,遥控和遥控均为单点,SOE采用长时标。

        第六,远动转发系数,在以南瑞科技远动为例,当采用短浮点数上送调度时,这种情况下,需要将测控采集到二次值转换为一次值,转发系数填写直接用后台的标度系数/参比因子;基数值填写后台的基础值。采用归一化值上送调度,系数都填1,基础值都填0。数据的系数处理就留给调度端进行,调度端的处理方法也是系数采用变电站后台的标度系数/参比因子,基值就是后台的基值。另转发系数需要在配置文件中将其使能,方才有效。

        其实转发系数各种配置的目的只有一个,将库中的码值转换成调度需要的值。以南瑞科技为例,当短浮点数上送时,实际上是以一次值上送;而用归一化值上送时,实际上是以码值上送。

        综上,上述设置只是一般情况,具体需要看调度那边到底需要的是一次值、二次值还是码值。如果数据出  现溢出的情况,还需另行调整。

        另外需要注意的是装置上网的遥测值是二次值还是码值,一般来说是二次值,所以需要配置参比因子转换成码值入库。若装置上网的是码值,则可以直接入库。

      4 、远动入网。 网线一般采用一对一方式制作,连接网线将远动接入网络。一般来说,远动都是通过路由器与整个网络进行连接。

      5 、检验网络连通性。

        先让主站ping网关看能否ping通,能够ping通说明远传通道没有问题。然后让主站ping远动,能够ping通的话就说明远动和主站间的通道没有问题。

        然后再从远动ping网关,再ping主站。互相ping通后,通信一般就没有问题了。这时应该能够看到远动与主站连接的NET口的灯会闪烁,表示收到了主站数据。部分型号远动会有收发指示灯,这就更好判断了。

        如有双机,一定要做主备机切换试验。

说明:

第一类,Ping网关不通的常见情况如下——

        第一,有些交换机或路由器的网卡不能自适应收发线序,需要用交叉网线;

        第二,子网掩码设置错误;

        第三,一般网关的网口是指定的,插错网口将无法ping通网关;

        第四,网段与其他网卡冲突;

        第五,网卡损坏,通过笔记本测试验证即可。

第二类,能ping通网关,却ping不通主站的常见情况如下——

        第一,缺少route文件或route文件配置错误;

        第二,路由器未正确设置(10M/100M,全双工/半双工),在100M全双工的情况一般可以ping通主站;

        第三,某些 *** 作系统对路由数存在限制,把路由IP设置改成网段格式即可;

        第四,查看路由的日志,并检查路由器的软件版本是否正确。

第三类,能ping通主站,但主站无法建立TCP连接的常见情况如下——

        第一,配置文件中TCP模式、端口号、远端IP设置不正确;

        第二,IP地址格式不对,如配置时,启动了输入法;

        第三,相关进程未启动,这个一般要问研发。

        第四,主站问题。将远动机网线插到笔记本,笔记本设置成远动机IP,ping通主站后,运行服务器端模拟工具,设置端口号,开始监听,如果收到主站连接,且显示的远端地址与之前调度提供一致,证明主站连接无误,继续检查远动相关配置。如果收不到连接,或者远端地址不一致,主站相关设置错误,主站检查自身设置。常见的有访问地址错误,自身地址错误,端口号错误等。一般修改完成后需要重启才能生效。

6 、确认报文。 这时可以通过调试软件去看一下报文,到这步一般就没什么大问题了。

        部分调度站要求会比较高,那么就要用到规约测试软件,通常会测试总召唤,对时,循环数据的主动上送,四遥,变化遥信(SOE),变化遥测,停止链路,启动链路。根据测试软件不一,使用步骤也略有区别。这个可以单独写一篇,这边就不再深入了。

⑵ 运行

        运行中的问题,往往也是多种多样的。事后会发现很多问题原因很简单,排查过程确实历尽曲折。例如主站不下发遥控令,最后原因是发现有遥信点位不断上送;遥信的品质因数不正确,原因是有间隔在检修位或装置位于调试态;遥信误发,原因改造后点位数目超限;还有等等各种情况。所以这里只选一些最常见的情况进行分析。

1 、连接经常中断

Ⅰ 、通道质量差

① 线缆因素

        104协议的传输介质主要是光纤和网线。使用网线测试仪检测网线,使用光功率计及光源检测光纤。

② 网络架构及功能软件因素

        SOE的分辨率应小于10ms,如能满足此项要求,则可采用104规约的对时功能,这也说明了网络通信良好。

        通常使用ping指令进行初步判断。一般ping5~10min中,按crtl-c组合键中止。记录ping指令的返回内容中的最大/最小响应时间,其值除2便是该网络的最大、最小延时,它们的差值在10ms之内,则符合标准。

③大数据包不能通过

        这种情况可以通过大数据包的ping命令进行测试,通过其返回内容判断针对大数据包的通信质量。        

        Window:ping IP地址 -l300;Linux:ping IP地址 -s300

Ⅱ、104规约自身问题

      到了这里就需要仔细分析报文,才能判断了。常见有以下几种情况:

        1、双方发送和接收序号存在错误如丢失、错序,造成一方判断数据包丢失从而关闭连接。

        2、双方没有正确使用k、w值。

        3、t1超时未确认,一方主动关闭连接。

2 、不能建立TCP连接

       在确保ping指令正常的情况下,一般是服务端未在监听状态。通过以下 *** 作来查看服务端是否处于监听状态:

        服务端查看2404端口是否在listening:nestat -an;

        远程查看服务器的2404端口是否在listening:telnet 1921681100:2404

3 、通道正常但无数据收发

        常见于远动重启或切机后,主站判断有问题,不发送U帧(启动数据传输)。一般拔掉网线可强制主站重连,如果还是不行,只能在主站侧进行处理。

一、消息中间件相关知识

1、概述

消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。

2、消息中间件的组成

21 Broker

消息服务器,作为server提供消息核心服务

22 Producer

消息生产者,业务的发起方,负责生产消息传输给broker,

23 Consumer

消息消费者,业务的处理方,负责从broker获取消息并进行业务逻辑处理

24 Topic

25 Queue

26 Message

消息体,根据不同通信协议定义的固定格式进行编码的数据包,来封装业务数据,实现消息的传输

3 消息中间件模式分类

31 点对点

PTP点对点:使用queue作为通信载体

说明:

消息生产者生产消息发送到queue中,然后消息消费者从queue中取出并且消费消息。

消息被消费以后,queue中不再存储,所以消息消费者不可能消费到已经被消费的消息。 Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费。

说明:

queue实现了负载均衡,将producer生产的消息发送到消息队列中,由多个消费者消费。但一个消息只能被一个消费者接受,当没有消费者可用时,这个消息会被保存直到有一个可用的消费者。

4 消息中间件的优势

41 系统解耦

交互系统之间没有直接的调用关系,只是通过消息传输,故系统侵入性不强,耦合度低。

42 提高系统响应时间

例如原来的一套逻辑,完成支付可能涉及先修改订单状态、计算会员积分、通知物流配送几个逻辑才能完成;通过MQ架构设计,就可将紧急重要(需要立刻响应)的业务放到该调用方法中,响应要求不高的使用消息队列,放到MQ队列中,供消费者处理。

43 为大数据处理架构提供服务

通过消息作为整合,大数据的背景下,消息队列还与实时处理架构整合,为数据处理提供性能支持。

44 Java消息服务——JMS

Java消息服务(Java Message Service,JMS)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。

5 消息中间件应用场景

51 异步通信

有些业务不想也不需要立即处理消息。消息队列提供了异步处理机制,允许用户把一个消息放入队列,但并不立即处理它。想向队列中放入多少消息就放多少,然后在需要的时候再去处理它们。

52 解耦

降低工程间的强依赖程度,针对异构系统进行适配。在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。通过消息系统在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口,当应用发生变化时,可以独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。

53 冗余

有些情况下,处理数据的过程会失败。除非数据被持久化,否则将造成丢失。消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。许多消息队列所采用的”插入-获取-删除”范式中,在把一个消息从队列中删除之前,需要你的处理系统明确的指出该消息已经被处理完毕,从而确保你的数据被安全的保存直到你使用完毕。

54 扩展性

因为消息队列解耦了你的处理过程,所以增大消息入队和处理的频率是很容易的,只要另外增加处理过程即可。不需要改变代码、不需要调节参数。便于分布式扩容。

55 过载保护

在访问量剧增的情况下,应用仍然需要继续发挥作用,但是这样的突发流量无法提取预知;如果以为了能处理这类瞬间峰值访问为标准来投入资源随时待命无疑是巨大的浪费。使用消息队列能够使关键组件顶住突发的访问压力,而不会因为突发的超负荷的请求而完全崩溃。

56 可恢复性

系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理。

57 顺序保证

在大多使用场景下,数据处理的顺序都很重要。大部分消息队列本来就是排序的,并且能保证数据会按照特定的顺序来处理。

58 缓冲

在任何重要的系统中,都会有需要不同的处理时间的元素。消息队列通过一个缓冲层来帮助任务最高效率的执行,该缓冲有助于控制和优化数据流经过系统的速度。以调节系统响应时间。

59 数据流处理

分布式系统产生的海量数据流,如:业务日志、监控数据、用户行为等,针对这些数据流进行实时或批量采集汇总,然后进行大数据分析是当前互联网的必备技术,通过消息队列完成此类数据收集是最好的选择。

6 消息中间件常用协议

61 AMQP协议

AMQP即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同开发语言等条件的限制。

优点:可靠、通用

62 MQTT协议

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议。

优点:格式简洁、占用带宽小、移动端通信、PUSH、嵌入式系统

63 STOMP协议

STOMP(Streaming Text Orientated Message Protocol)是流文本定向消息协议,是一种为MOM(Message Oriented Middleware,面向消息的中间件)设计的简单文本协议。STOMP提供一个可互 *** 作的连接格式,允许客户端与任意STOMP消息代理(Broker)进行交互。

优点:命令模式(非topic\queue模式)

64 XMPP协议

XMPP(可扩展消息处理现场协议,Extensible Messaging and Presence Protocol)是基于可扩展标记语言(XML)的协议,多用于即时消息(IM)以及在线现场探测。适用于服务器之间的准即时 *** 作。核心是基于XML流传输,这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其 *** 作系统和浏览器不同。

优点:通用公开、兼容性强、可扩展、安全性高,但XML编码格式占用带宽大

65 其他基于TCP/IP自定义的协议

有些特殊框架(如:redis、kafka、zeroMq等)根据自身需要未严格遵循MQ规范,而是基于TCP\IP自行封装了一套协议,通过网络socket接口进行传输,实现了MQ的功能。

7 常见消息中间件MQ介绍

71 RocketMQ

阿里系下开源的一款分布式、队列模型的消息中间件,原名Metaq,30版本名称改为RocketMQ,是阿里参照kafka设计思想使用java实现的一套mq。同时将阿里系内部多款mq产品(Notify、metaq)进行整合,只维护核心功能,去除了所有其他运行时依赖,保证核心功能最简化,在此基础上配合阿里上述其他开源产品实现不同场景下mq的架构,目前主要多用于订单交易系统。

具有以下特点:

官方提供了一些不同于kafka的对比差异:

>1、协议不同。
通讯管理机下行接口通讯协议有MODBUS-RTU、DL645、CDT91、DNP30、IEC 870-5-101、102、103、104、SPABUS,上行接口协议有IEC 870-5-104、MODBUS-TCP等。
串口服务器下行接口通讯协议有Modbus-RTU、Modbus-ASCII,上行接口通讯协议为Modbus-TCP。
通讯管理机上行采用的IEC 870-5-104协议,在遥信、遥测同时上传的情况下,具有遥信功能优先上传的优点,对保护动作信号和故障告警信号能迅速传达,Modbus-TCP不具有这种特点。
通讯管理机能够根据非标协议的特点,开发添加驱动程序,而串口服务器只能完成Modbus协议的透传,不支持扩展。
因此,通讯管理机的协议丰富,且通讯功能更好。
2、硬件配置不同
通讯管理机采用32位高速嵌入式CPU双核芯片,一个CPU核是装置的核心处理元件;另一个CPM——通信专用的CPU,数据处理+通信处理双核心,解决网络数据瓶颈。厂家串口服务器普遍采用32位以下单核处理器。通讯管理机的CPU处理功能更强大,响应速度更快。
3、软件环境不同。
通讯管理机采用嵌入式实时 *** 作系统VxWorks,提高对含有复杂代码程序的系统资源有效管理。
串口服务器软件程序简单,功能单一,不采用嵌入式 *** 作系统。
4、可扩展性。
通讯管理机提供双机冗余,双以太网等多种级联工作方式。为系统的扩展组合提供了极大的方便性和灵活性,下行最多可提供16个串行接口。
ANet智能通信管理机系列是一款采用嵌入式硬件计算机平台,具有多个下行通信接口及一个或者多个上行网络接口,作为信息采集系统中采集终端与平台系统间的桥梁,能够根据不同的采集规约进行水表、气表、电表、微机保护等设备终端的数据采集汇总,并使用相应的规约转发现场设备的数据给平台系统。
ANet智能通信管理机支持接收上级主站系统下达的命令,并转发给目标区域内的智能系列单元,完成对厂站内各开关设备的分、合闸远方控制或装置的参数整定,实现遥控和遥调功能,以达到远动输出调度命令的目标。
ANet智能通信管理机作为自动化系统网络与监测设备之间的通信接口设备,提供规约转换、透明转发、数据加密压缩、数据转换、边缘计算等多项功能。
ANet智能通信管理机实时多任务并行处理数据采集和数据转发,并可多链路上送平台数据。通过专门的配置管理软件,可为通道选择各自不同的通信协议,并可通过更改配置文件来改变通信管理机所连接仪表设备的数量及数据信息,而不需更改软件程序。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13442640.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-07
下一篇 2023-08-07

发表评论

登录后才能评论

评论列表(0条)

保存