首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >深入理解物联网设备接入层

深入理解物联网设备接入层

原创
作者头像
大发明家
发布于 2021-12-18 03:14:48
发布于 2021-12-18 03:14:48
2.2K0
举报
文章被收录于专栏:技术博客文章技术博客文章

我们有了物联网数据接入的通信协议,例如MQTT;有了数据的存储和处理的技术;现在面临的一个挑战,就是怎么面对海量设备的接入和海量数据的输入。

从架构设计来说,负责设备接入的部分被称为设备接入层,在物联网中被称为IoT Hub。如果我们采用的通信协议是MQTT,那么这个接入层通常就是MQTT

Broker。

通常来说,整个架构可以简化为下面的图:

上面的图只是让我们能够更快的了解各个部分之间的关系,实际使用中要复杂的多,首先需要解决的就是物联网接入层的高并发和高可用。

14.1 负载均衡

面对海量的设备接入,单台服务器作为接入层的话,存在以下的问题:

  1. 很容易达到性能瓶颈,无法因对海量接入和数据
  2. 存在单点故障

要达到高并发和高可用,必须要采用多台服务器。服务器数量变多之后,具体要怎么协作来处理请求。这个时候就需要用到负载均衡技术。我们需要在所有的服务器之前添加一个组件——负载均衡器。所有的接入请求都会发送到负载均衡器,由负载均衡器将请求发送给后端的接入服务器。

负载均衡器可以通过各种预先设置好的策略,将请求分配给后面的各个接入服务器。通常使用的策略包括:

  • 轮询策略:将请求轮流发送给各个后端服务器。
  • 加权轮询策略:为各个后端服务器配置权重,根据权重将请求发送给后端的服务器。
  • 最小连接数策略:将请求发送给当前连接数最少的后端服务器
  • 加权最小连接数策略:在最小连接数策略中引入权重系数。
  • 源地址hash策略:根据请求源地址的ip地址的hash值,将请求分发给后端的服务器。

14.2 消息队列

采用负载均衡 +

多服务器的方式,能够提供接入层的高可用和高并发。这个时候压力会传递到更后面的数据库中,造成的结果就是请求响应会变慢甚至超时。因此,我们还需要采用一些方法来让设备接入层具有高性能。为了达到这个目的,我们会引入两个组件:消息队列和缓存。

消息队列

消息队列的一个常用的场景就是削峰填谷,这个功能也是我们在这里使用消息队列的原因。设备接入层在接收到数据之后,将数据发送到消息队列,就完成了自己的工作,可以给客户端发送返回消息。由于消息队列的高性能,这个过程会很快完成。后端的流处理程序和写入数据库的操作可以根据自己的节奏来从消息队列中读取数据进行消费。

常用的消息队列由:

  • kafka
  • RabbitMQ
  • RocketMQ

缓存系统

消息队列解决了写入数据库的性能问题,还需要解决读取数据库的性能问题。解决这个问题的方式就是使用缓存系统。

