APP下载

基于分布式微服务和Hadoop集群的系统研究

2023-02-08陈泽川宁腾飞余文福

物联网技术 2023年1期
关键词:集群分布式架构

陈泽川,宁腾飞,李 智,余文福,王 超

(佛山科学技术学院 数学与大数据学院,广东 佛山 528000)

0 引 言

近年来,随着互联网行业的高速发展,人们的日常生活开始离不开它,导致互联网访问量飞速上涨,数据量庞大。面对海量的数据,如果没有完善的高并发技术能力,服务器就可能会承受过大压力,致使系统崩溃。如果数据库没有采用大数据优化的方式存储数据,也会使数据库超负荷,这也是导致系统崩溃的原因之一。这种访问量暴增的情况经常会引发数据丢失、网站崩溃,造成不可估量的损失。由此,分布式微服务架构系统应运而生。分布式微服务架构的兴起是互联网发展的趋势,它使得软件应用架构具有灵活多变、低耦合、高扩展的特点,能适应高并发环境[1-4]。面对海量数据,结合大数据技术,本文开展了Hadoop集群的云存储模型设计,创造了HDFS文件系统,对HBase保存的数据使用MapReduce并行式计算模型的运行环境,打造了网站信息存储条件。在算法上,采用基于动态优先级负载均衡调度算法的节点均衡负载算法是本次研究的一个重要创新点,以此实现了对Hadoop的优化。在大数据背景下,使用各种推荐分析算法实现了对海量数据的分析和特征化匹配,这是十分有必要的,达到了智能推荐的效果。

1 主要技术分布

1.1 Spring Cloud Alibaba框架

Spring Cloud Alibaba框架是一套微服务架构解决方案,包含开发分布式应用微服务的必要组件,方便开发者通过编程模型使用这些组件来开发分布式应用服务,只需要添加少量的注解和配置就能简便快速地搭建起分布式的应用,主要有服务注册与发现、服务限流降级功能、分布式配置和管理、分布式任务调度等[5-7]。对比早期各个组件更好用,比如Nacos组件集注册中心、分布式配置、路由于一身,利用它可以解决多个功能,而且可视化界面也比较流行,功能清晰明了。基于分布式框架的各组件完整架构如图1所示。

图1 Spring Cloud Alibaba组件架构

1.2 Hadoop分布式集群概述

Hadoop分布式集群继承了HDFS、MapReduce、HBase,在此架构上实现了大数据存储,数据的存储、计算、分析以及任务的分解(Map)与结果的汇总(Reduce)是其主要思想[8-10]。大数据技术在实际应用中更加可靠,解决了很多企业数据量大的痛点。其中,HDFS是Hadoop分布式文件系统,为分布式计算存储提供了底层支持;MapReduce用于大规模数据集群的分布式运算;HBase是一个大数据型的应用数据库。集群Hadoop系统的安装、部署和配置如图2所示。

图2 Hadoop生态技术

2 系统设计

网站系统主要采用前后端分离的技术,在前端中Nginx负责请求的负载均衡和反向代理,能够提高系统的访问性能,使得在对系统进行访问时只需要加载Web的动态资源。前端服务主要功能是设计界面和提供API;后端只需要调用API接口就可以实现相关业务逻辑操作、对数据进行增删改查,进而更新到数据库。后端的数据缓存在Redis中或者保存在HBase中。数据的计算处理由数据计算集群负责。使用分布式框架将系统垂直切分为10个独立的业务服务:注册微服务、网关微服务、第三方微服务、商品微服务、会员微服务、检索微服务、库存微服务、购物车微服务、订单微服务和秒杀微服务。

访问网站时所有的微服务通过Nacos进行注册,在客户端对网站进行访问时先由Gateway网关进行拦截,再由Nginx负载均衡到指定的微服务,在Nginx上进行动静分离,减少性能的开销,各个服务之间的远程调用通过Feign进行连接,使用Sentinel对每个服务进行熔断降级,保证网站的可用性;再通过Sleuth集成Zipkin进行全局服务链路追踪,方便定位和解决问题。使用Redis进行缓存,减少关系型数据库的压力;采用RabbitMq消息队列解决远程服务调用的网络问题,保证数据的最终一致性。使用Canal订阅访问记录表和商品服务表的binlog后,通过基于协同过滤的推荐算法计算出异构系统用户推荐表并展示给用户。

