8中间件-Redis、MQ---基本

中间件(Middleware)是指位于客户端和服务器端之间的软件,用于处理请求和响应,以及提供额外的功能和服务。中间件可以用于各种不同的应用程序,例如Web应用程序、消息传递系统、数据库管理系统等。

在Web应用程序中,中间件可以用于处理请求和响应,例如身份验证、日志记录、缓存、压缩等。中间件可以在请求到达应用程序之前或之后执行,以及在响应发送到客户端之前或之后执行。

常见的Web中间件包括Express、Koa、Django、Flask等。

在JavaWeb中,中间件是指介于操作系统和应用程序之间的软件层,它提供了一些通用的功能和服务,如负载均衡、缓存、消息队列等,可以帮助开发者更方便地构建高性能、可扩展的应用系统。

常见的JavaWeb中间件包括:

1. Web服务器:如Tomcat、Jetty等,用于处理HTTP请求和响应。
2. 数据库连接池:如Druid、HikariCP等,用于管理数据库连接,提高数据库访问性能。
3. 分布式缓存:如Redis、Memcached等,用于缓存数据,减轻数据库负载。
4. 消息队列:如ActiveMQ、RabbitMQ等,用于异步处理消息,提高系统吞吐量。
5. 分布式RPC框架:如Dubbo、gRPC等,用于实现分布式服务调用。

12MQ

什么是MQ?

消息总线(Message Queue),是一种跨进程、异步的通信机制,用于上下游传递消息。由消息系统来确保消息的可靠传递。

MQ是干什么用的?

应用解耦、异步、流量削锋、数据分发、错峰流控、日志收集等等...

MQ衡量标准

服务性能、数据存储、集群架构

主流竞品分析

当前市面上mq的产品很多,比如RabbitMQ、Kafka、ActiveMQ、ZeroMQ和阿里巴巴捐献给Apache的RocketMQ。甚至连redis这种NoSQL都支持MQ的功能。

MQ简介icon-default.png?t=N7T8https://baijiahao.baidu.com/s?id=1680580434771197889&wfr=spider&for=pc

RabbitMQ 和kafka

Kafka和RabbitMQ有哪些区别,各自适合什么场景? - 知乎经常有人问我 有个 xx 需求,我应该用 Kafka 还是 RabbitMQ ?这个问题很常见,而且很多人对二者的选择也把握不好。 所以我决定写篇文章来详细说一下:Kafka 和 RabbitMQ 的区别,适用于什么场景? 同时,这个问题…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/453970771

kafka

https://www.baidu.com/link?url=9Jl7l_I5u3l8LM0sC507jOmVmbfwKnn0w9s452WkdCJBjA3jorkZbl6LlIzyj-fR&wd=&eqid=9cdb33b60001167d000000066528f6eficon-default.png?t=N7T8https://www.baidu.com/link?url=9Jl7l_I5u3l8LM0sC507jOmVmbfwKnn0w9s452WkdCJBjA3jorkZbl6LlIzyj-fR&wd=&eqid=9cdb33b60001167d000000066528f6ef

RabbitMQ

*RabbitMQ 的使用场景有哪些?
抢购活动,削峰填谷,防止系统崩塌。
延迟信息处理,比如 10 分钟之后给下单未付款的用户发送邮件提醒。
解耦系统,对于新增的功能可以单独写模块扩展,比如用户确认评价之后,新增了给用户返积分的功能,这个时候不用在业务代码里添加新增积分的功能,只需要把新增积分的接口订阅确认评价的消息队列即可,后面再添加任何功能只需要订阅对应的消息队列即可。
*RabbitMQ 有哪些重要的角色?
RabbitMQ 中重要的角色有:生产者、消费者和代理:
生产者:消息的创建者,负责创建和推送数据到消息服务器;
消费者:消息的接收方,用于处理数据和确认消息;
代理:就是 RabbitMQ 本身,用于扮演“快递”的角色,本身不生产消息,只是扮演“快递”的角色。
*RabbitMQ 有哪些重要的组件?
ConnectionFactory(连接管理器):应用程序与Rabbit之间建立连接的管理器,程序代码中使用。
Channel(信道):消息推送使用的通道。
Exchange(交换器):用于接受、分配消息。
Queue(队列):用于存储生产者的消息。
RoutingKey(路由键):用于把生成者的数据分配到交换器上。
BindingKey(绑定键):用于把交换器的消息绑定到队列上。
*RabbitMQ 中 vhost 的作用是什么?
vhost:每个 RabbitMQ 都能创建很多 vhost,我们称之为虚拟主机,每个虚拟主机其实都是 mini 版的RabbitMQ,它拥有自己的队列,交换器和绑定,拥有自己的权限机制。
*RabbitMQ 怎么保证消息的稳定性?
提供了事务的功能。
通过将 channel 设置为 confirm(确认)模式。
*RabbitMQ 有几种广播类型?
direct(默认方式):最基础最简单的模式,发送方把消息发送给订阅方,如果有多个订阅者,默认采取轮询的方式进行消息发送。
headers:与 direct 类似,只是性能很差,此类型几乎用不到。
fanout:分发模式,把消费分发给所有订阅者。
topic:匹配订阅模式,使用正则匹配到消息队列,能匹配到的都能接收到。
*RabbitMQ 怎么实现延迟消息队列?
延迟队列的实现有两种方式:
通过消息过期后进入死信交换器,再由交换器转发到延迟消费队列,实现延迟功能;
使用 RabbitMQ-delayed-message-exchange 插件实现延迟功能。
*RabbitMQ 集群有什么用?
集群主要有以下两个用途:
高可用:某个服务器出现问题,整个 RabbitMQ 还可以继续使用;
高容量:集群可以承载更多的消息量。

 zookeeper和nacos区别