常用的缓存系统包括Redis和Memcached等。同时,还有些二级缓存的框架,例如JetCache和J2Cache等。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
暂无评论
推荐阅读
编辑精选文章
换一批
物联网设备接入层
要达到高并发和高可用,必须要采用多台服务器。服务器数量变多之后,具体要怎么协作来处理请求。这个时候就需要用到负载均衡技术。我们需要在所有的服务器之前添加一个组件——负载均衡器。所有的接入请求都会发送到负载均衡器,由负载均衡器将请求发送给后端的接入服务器。
花落花相惜
2021/11/23
2K0
6000字 | 深入理解 Ribbon 的架构原理(文末送会员)
今天我们来看下微服务中非常重要的一个组件:Ribbon。它作为负载均衡器在分布式网络中扮演着非常重要的角色。
悟空聊架构
2022/05/13
1.2K0
6000字 | 深入理解 Ribbon 的架构原理(文末送会员)
分布式服务的调用
分布式调用是指在分布式系统中,不同的服务实体相互调用和通信,以完成特定的业务功能或交互行为。在分布式系统中,各个服务可以位于不同的物理节点上,彼此之间通过网络进行通信和交互。
明志德道
2023/11/21
5230
计算机高并发浅析
高并发应用场景涉及大量用户同时访问或操作系统,这对系统的性能、稳定性和扩展性提出了高要求。以下是一些常见的高并发应用场景及其复杂性简介:
锅总
2024/07/04
2450
计算机高并发浅析
【万字长文】吃透负载均衡
更多干货内容,请关注公众号:高性能架构探索。回复【pdf】更有计算机经典资料免费获取
高性能架构探索
2021/10/27
7580
从 0 到 1,Java Web 网站架构搭建的技术演进
Linuxer
2017/11/01
3.1K0
从 0 到 1,Java Web 网站架构搭建的技术演进
快速理解高性能HTTP服务端的负载均衡技术原理
在一个典型的高并发、大用户量的Web互联网系统的架构设计中,对HTTP集群的负载均衡设计是作为高性能系统优化环节中必不可少的方案。HTTP负载均衡的本质上是将Web用户流量进行均衡减压,因此在互联网的大流量项目中,其重要性不言而喻。
JackJiang
2018/09/11
1.1K0
架构师聊的四层代理和七层代理,都在聊什么?
日常与大佬沟通或看文章,时不时总会遇到两个概念“四层代理负载均衡”和“七层代理负载均衡”,那么,所谓的四层代理和七层代理分别指的是什么?又在什么场景下用到呢?这篇文章就带大家聊聊这方面的知识点。
程序新视界
2022/05/09
2.1K0
架构师聊的四层代理和七层代理,都在聊什么?
一篇读懂分布式架构下的负载均衡技术:分类、原理、算法、常见方案等
关于“负载均衡”的解释,百度词条里:负载均衡,英文叫Load Balance,意思就是将请求或者数据分摊到多个操作单元上进行执行,共同完成工作任务。
JackJiang
2019/04/29
4.1K0
F5硬负载的原理及使用详解
在现代网络环境中,随着业务量的不断增长,网络请求的复杂性日益增加,服务器负载问题成为了保障业务稳定性和高可用性的重要挑战。F5负载均衡器作为一种高性能的硬件负载均衡解决方案,凭借其强大的流量分发能力、健康检查机制以及丰富的会话保持策略,在数据中心和云环境中扮演着至关重要的角色。本文将详细介绍F5硬负载的原理、关键特性以及在实际应用中的配置方法。
炒香菇的书呆子
2024/09/26
2.2K0
基于十余年实践的现代软件架构探讨
引言 多年的软件从业经验,给了我一个清晰的结论,好的软件是设计出来的。 当然,不只是好的软件,好的产品也是设计出来的。 对于一个大规模的软件系统,软件的架
Tiger 张虎
2024/12/24
6300
选择正确的负载均衡器:LVS还是Nginx?
LVS和nginx都是负载均衡软件。LVS是Linux内核级别的负载均衡软件,nginx则是应用级的、采用事件驱动的方式进行负载均衡软件。LVS是内核级的,更加专注于负载均衡功能的实现,可以提供更高的性能和稳定性;而Nginx的功能更加多元,除了负载均衡外,还可以作为Web服务器、反向代理服务器、缓存服务器等多种用途。
Lion 莱恩呀
2024/07/28
8400
选择正确的负载均衡器:LVS还是Nginx?
负载均衡技术全景:理论、实践与案例研究
在互联网的早期阶段,大型网站面临着巨大的挑战。随着用户数量的增长和数据量的爆发,单一的服务器往往难以承受如此巨大的压力。这就导致了性能瓶颈的出现,服务器的响应时间变长,用户体验下降。同时,单一服务器的可扩展性也受到了限制,随着业务的发展,流量可能会急剧增加,单个服务器很难通过增加硬件资源来满足需求。更为严重的是,所有请求都发送到同一台服务器,一旦该服务器出现故障,整个服务就会中断。
栗筝i
2023/10/16
1.5K0
负载均衡技术全景:理论、实践与案例研究
浅谈LVS
集群(cluster),从字面上就知道,集与群都是多的概念。集群就是多台机器组合在一起共同完成一个需求。
若与
2018/08/03
7520
浅谈LVS
玩转企业集群运维管理系列(七):Haproxy 负载均衡详解
HAProxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在时下的硬件上,完全可以支持数以万计的 并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
民工哥
2023/12/12
4240
玩转企业集群运维管理系列(七):Haproxy 负载均衡详解
Linux运维工程师面试题(3)
可以,禁用iptables并不会影响LVS的使用。LVS是在Linux内核层面实现的负载均衡技术,其底层并不依赖于iptables进行流量转发。LVS使用IP隧道或网络地址转换(NAT)等技术将来自客户端的流量转发到后端服务器上,而不依赖于iptables规则。
阿贤Linux
2023/08/28
6060
Linux运维工程师面试题(3)
分布式架构的高性能与可用性
分布式架构是一种将系统拆分为多个独立的组件或服务,并在不同的计算节点上部署这些组件或服务的架构方式。它可以提供高性能和可用性的好处。下面我将详细介绍分布式架构在高性能和可用性方面的优势。
明志德道
2023/12/27
4480
集群、分布式、负载均衡区别
  计算机集群通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多。   比如单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。一般分为几种:
BUG弄潮儿
2020/06/15
1.7K0
集群、分布式、负载均衡区别
常用云PaaS组件及开源组件业务运维指南
用于指导使用腾讯云的PaaS组件和常用开源组件进行业务开发的服务的部署实施环节和后续生产环境运维。文档摘取了腾讯云的官网文档中运维需要关注的技术指标,应用于初创团队快速对应用开发组件有一个快速了解。
ivanshang
2019/08/30
6.3K0
LVS原理知多少?
LVS简介   Internet的快速增长使多媒体网络服务器面对的访问数量快速增加,服务器需要具备提供大量并发访问服务的能力,因此对于大负载的服务器来讲, CPU、I/O处理能力很快会成为瓶颈。由于单台服务器的性能总是有限的,简单的提高硬件性能并不能真正解决这个问题。为此,必须采用多服务器和负载均衡技术才能满足大量并发访问的需要。Linux 虚拟服务器(Linux Virtual Servers,LVS) 使用负载均衡技术将多台服务器组成一个虚拟服务器。它为适应快速增长的网络访问需求提供了一个负载能力易于扩
小小科
2018/05/03
2.9K0
LVS原理知多少?
相关推荐
物联网设备接入层
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档