物联 项目-服务端架构优化分析

一、概述
对于互联 项目,服务端的压力总的归纳起来通常为以下两个方面:

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条数据。

四、架构设计方案

关键字:分布式、缓存、大数据存储

 

说明:

  1. 服务端采用微服务的设计、开发方式,分布式的部署。各个模块可以作为独立应用,即高内聚,模块之间通过RPC进行通讯调用,即低耦合。各个子模块可分开独立部署,具有很高的横向扩展能力,提高了请求的并发处理能力和数据处理能力。
  2. 关、注册中心/配置中心、业务服务都采用多节点部署方式,保证容灾的情况下提升了系统性能。
  3. 微服务监控中心每隔几分钟就会多各个微服务进行扫描探测,检测服务存活状态,如发现服务状态异常,则会发送短信 警。
  4. 数据库根据业务情况进行了拆分,每个业务模块独立使用一个数据库实例,分散(拆分)了整个系统对数据库的资源占用。数据库使用读写分离技术,进一步降低数据库压力。
  5. 使用Redis作为数据缓存,对于查询较多的“热数据”进行缓存处理,减少了数据库的压力。
  6. 因使用了分布式的部署方式,各个模块的应用日志分布在各个服务器上,所以使用日志收集组件,将各个服务器上的日志信息收集到一处,统一查看和归档管理。
  7. 为应对硬件设备产生的海量数据,使用Hbase和Clickhouse进行存储

附:

Hbase介绍:

传统的关系型数据库对数据规模有一定的限制,如果数据规模超过一定的量级,数据库性能会有明显下降,这时通常就需要进行分库分表等操作。分库分表增加了数据库设计和软件设计的复杂程度。但是如果数据量级再往上涨,存储的复杂度和软件系统的复杂程度就会直线上升,对于后期的数据库和软件系统的维护带来很大负担。

HBase是一个高可靠、高性能、面向列、可伸缩的分布的,基于Hadoop的面向列的NoSQL数据库,可以提供实时计算的分布式数据库。提供了对大规模数据的随机、实时读写访问。HBase 的目标是存储并处理大型的数据,也就是仅用普通的硬件配置,就能够处理上千亿的行和几百万的列所组成的超大型数据库。

特点:

  • 不支持join等复杂操作
  • 不支持复杂事务
  • 不存在复杂的表与表之间的关系,只有简单的插入、查询、删除、清空等
  • 单表可以是10亿行,上百万列
  • ……

ClickHouse简介:

ClickHouse是俄罗斯一家公司开源的一个极具”战斗力”的实时数据分析数据库,是面向 OLAP(在线分析处理) 的分布式列式数据看系统。轻量级,且不依赖于其他组件。

特点:

  • 关系型、支持SQL
  • 高性能、高可用
  • 数据量级在PB级别
  • 分布式
  • ……

适用场景主要有以下几类:日志数据的行为分析(大数据分析),标签画像的分析,数据集市层分析;还可作为存储引擎集成在了产品内部,应用于知识图谱作为本体数据存储,及标签数据的存储引擎等。

 

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月12日
下一篇 2021年1月12日

相关推荐