为了解决系统的网站商品和用户匹配稀疏性问题,使用了一种基于聚类的协同过滤推荐算法。该算法依据兼职项目的特征和用户对系统的访问程度,生成基于用户项目-特征兴趣矩阵;使用生成的用户项目-特征兴趣矩阵对用户进行聚类,将同类用户对项目的平均感兴趣岗位作为同类项目的估计填充用户-项目评分矩阵,再计算项目相似度并产生推荐结果。通过实验证明,在选取不同最近邻数量的条件下,提出的基于聚类的协同过滤推荐算法相比传统算法,其推荐精度和准确度有一定程度的提高。

在复杂场景下采用多特征融合的特征匹配算法时,特征匹配是目标识别的基础。针对特征描述子在多变复杂场景中的自适应问题,从特征向量的低维度、高稳健、易计算三个方面,结合核主成分降维、匹配核的空间映射以及Power-Law归一化等特征处理方法,提出一种面向复杂变换环境的集成低维度的特征匹配算法。首先,采用线性内积核将特征向量映射至高维空间提取特征主成分,然后通过Hellinger匹配核完成主成分空间到RootSIFT的映射转换,最后对特征向量进行中心化和Power-Law归一化,形成新的稳健特征向量。实验证明,该算法简单易行,特征维度得到了大幅度降低,且在复杂变换的场景中匹配精度优于同类其他算法。在实际的应用中将发挥很大作用。

3 系统实现

本文在基于分布式微服务和Hadoop集群系统的研究中,选择分布式电商项目作为载体,主要因为淘宝、京东等电商平台为大家所熟知并且在日常生活中经常使用,用户对电商产品和业务较熟悉。其次,该电商项目由多个微服务模块组成并联通,具有一定的综合性和复杂度,适合作为分布式微服务和高并发场景下的项目进行落地实现。在“双11”等大型活动中用户访问量巨大,涉及到秒杀服务等大量数据同时访问同一个请求,非常考验项目的性能,需要针对性地对项目进行优化,各个子系统都需要采用分布式框架来进行构建。

在进行开发之前,首先进行需求分析,了解整个项目的需求、整体架构的部署、团队成员之间的分工,以此确定系统需要实现的功能。对于实现一个功能通常有多种方案,要通过多次测试和对比进行性能检测并不断优化,以便选择最优的方案。使用git进行团队开发部署,规范流程,协作开发。由于电商后台是逻辑和业务很繁重的系统,十分考验数据库设计的能力,所以在数据库设计这方面需要花费很大的精力。在开发过程中,各个微服务之间的开发虽然是独立的,但是各个服务之间的开发进度往往是并行的,因此需要自己根据接口情况来完成开发中的自测。在各个子系统开发完成之后,团队成员之间进行系统联调,通过相互协作解决这些问题。在系统开发后,要对系统进行性能评估,部署到服务器,做好后期的运维质保。

4 结 语

本文运用分布式微服务架构思想,将电商系统切分为10个独立的微服务模块,各微服务之间通过Nacos实现服务注册与发现、服务配置,通过轻量级Feign实现各服务之间的远程通信和服务调用。系统使用Nginx做动静分离、负载均衡,采用Gateway做API网关转发请求,使用Sentinel对每个服务进行熔断降级,保证网站的可用性;再通过Sleuth集成Zipkin进行全局服务链路追踪。在计算数据集群中部署安装了Hadoop平台以及Kafka、Flink、Zookeeper等组件对资源进行计算和管理。使用基于聚类的协同过滤推荐算法和多特征融合的特征匹配算法实现了智能推荐和匹配。

猜你喜欢

集群分布式架构
基于FPGA的RNN硬件加速架构
功能架构在电子电气架构开发中的应用和实践
海上小型无人机集群的反制装备需求与应对之策研究
一种无人机集群发射回收装置的控制系统设计
LSN DCI EVPN VxLAN组网架构研究及实现
Python与Spark集群在收费数据分析中的应用
基于DDS的分布式三维协同仿真研究
一种基于FPGA+ARM架构的μPMU实现
西门子 分布式I/O Simatic ET 200AL