负载均衡BLB基于百度自研4/7层负载均衡设备,为客户提供高可用的流量分发服务,可以在多台云服务器之间进行均衡的应用流量分发,避免单点故障并能提升业务可用性。轻松应对海量访问请求,实现业务水平扩展。
etcd简介 etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。
通过引入 UNP 平台可充分发挥软硬一体化的技术优势,百度智能云在 2023 年 1 月推出了可编程负载均衡 UNP-BGW 网关 1.0,有效解决了负载均衡网关中的大带宽、大象流、低延迟等问题需求,为负载均衡网关带来如下收益
集群负载重平衡基于节点疏散,通过手动的方式,控制将部分连接从负载较高的节点疏散到负载较低的节点,从而达成整个集群的负载平衡。
什么是 QoS 很多时候,使用 MQTT 协议的设备都运行在网络受限的环境下,而只依靠底层的 TCP 传输协议,并不能完全保证消息的可靠到达。因此,MQTT 提供了 QoS 机制,其核心是设计了多种消息交互机制来提供不同的服务质量,来满足用户在各种场景下对消息可靠性的要求。 MQTT 定义了三个 QoS 等级,分别为: QoS 0,最多交付一次。 QoS 1,至少交付一次。 QoS 2,只交付一次。 其中,使用 QoS 0 可能丢失消息,使用 QoS 1 可以保证收到消息,但消息可能重复,使用 QoS 2 可以保证消息既不丢失也不重复。QoS 等级从低到高,不仅意味着消息可靠性的提升,也意味着传输复杂程度的提升。 在一个完整的从发布者到订阅者的消息投递流程中,QoS 等级是由发布者在 PUBLISH 报文中指定的,大部分情况下 Broker 向订阅者转发消息时都会维持原始的 QoS 不变。不过也有一些例外的情况,根据订阅者的订阅要求,消息的 QoS 等级可能会在转发的时候发生降级。 例如,订阅者在订阅时要求 Broker 可以向其转发的消息的最大 QoS 等级为 QoS 1,那么后续所有 QoS 2 消息都会降级至 QoS 1 转发给此订阅者,而所有 QoS 0 和 QoS 1 消息则会保持原始的 QoS 等级转发。 接下来,让我们来看看 MQTT 中每个 QoS 等级的具体原理。 QoS 0 - 最多交付一次 QoS 0 是最低的 QoS 等级。QoS 0 消息即发即弃,不需要等待确认,不需要存储和重传,因此对于接收方来说,永远都不需要担心收到重复的消息。 为什么 QoS 0 消息会丢失? 当我们使用 QoS 0 传递消息时,消息的可靠性完全依赖于底层的 TCP 协议。 而 TCP 只能保证在连接稳定不关闭的情况下消息的可靠到达,一旦出现连接关闭、重置,仍有可能丢失当前处于网络链路或操作系统底层缓冲区中的消息。这也是 QoS 0 消息最主要的丢失场景。 QoS 1 - 至少交付一次 为了保证消息到达,QoS 1 加入了应答与重传机制,发送方只有在收到接收方的 PUBACK 报文以后,才能认为消息投递成功,在此之前,发送方需要存储该 PUBLISH 报文以便下次重传。 QoS 1 需要在 PUBLISH 报文中设置 Packet ID,而作为响应的 PUBACK 报文,则会使用与 PUBLISH 报文相同的 Packet ID,以便发送方收到后删除正确的 PUBLISH 报文缓存。 为什么 QoS 1 消息会重复? 对于发送方来说,没收到 PUBACK 报文分为以下两种情况: PUBLISH 未到达接收方 PUBLISH 已经到达接收方,接收方的 PUBACK 报文还未到达发送方 在第一种情况下,发送方虽然重传了 PUBLISH 报文,但是对于接收方来说,实际上仍然仅收到了一次消息。 但是在第二种情况下,在发送方重传时,接收方已经收到过了这个 PUBLISH 报文,这就导致接收方将收到重复的消息。 虽然重传时 PUBLISH 报文中的 DUP 标志会被设置为 1,用以表示这是一个重传的报文。但是接收方并不能因此假定自己曾经接收过这个消息,仍然需要将其视作一个全新的消息。 这是因为对于接收方来说,可能存在以下两种情况: 第一种情况,发送方由于没有收到 PUBACK 报文而重传了 PUBLISH 报文。此时,接收方收到的前后两个 PUBLISH 报文使用了相同的 Packet ID,并且第二个 PUBLISH 报文的 DUP 标志为 1,此时它确实是一个重复的消息。 第二种情况,第一个 PUBLISH 报文已经完成了投递,1024 这个 Packet ID 重新变为可用状态。发送方使用这个 Packet ID 发送了一个全新的 PUBLISH 报文,但这一次报文未能到达对端,所以发送方后续重传了这个 PUBLISH 报文。这就使得虽然接收方收到的第二个 PUBLISH 报文同样是相同的 Packet ID,并且 DUP 为 1,但确实是一个全新的消息。 由于我们无法区分这两种情况,所以只能让接收方将这些 PUBLISH 报文都当作全新的消息来处理。因此当我们使用 QoS 1 时,消息的重复在协议层面上是无法避免的。 甚至在比较极端的情况下,例如 Broker 从发布方收到了重复的 PUBLISH 报文,而在将这些报文转发给订阅方的过程中,再次发生重传,这将导致订阅方最终收到更多的重复消息。 在下图表示的例子中,虽然发布者的本意只是发布一条消息,但对接收方来说,最终却收到了三条相同的消息: 以上,就是 QoS 1 保证消息到达带来的副作用。 QoS 2 - 只交付一次 QoS 2 解决了 QoS 0、1 消息可能
macw在此附上相关功能介绍如下: 自适应音频: 这一全新聆听模式能够根据用户所处环境动态融合通透模式和主动降噪模式,带来最适合当下的聆听体验。
前文:Paxos理论介绍(2): Multi-Paxos与Leader 建议没有阅读前面文章的读者可以先花少许时间阅读一下。 Master 开门见山,我们先明确一下Master的定义。
San CLI 有什么功能 接下来,我们将从开发一个新项目的全流程,即项目的创建、本地开发、调试、打包上线这 4 个环节,来介绍 San CLI 的功能。
MQTT 还支持通过共享订阅的方式在多个订阅者之间实现订阅的负载均衡。 代理(Broker) 负责接收发布者的消息,并将消息转发至符合条件的订阅者。
前文:Paxos理论介绍(1): 朴素Paxos算法理论推导与证明 理解朴素Paxos是阅读本文的前提。
希望本文介绍的工具能帮助开发者顺利完成应用程序的上架过程,获得更多用户的喜爱和认可!