SpringBoot高级消-息-RabbitMQ基本概念简介

首先对RabbitMQ做一个简单的介绍,和快速入门,RabbitMQ是我们的AMQP,就是我们高级消息队列的一个实现产品,

他的稳定性和可靠性呢非常高,也是我们现在一个非常流行的一个消息中间件,那么我们了解一下他的核心概念,

作为一个消息队列产品,他非常重要的一个概念,就叫Message,也就是我们说的一个消息,这个消息是我们发送者,

给我们消息代理,也就是我们消息队列服务器,发送的数据内容,这个消息他由消息头和消息体组成,就类似于HTTP

协议里面的,请求头和请求体一样,消息体是我们发出去的数据,它是不透明的,我们程序员定制的,而消息头呢,是

一系列可选的属性组,比如一个叫路由键,每一个消息到底要发给谁,是直接由他来指定的,就类似我们要把消息发到

网络里边,指定一个IP地址一样,后面我们详细再说,priority消息的优先权,包括delivery-model消息是否需要持久化

存储,还有我们的publisher,他叫消息的生产者,我们这个publisher,我们简称这个p,他们将我们的message消息,它会

直接先发给我们的服务器,服务器我们之前称之为消息代理,MessagerBoker,所以他是我们的消息发送者,我们也叫消息

生产者,而这个消息呢,他是直接发送给我们消息MessagerBroker,服务器里面有一个叫交换器,这个交换器是我们高级

消息协议里面的,他是用来接收我们这个生产者,发送过来的消息,并且将相应的消息路由到相应的队列,这个交换器跟

我们现实生活中的路由器是类似的,我们把消息交给交换器,这个交换器绑定了很多队列,跟查了很多网线一样,那我们这个

数据到底要到达哪根网线,交换器是通过路由来决定的,你这个路由件是谁就到达什么,在RabbitMQ中呢,我们这个Exchange,

有四种类型,direct,fanout,topic,headers,direct可以实现JMS中点对点,后面三个可以实现发布订阅模型,这些在后来会做

详细的解释,在这一块只需要清楚,消息是通过交换器来决定消息,发往哪个队列,发到哪

Quene我们称之为消息队列,消息队列其实就是用来保存消息的,它是我们消息的容器,也是消息发送到消息服务器,

最终我们来到队列里面,这个队列里面的消息呢,它会一直等到某一个人,连接这个队列以后,将这个队列里面的消息,

取走这个消息队列就不会存在了,这个就是消息队列,而一个消息是如何抵达队列呢,结合我们以前的概念,首先是我们

消息的生产者,这个生产者他创建一个消息,这个消息先发给消息队列服务器,但是先会到达消息服务器的Exchange,

交换器,这个交换器根据你发的消息,指定的路由件,我给你派给某一个队列,在我们这个消息队列服务器里面,可能有

非常多的队列,我根据你这个路由件,把你派发到某一个队列里面,你这个消息就会被放到队列,而这种派发规则,就相当于

我们这个队列,要跟我们这个交换器要做关联,这个关联关系就称为绑定,其实就是我们这个交换器,和我们这些消息队列,

共同组成的一个路由表,而我们说这个交换器,和队列之间的绑定关系,是可以多对多的,一个交换器可以绑定多个队列,那么

一个队列呢,可以由多个交换器都来绑定上,你不管消息发给哪个交换器,比如这三个交换器,绑定这一个队列,都能到达一个

队列,这样我们再来说一个Connection,网络连接,我们要操作消息队列,我们要建立起连接,所谓的信道呢,是为了解决多路

复用的,如果我们每去消息队列里面,来取一个消息,我们都建立一条TCP连接,那么这是非常耗费资源的,所以我们这个消息

队列服务器呢,跟他建连接的时候,它是来建立一条TCP连接,然后如果我们要获取数据,他就在整条的tcp连接里面,来开多个

信道,这个信道就是我们来真正发送数据,订阅队列,接收消息的通道,所以他是为了节省资源的操作

我们叫生产者发布者,发送消息的人就叫消费者Consumer,而我们的VirtualHost,我们称为虚拟主机,

简称叫做Vhost,他其实就是说,把我们整个rabbitmq服务器,我们可以划分出很多的虚拟主机,每一个虚拟主机,

其实就是一个迷你版的rabbitmq,他们都是可以独立运行的,而虚拟主机跟虚拟主机,之间是隔离的,每一个虚拟主机

有他自己的消息队列,包括有自己的交换器,还有自己的路由规则,还有自己的权限控制机制,包括你自己的身份认证的,

加密信息等等,每个虚拟主机都是不一样的,那我们连接我们的rabbitmq的时候呢,我们必须指定我们的虚拟主机,虚拟主机

默认是/,是通过路径来划分的,你这个虚拟主机叫/abc,等等都行,还有我们的broker,我们也称之为messagerbroker,翻译过来

就叫消息代理,所谓的消息代理,指的就是我们这个服务器,那么这些概念之间的相互交互,是这样子的,我们消息的发布者,

也叫生产者,我们这里发了一个消息,这个消息发给消息代理,也就是会我们这个服务器,发给服务器里面的Vhost,叫虚拟主机,

虚拟主机里面有非常多的交换器,我们先把消息发给虚拟主机,虚拟主机发给指定的交换器,这个交换器再根据我们的路由件,

我们要看到底要把扔到哪个消息队列里面,那么这个路由规则,就是通过绑定关系来表示的,那么当我们消息到达消息队列以后,

我们消费者就可以从消息队列里面取消息了,怎么取呢,我们消费者就跟消息队列建立起连接,这个建立起连接以后呢,为了资源

多路复用,我们每一条TCP连接里面,开辟很多的管道,这个管道里边数据进行交互,我们从消息队列里面拿到的数据,通过这个管道

返回给消费者

 

深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值