什么是中间件,它有什么作用常用消息中间件比较

本笔记大部分携带与Web站点学相关的RabbitMQ,顺便组合文字进行记录,便于回顾,仅用于学习!

视频地址: https://www.bilibili.com/video/b v1dx4y1 v73 g作者真的很好。 不要卖淫,记得三联

如果有侵权,请联系删除。

1 .什么是中间件我国企业从20世纪80年代开始逐渐进行信息化建设,由于方法和体系的不成熟,以及企业业务和市场需求的不断变化,一个企业面临着同时运行着多个不同的业务系统,这些系统可能基于不同的操作系统、不同的数据库、异构的网络环境目前的问题,就是如何把这些信息系统有机地中间件是解决之道,它具有独特的复杂性,以换取企业APP应用的简单性。

有人认为,“中间件”Middleware )是操作系统和APP应用程序之间的软件,应该是操作系统的一部分。 在使用中间件时,一系列中间件包括开发平台和运行平台)通常集成在一起组成平台,但其中一些中间件需要名为中间件=平台+通信的通信中间件此定义仅在分布式系统中称为中间件,与支持软件和使用软件区分开来。

示例:

远程故障保护RMI )负载平衡Load Balancing )负载平衡,将访问负载分布到每个服务器Transparent Fail-over )群集Clustering )大型机如何在新开发的系统中集成遗留系统)事务)全局/本地)全局事务)分布式事务)本地事务)同一数据库绑定中的事务)动态重新部署源系统,而不停止, 部署新系统系统管理)消息定向中间件异步调用编程)组件生命周期) ) 65资源轮询资源池安全)缓存)2.为什么需要使用消息中间件,具体而言,中间件是底层操作系统的复杂性降低了编程的复杂性,不再需要重复将程序移植到专注于自己业务的不同系统软件中,大大减少了技术负担。 中间件给APP应用系统带来的不仅是开发简便、开发周期短,还减少了系统的维护、运行和管理工作量,减少了计算机的整体费用投入。

为什么要使用MQ消息中间件? 解决了什么问题?

33559 www .建安墅.com/p/2820561158 C4

3 .为了解决中间件的特点分布异构问题,提出了中间件middleware )的概念。 中间件是平台硬件和操作系统)与APP应用程序之间的通用服务,如下图所示。 这些服务具有标准的程序接口和协议针对不同的操作系统和硬件平台,可以实现各种符合接口和协议规范的实施。

虽然可能很难严格定义中间件,但中间件应该具有以下特征:

1)满足大量APP应用的需要

)2)在多种硬件和操作系统平台上运行

)3)支持分布式计算,提供网络、硬件和操作系统平台之间的透明APP应用和服务交互

)4)支持标准协议

)5)符合标准的接口

由于标准接口对可移植性和标准协议的重要性,中间件已成为许多标准化工作的主要部分。 对于APP应用软件开发来说,中间件远比操作系统和网络服务重要,中间件提供的程序接口定义了相对稳定的上层APP应用环境, 无论底层计算机硬件和系统软件如何更新换代,只要升级和更新中间件,保持中间件的对外接口定义不变,APP应用软件几乎不变,APP应用软件

简而言之,中间件有很大的特点。是脱离于具体设计目标,而具备提供普遍独立功能需求的模块确保中间件是可更换的。 在一个系统设计中,如果体系结构、框架设计不是有问题,则在中间件的同时不可替代的可能是中间件,而在该系统中是中间件。

4 .必须仔细考虑在项目中何时将中间件技术用于项目的体系结构和重构,以及使用哪些技术和体系结构更改。 因为任何技术的融合和变化都可能导致人员、技术和成本的增加。 中间件技术目前在一些互联网公司和项目中得到广泛应用。 如果你还只建议初创公司使用单体体系结构,最多添加一个缓存中间件就可以了。 不是盲目追求新的或者所谓的高性能,追求的背后一定有业务的推进和项目的推进。 追求意味着你的学习成本、公司人员结构以及服务器成本、维护和运输成本会增加,需要慎重选择和考虑。

