中间件的介绍

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 中间件的介绍

1.1 什么是中间件

中间件是介于应用系统和系统软件之间的一类软件,他使用系统软件所提供的基础服务,衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。


例如MySQL就可以看作是具备中间件特性的一种技术,中间件技术必须遵循一定的规范和协议,例如 TCP/IP、UDP协议等等,无规矩不成方圆,只有遵守一定的协议才能去处理事情。MySQL 就遵循了 TCP/IP 协议,在我们平常的开发中使用不同的编程语言比如 Java、Go、Python 等来操作 MySQL 的前提也是要遵循 TCP/IP协议,根据此协议实现了不通语言的连接模块来达到通信的目的。

1.2 为什么要使用中间件

具体地说,中间件屏蔽了底层操作系统的复杂性,使开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,减少了技术的负担。

1.3 主要中间件的分类

1.3.1 Hadoop

当一个大的任务由一台机器在规定的时间内不能完成时,人们就要采用分布式计算,即很多台机器联合起来共同完成任务。换句话说,就是把大任务拆分成许多个小任务,然后再把这些小任务分配给多台计算机去完成。参与计算的多台计算机组成一个分布式系统,需要运行一系列的分布式基础算法。

Hadoop 实现了分布式计算中的基础算法(如一致算法、选举算法、故障检测、快照等),同时为用户提供了编程和命令接口。程序员调用这些函数能轻松写出分布式应用程序,我们都知道,如果一切从头开始,要完成一个分布式程序的编写是异常艰难的。


以 Hadoop 为基础的生态目前已经成为大数据的标准方案,被广泛用于金融、市场、电信、交通等行业的海量数据分析,在即将到来的大数据时代,它将会发挥更大的作用。

1.3.2 Linux-HA

负载均衡本身故障怎么办?如果负载均衡器出现故障,那么整个系统将会瘫痪。微软在Windows服务器版中集成故障转移集群软件。


集成故障转移集群软件的核心思想是,实时监测故障机器并及时让好的机器接管工作,对外提供高可用性。


集成故障转移集群软件的核心思想是,实时检测故障机器并及时让好的机器接管工作,对外提供高可用性。Linux-HA 意为 Linux 高可用性项目,此项目具体包含如下几个组件。

名称

作用

Heartbeat

负责维护集群中各节点的信息及它们之间的心跳通信。

Pacemaker

集群资源管理器,是核心组件,客户端通过 Pacemaker 来配置、管理并监控整个集群。此组件的社区网站为 http://clusterlabs.org/。OpenStack 高可用性部署实例中一般都采用 Pacemaker 和 HAProxy。

Resource Agent

为用于控制服务启停、监控服务状态的脚本集合,本地资源管理器(LRM)调用这些脚本来启动、停止、监控各种集群资源。

Cluster Glue

包含一套函数库和工具,在集群栈中,除集群消息传输(由 Heartbeat 承担)、集群资源管理(由 Pacemaker 承担)和资源代理(由 Resource Agent 承担)功能外,其他功能都由 Cluster Glue 来完成。它包含的两个主要部分是 LRM 和 Stonith,前者是本地资源管理器,后者的任务是隔离故障机器。

1.3.3 静态网站服务器

我们浏览一家公司的网站时,很可能就是跟那家公司服务器上的 Apache 程序打交道,网页浏览器与 Apache 成了标准的 C/S 模式,浏览器是客户端,而 Apache 是服务端。Apache 首先把主页对应的文件 index.html 发给我们,我们看到主页内容后,点击主页上的某个链接,它又把该链接对应的文件发给我们,过程如图 3 所示。

配合 PHP 引擎,Apache 也支持 PHP 动态网页。过程为:


1)当 Apache 收到用户要浏览的 PHP 文件后,把这个 PHP 文件发给 PHP 执行引擎。


2)PHP 执行引擎执行该 PHP 文件,产生一个临时的静态网页文件并发回给 Apache。


3)最后 Apache 把这个临时的静态网页文件发给用户。


采用 Perl、Python 和 Ruby 脚本语言编写的动态网页,其工作过程与 PHP 类似。


Apache 是最流行的开源网站服务器,在世界排名前 100 万的网站中,有 60.6% 的网站采用 Apache;在排名前 1000 的大型网站中,Apache 占到了 34.5%,而 Ngnix 占到了 34.9%,略胜于 Apache。

1.4 中间件技术常用

分布式中间件:1.ActiveMQ 2.RabbitMQ 3.Kafaka 4.RocketMQ


负载均衡中间件:1.NGINX 2.LVS负载均衡软件 3.keepalive 4.CDN


缓存中间件:1.Memcache 2.Redis


数据库中间件:1.Mycat 2.ShardingJDBC


相关文章
|
安全 中间件 数据安全/隐私保护
中间件的定义,包括它的功能、应用场景以及优势。
中间件是位于操作系统和应用软件间的系统软件,提供数据交换、应用集成、流程管理和安全保障等服务。常用于分布式系统、微服务架构和企业级应用,实现高效、低耦合的系统运行。其优势在于降低开发成本、提升系统性能、简化扩展和维护。中间件推动了软件技术的发展和创新。
1994 1
|
架构师 开发者 运维
开发人员各级岗位胜任力模型
上个月,我写了一篇《架构设计师能力模型》,为开发者指出一些发展的方向、架构师的能力要求,以及需要学习的相关知识。 本月,我为公司的人力部门编制了更加量化的《2017年研发人员岗位能力模型 V1.4》。
10347 0
|
Oracle 网络协议 关系型数据库
|
9月前
|
网络协议 算法 网络性能优化
第十一问:TCP的窗口机制是什么?
TCP的窗口机制是实现流量控制和拥塞控制的重要手段,主要包括滑动窗口、接收窗口(rwnd)和拥塞窗口(cwnd)。滑动窗口定义了发送方允许发送的数据范围,接收窗口控制接收方的缓冲区容量,拥塞窗口防止网络拥塞。这些窗口通过动态调整,确保数据传输的高效性和可靠性。
819 1
|
4月前
|
搜索推荐
大模型训练常见通信源语解释
本文总结了在大模型分布式训练中常用的通信原语,包括一对多操作(Broadcast、Scatter)、多对一操作(Gather、Reduce)以及多对多操作(AllGather、AllReduce、ReduceScatter、All-To-All)。这些操作在模型并行和数据并行场景中起到关键作用,如参数初始化、数据切分与汇聚、规约运算等。通过详细介绍每种通信方式的功能与应用场景,帮助理解分布式训练中的数据交互机制。
|
存储 索引 Python
元组(Tuple)在Python编程中的应用与实例
元组(Tuple)在Python编程中的应用与实例
445 2
|
12月前
|
网络协议 算法 Linux
通过实验深入了解 TCP 数据的发送和接收
本系列文章是组内写给新人和实习生的 TCP入门系列教程,结合了理论和实践,本篇为第二篇,建议先读上篇《通过实验深入了解TCP 连接的建立和关闭》。
|
存储 安全 Linux
在Linux中,用户和组的概念是什么?
在Linux中,用户和组的概念是什么?
|
缓存 NoSQL 关系型数据库
【Redis】 浅谈分布式架构
【Redis】 浅谈分布式架构
|
Ubuntu Linux
在Linux中,如何查看安装了哪些软件包?
在Linux中,如何查看安装了哪些软件包?