前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >物联网设备接入层

物联网设备接入层

原创
作者头像
花落花相惜
修改2021-11-23 13:12:13
1.5K0
修改2021-11-23 13:12:13
举报
文章被收录于专栏:花落的技术专栏

14.1 负载均衡

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

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

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

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

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

14.2 消息队列

采用负载均衡 +

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

消息队列

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

常用的消息队列由:

  • kafka
  • RabbitMQ
  • RocketMQ

缓存系统

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

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

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

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

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

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

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 14.1 负载均衡
  • 14.2 消息队列
相关产品与服务
消息队列 CMQ 版
消息队列 CMQ 版(TDMQ for CMQ,简称 TDMQ CMQ 版)是一款分布式高可用的消息队列服务,它能够提供可靠的,基于消息的异步通信机制,能够将分布式部署的不同应用(或同一应用的不同组件)中的信息传递,存储在可靠有效的 CMQ 队列中,防止消息丢失。TDMQ CMQ 版支持多进程同时读写,收发互不干扰,无需各应用或组件始终处于运行状态。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档