但是,作为开放员工,必须具备学习中间件技术的能力和思考。 否则,项目发展到一个阶段就容易掌握报价,面试中提到,给自己带来不小的麻烦。 在当今时代,这些技术也并不新鲜。 最重要的是自己

花时间和花精力去探讨和研究。

5. 中间件技术及架构的概述

知识图谱

6. 什么是消息中间件 6.1 单体架构

在实际的项目中,大部分的企业项目开发中,在早起都采用的是单体的架构模式

在企业开发当中,大部分的初期架构都采用的是单体架构的模式进行架构,而这种架构的典型的特点:就是把所有的业务和模块,源代码,静态资源文件等都放在一个工程中,如果其中的一个模块升级或者迭代发生一个很小的变动都会重新编译和重新部署项目。这种这狗存在的问题是:

耦合度太高不易维护服务器的成本高以及升级架构的复杂度也会增大

这样就有后续的分布式架构系统。 如下:

6.2 分布式架构

何谓分布式系统:
通俗一点:就是一个请求由服务器端的多个服务(服务或者系统)协同处理完成
和单体架构不同的是,单体架构是一个请求发起 jvm调度线程(确切的是 tomcat线程池)分配线程 Thread来处理请求直到释放,而分布式系统是:一个请求时由多个系统共同来协同完成,jvm和环境都可能是独立。如果生活中的比喻的话,单体架构就像建设一个小房子很快就能够搞定,如果你要建设一个鸟巢或者大型的建筑,你就必须是各个环节的协同和分布,这样目的也是项目发展到后期的时候要去部署和思考的问题。我们也不难看出来:分布式架构系统存在的特点和问题如下:

存在问题:

学习成本高,技术栈过多运维成本和服务器成本增高人员的成本也会增高项目的负载度也会上升面临的错误和容错性也会成倍增加占用的服务器端口和通讯的选择的成本高安全性的考虑和因素逼迫可能选择 RMI/MQ相关的服务器端通讯

好处:

服务系统的独立,占用的服务器资源减少和占用的硬件成本减少,确切的说是:可以合理的分配服务资源,不造成服务器资源的浪费系统的独立维护和部署,耦合度降低,可插拔性系统的架构和技术栈的选择可以变的灵活(而不是单纯地选择 java)弹性的部署,不会造成平台因部署造成的瘫痪和停服的状态 6.3 基于消息中间件的分布式系统的架构

没有加一层解决不了的事情!

从上图中可以看出来,消息中间件的是

利用可靠的消息传递机制进行系统和系统直接的通讯通过提供消息传递消息的派对机制,它可以在分布式系统环境下扩展进程间的通讯 7. 消息中间件应用的场景 跨系统数据传递高并发的流量削峰数据的并发和异步处理大数据分析与传递分布式事务

比如你有一个数据要进行迁移或者请求并发过多的时候,比如你有10 W的并发请求下订单,我们可以在这些订单入库之前,我们可以把订单请求堆积到消息队列中,让它稳健可靠的入库和执行

8. 常见的消息中间件

ActiveMQ、RabbitMQ、Kafka、RocketMQ等

9. 消息中间件的本质及设计

它是一种接受数据、接受请求、存储数据、发送数据等功能的技术服务

MQ消息队列:负责数据的传接受,存储和传递,所以性能要高于普通服务和技术

谁来生产消息,存储消息和消费消息呢?

10. 消息中间件的核心组成部分 消息的协议消息的持久化机制消息的分发策略消息的高可用,高可靠消息的容错机制 11. 小结

其实不论选择单体架构还是分布式架构都是项目开发的一个阶段,在什么阶段选择合适的架构方式,而不能盲目追求,最后造成的后果和问题都需要自己买单。但作为一个开发人员学习和探讨新的技术使我们每个程序开发者都应该去保持和思考的问题。当我们没办法去改变社会和世界的时候,我们为了生活和生存那就必须要迎合企业和市场的需求,发挥你的价值和所学的才能,创造价值和实现自我。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平