https://www.cnblogs.com/syq816/p/16332417.htmlicon-default.png?t=N7T8https://www.cnblogs.com/syq816/p/16332417.html

 dubbo和feign的区别

dubbo和feign的区别_某科学的南条的博客-CSDN博客一、相同点Dubbo 与 Feign 都依赖注册中心、负载均衡。 二、区别 1、协议 Dubbo: 支持多传输协议(Dubbo、Rmi、http、redis等等),可以根据业务场景选择最佳的方式。非常灵活。默认的Dubbo协议:利用Netty,TCP传输,单一、异步、长连接,适合数据量小、高并发和服务提供者远远少于消费者的场景。 Feign: 基于Http传输协议,短连接,不适合高并发的访问。 2、负载均衡 Dubbo: 支持4种算法(随机、轮询、活跃度、Hash一致性),而且算法里面引_dubbo和feign的区别https://blog.csdn.net/nlcexiyue/article/details/114592032

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/139779.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flutter视图原理之三棵树的建立过程

目录 三棵树的关系树的构建过程1.updateChild函数(element的复用)2.inflateWidget函数3.mount函数3.1 componentElement的实现3.2 RenderObjectElement的实现3.2.1 attachRenderObject函数 4.performRebuild函数 总结三棵树创建流程 三棵树的关系 Flutt…

MySQL数据库(一)

数据库 —— 基础 1. 数据库 DataBase 数据库管理系统 2. SQL语言2.1 DDL数据定义语言2.1.1 数据库基础操作2.1.2 数据表基础操作2.1.3 字段基础操作 2.2 DML表记录管理2.2.1 插入数据INSERT2.2.2 更新数据UPDATE2.2.3 删除数据DELETE 3. SQL数据类型3.1 数值类型3.1.1 整数类型…

正点原子嵌入式linux驱动开发——Linux蜂鸣器

蜂鸣器驱动原理 有源蜂鸣器只要通电就会叫,所以可以做一个供电电路,这个供电电路通过一个IO来控制其通断 ,一般使用三极管来搭建这个电路。 在Linux下编写蜂鸣器驱动就需要以下工作: 设备树中创建蜂鸣器节点,加入GP…

零基础快速上手HarmonyOS ArkTS开发1---运行Hello World、ArkTS开发语言介绍

概述: 在华为开发者大会2023年8月4日(HDC.Together)大会上,HarmonyOS 4正式发布,其实在2021年那会学习了一点鸿蒙的开发: 不过因为现在的鸿蒙手机完全兼容Android应用,所以学习动力也不是很足,一直就搁置了&#xff0…

掌握.NET基础知识(一)

前言 本文将讲解一些.NET基础。NET基础是指在计算机编程中使用.NET框架所需要的基础知识..NET的认识: .NET是由微软开发的一个跨平台的应用程序开发框架。它包括一个运行时环境和一个面向对象的程序库,可以用于开发各种类型的应用程序,包括桌面应用程序、…

抓包工具charles修改请求和返回数据

数据篡改的主要使用场景: (1)mock场景,mock入参和返回值参数,实现mock测试 (2)安全测试,对于支付金额等比较重要的字段,可以修改请求参数来进行安全测试 1.首先选择要…

分享一下微信小程序怎么添加成绩查询插件

微信小程序如何添加成绩查询插件 一、引言 微信小程序是一种方便快捷的应用程序,可以在微信中使用。随着教育的不断发展,学校和家长对于学生的成绩查询需求也越来越高。通过在微信小程序中添加成绩查询插件,可以为学生和家长提供更加便捷的…

4-k8s-部署springboot项目简单实践

文章目录 一、部署原理图二、部署实践 一、部署原理图 部门一般都有一个属于自己的私服gitlab服务器,由开发者开发代码,然后上传到私服gitlab然后使用调度工具,如jenkins,去gitlab拉去代码,编译打包,最后得…

openGauss学习笔记-103 openGauss 数据库管理-管理数据库安全-客户端接入之SSL证书管理-证书生成

文章目录 openGauss学习笔记-103 openGauss 数据库管理-管理数据库安全-客户端接入之SSL证书管理-证书生成103.1 操作场景103.2 前提条件103.3 自认证证书生成过程 openGauss学习笔记-103 openGauss 数据库管理-管理数据库安全-客户端接入之SSL证书管理-证书生成 openGauss默认…

Docker 快速入门体验

Docker 是什么? Docker 是一个开源项目,它能够自动化部署应用程序,通过所谓的容器来实现。这些容器允许开发者将自己的应用以及依赖打包到一个可移植的容器中,然后发布到任何流行的 Linux 或 Windows 机器上也可以实现虚拟化。Do…

从Flink的Kafka消费者看算子联合列表状态的使用

背景 算子的联合列表状态是平时使用的比较少的一种状态,本文通过kafka的消费者实现来看一下怎么使用算子列表联合状态 算子联合列表状态 首先我们看一下算子联合列表状态的在进行故障恢复或者从某个保存点进行扩缩容启动应用时状态的恢复情况 算子联合列表状态主…

华为数通方向HCIP-DataCom H12-831题库(单选题:261-280)

第261题 某网络通过部署1S-IS实现全网与通,若在一台IS-IS路由器的某接口下配置命令isis timer holding multiplier 5 level-2,则以下关于该场景的描述,正确的是哪一项? A、该接口Level-2邻居保持时间为5秒 B、该接口Level-1邻居保持时间为30秒 C、该接口为点对点链路接口 …