物联网项目-服务端架构优化分析
一、概述
对于互联网项目,服务端的压力总的归纳起来通常为以下两个方面:
1. 数据处理
1.1 接受请求的能力
1.2 处理请求的能力(响应时间)
2. 数据存储
2.1 物理介质存储容量上限
2.2 大量数据的存储,影响数据处理速度
二、物联网项目特点
网络环境复杂
由于硬件设备的参与,且硬件有联网功能,所以网络情况更加复杂。多种客户端的出现,也导致系统架构也会相对复杂。
高可用
软件系统应提供7 * 24小时不间断服务。服务器一旦宕机,可能会影响用户使用,甚至数据丢失。
高并发、大流量
硬件设备通常需要定时或实时发送信息到服务端,当硬件设备数量达到一定程度,会需要很大的并发处理能力。
海量数据
客户端硬件设备发送信息到服务器的频率较高,所以很容易形成海量的数据信息。如果存储、管理这些海量数据也成为一个技术难点。
安全环境
由于物联网项目一般都需要硬件设备能够访问互联网,则服务器提供的服务也暴露于公网,使得服务器的安全风险相对更高。
需求变化快,发布频繁
如该项目还具有互联网项目的特点,则为了快速适应市场,满足用户需求,软件更新、发布频率必然非常高。
二、优化分析(都是资源惹的祸)
几个关键字:分离、拆分、集群、缓存、异步、冗余
1、分离
应用与数据(包括数据库和文件服务)分离;数据读写分离;前后端分离(web系统)
2、拆分
业务拆分,将项目的各个模块(如:用户、订单、商品等)拆分为单独的子项目。(分布式服务、分布式数据库、分布式文件系统本质上就是拆分)
3、集群
同一个功能(应用或服务)运行、部署在多台服务器上,以达到改善此功能的性能的目的(集群也是一种冗余)。
4、缓存
根据二八定律,80%的业务访问集中才20%的数据上。将这些高频访问的数据缓存在内存中,将大大提供系统性能。包括:数据缓存、文件缓存(CDN)
5、异步
有些操作比较耗时,却不需要理解返回结果的业务,可以使用异步方式来处理,减少系统资源占用和阻塞时间。
6、冗余
为了系统提供服务的持续性(7*24小时),或数据避免丢失的风险。一个服务运行在多台服务器上、相同的数据存储在多个物理介质。
三、示例目业务情况分析及预估
根据示例项目的业务情况,服务器的压力主要来自用户的行为数据上报,即设备端上报的用户行为数据或设备信息,当设备数量多时,会对服务器接收数据和存储数据的能力带来压力。
用户数量预估
假设设备数量为 15万。根据二八定律预估DAU(日活跃用户数)为3万。
设备产生的行为数据
如果平均每个设备每天工作30分钟,每天产生300条左右的记录。3w设备每天产生900w条数据。
四、架构设计方案
关键字:分布式、缓存、大数据存储
说明:
附:
Hbase介绍:
传统的关系型数据库对数据规模有一定的限制,如果数据规模超过一定的量级,数据库性能会有明显下降,这时通常就需要进行分库分表等操作。分库分表增加了数据库设计和软件设计的复杂程度。但是如果数据量级再往上涨,存储的复杂度和软件系统的复杂程度就会直线上升,对于后期的数据库和软件系统的维护带来很大负担。
HBase是一个高可靠、高性能、面向列、可伸缩的分布的,基于Hadoop的面向列的NoSQL数据库,可以提供实时计算的分布式数据库。提供了对大规模数据的随机、实时读写访问。HBase 的目标是存储并处理大型的数据,也就是仅用普通的硬件配置,就能够处理上千亿的行和几百万的列所组成的超大型数据库。
特点:
- 不支持join等复杂操作
- 不支持复杂事务
- 不存在复杂的表与表之间的关系,只有简单的插入、查询、删除、清空等
- 单表可以是10亿行,上百万列
- ......
ClickHouse简介:
ClickHouse是俄罗斯一家公司开源的一个极具"战斗力"的实时数据分析数据库,是面向 OLAP(在线分析处理) 的分布式列式数据看系统。轻量级,且不依赖于其他组件。
特点:
- 快
- 关系型、支持SQL
- 高性能、高可用
- 数据量级在PB级别
- 分布式
- ......
适用场景主要有以下几类:日志数据的行为分析(大数据分析),标签画像的分析,数据集市层分析;还可作为存储引擎集成在了产品内部,应用于知识图谱作为本体数据存储,及标签数据的存储引擎等。
总结
以上是生活随笔为你收集整理的物联网项目-服务端架构优化分析的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 快解析DDNS 无需公网ip 安全高效
- 下一篇: 折叠屏、智能汽车和HMS:一场关于数字生