zoukankan      html  css  js  c++  java
  • 消息中间件-MQ

    中间件是什么

    中间件是计算机软件,它为操作系统以外的软件应用程序提供服务。它可以被描述为“软件粘合剂”

    中间件使软件开发人员更容易实现通信和输入/输出,因此他们可以专注于应用程序的特定用途。作为解决如何将新的应用程序与旧的遗留系统联系起来的问题的一种方法,它在20世纪80年代获得了普及,尽管这个术语自1968年以来就一直在使用。

    该术语最常用于支持分布式应用程序中数据通信和管理的软件。IETF 在2000年的一次研讨会上将中间件定义为“那些位于传输层(即 TCP/IP 层)之上但位于应用程序环境之下的服务”(即低于应用程序级 api)。在这种更具体的意义上,中间件可以描述为客户机-服务器中的破折号(“-”) ,或者对等网络中的对等网络中间件包括 web 服务器、应用服务器、内容管理系统以及支持应用程序开发和交付的类似工具

    数据库访问服务通常被描述为中间件。其中一些是特定于语言的实现,并支持异构特性和其他相关的通信特性。面向数据库中间件的例子包括 ODBC、 JDBC 和事务处理监视器。


    消息中间件 MQ

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

    如何测试MQ

    举个例子
    以某银行为例,它包括许多并行运行的系统,从而构成一个完整的应用程序。假设银行2019年的年利润率为1亿美元。

    这个利润是储蓄账户、信用卡账户、住房贷款账户等所有系统的总和。

    作为银行总部从其各自的系统寻求通信。此通信主要可由消息队列系统执行

    银行总部可以发送一个请求,它需要的储蓄帐户申请毛利。然后,保存帐户应用程序计算这些信息,以 XML 的形式存储它们,并将其放置到远程队列中。

    然后,总部将调用远程队列来检索此信息。

    MQ 中的关键配置是设置队列管理器

    关于队列管理器的一些重要细节

    • 拥有/管理 WebSphere MQ Application 的全部功能
    • 不负责传输数据
    • 包含一个通道和端口,用于将数据传输到特定的目标队列,或在内部存储消息,直到其他队列选择消息为止
    • 应用程序可以有多个队列管理器/通道来通信消息

    使用 MQ 进行功能测试

    • 应用程序配置
    • 队列配置
    • 信息格式
    • 消息正确性和完整性
    • 信息传递
    • 消息失败时,当它们发生了什么

    遵循与技术示例中所示的方法类似的方法,可以在多个应用程序上设置消息队列,以便从一个或多个应用程序中获取数据。

    在测试通过消息队列传递消息的应用程序时,有许多情况下消息可能无法从一个应用程序传输到另一个应用程序。

    • 输入 XML 消息格式问题,如不正确的标题、元数据问题、格式问题、数据问题等
    • 不正确的队列配置,如不正确的队列名称、管理器名称、通道、端口等
    • 消息大小可能超出预期,消息将落入错误/死队列文件夹
    • 队列服务器问题、连接性问题、远程队列问题等都会导致消息通信失败

    readmore

    https://kknews.cc/zh-tw/tech/rja48lo.html

    https://www.cnblogs.com/insane-Mr-Li/p/10684536.html

    github博客
    微信公众号:chasays, 欢迎关注一起吹牛逼,也可以加微信号「xxd_0225」互吹。


    作者:叉叉敌
    博客:https://chasays.github.io/
    微信公众号:Chasays, 欢迎关注一起吹牛逼,也可以加个人微信号「xxd_0225」互吹。
    本博客大多为学习笔记或读书笔记,本文如对您有帮助,还请多推荐下此文,如有错误欢迎指正,相互学习,共同进步。

  • 相关阅读:
    angular 中如何使用自定义组件
    angular组件数据和事件
    angular组件数据
    angular绑定数据
    angular自定义组件
    angular项目目录结构分析
    Angular 开发工具介绍
    从Microsoft.AspNet.Identity看微软推荐的一种MVC的分层架构
    EF How to use context.Set and context.Entry, which ships with EF4.1 ?
    C# 向IQueryable添加一个Include扩展方法
  • 原文地址:https://www.cnblogs.com/ievjai/p/14382194.html
Copyright © 2011-2022 走看看