分享

互联网项目架构之基于服务的分布式架构

 LZS2851 2017-02-11

随着互联网电商项目的发展,越来越多的购物平台等都使用SOA分布式来作为系统主要架构。为什么有那么多的电商项目都选择SOA作为系统架构呢?这肯定是存在一定原因的,因为电商行业的项目它大概存在以下特点:分布式、高并发、高可用、集群、负载均衡、海量数据、系统安全等一系列问题都需要解决,那么我所了解的SOA分布式架构它正好基本能很好的解决这些问题。

首先我给大家介绍以下电商项目中一些常见的运营模式:

互联网项目架构之基于服务的分布式架构

今天我就以近期开发过的一个电商项目为例,来分享一点我所理解的SOA结构开发流程,希望能够帮到大家,如有不妥,请指正。

一:首先说说项目总体架构的流程

1、该项目采用SOA分布式架构,在此基础上我们又实现了面向服务的思想,中间件使用阿里巴巴出品的Dubbo服务治理的核心框架来管理整个系统的服务,并且选择zookeeper来作为注册中心;

2、大家都知道,一个电商项目是无法避免如何处理海量图片资源的问题,所以这里由使用一款用C语言开发的开源分布式文件系统FastDFS作为图片服务器,专门用于存储系统中所有的商品图片,广告图片等资源,并且通过Nginx反向服务器来访问图片服务器上的资源;

3、接着说说商品搜索功能这块的架构,这里我们将在Linux系统上搭建了solr集群并实现了集群分片,安装了IKAnalyzer中文分词器,定义业务域等一系列部署工作,搭建了专门的搜索子系统,使用solr技术实现了商品搜索功能;

4、商品详情页这块,采用freemarker页面静态化技术,将实现了对所有商品能够生成HTML详情页面,当用户访问网站搜索商品查看商品详情数据时,我们这里是动态生成详情页,而不是提前设计好,这样即使稍微慢点,也无所谓;

5、优化一个电商项目是开发中必不可少的工作,这时经过分析,将采用非关系型数据库redis作为主角搭建了redis集群,将商城首页的广告位数据、页脚数据和将每天访问最多的定时广告数据都存储在redis集群中,用空间换时间来提升网站数据的展示速度;

6、互联网项目不同于传统项目,对网站的登录用户的安全性校验有非常高的要求,这里采用单点登录技术,来实现用户的登录和注册功能,这里我没有参与开发,但是对单点登录有一定的了解,下面进行分享。

二:业务这块就没啥可说的,都是电商购物平台,大家可能都有在类似的购物平台上购物的经验,我们项目的业务主线也是购物流程,至于后台管理系统也就是对各个管理模块的维护;但是我们又新添加了商城倒计时活动和商品秒杀活动,下面具体来说说这俩个新颖的功能吧。

1、商城倒计时活动实现大概步骤(可以作为参考):

(1)、首先确定一个基准时间,可以使用SQL语句从数据库获取一个时间SELECT NOW;

(2)、活动开始的时间是固定的,使用活动开始的时间-基准时间可以计算出一个秒为单位的时间值;

(3)、然后使用redis数据库,采用string类型的数据类型来存储一个key(值为活动开始的时间),一定设置key的过期时间,使用命令'expire key 10'假设有效时间为10秒;

(4)、展示商城页面的时候,取出存储的活动开始时间,使用js倒计时功能;

(5)、一旦存储的key失效,则说明活动结束(说明一点,需要在活动的逻辑中,先判断活动是否已经开始)。

2、商城商品的秒杀活动实现的大概步骤(可以作为参考):

(1)、首先把秒杀活动的商品数量存放到redis中;

(2)、秒杀活动开始时,使用decr命令对商品数量减1,如果不是负数,则说明抢到礼物;

(3)、一旦返回的商品数量为0,则说明商品已经售完,活动结束。

三:项目部署总结

(项目架构详解图)

互联网项目架构之基于服务的分布式架构

(网络拓扑图)

互联网项目架构之基于服务的分布式架构

部署总结后期更新!!!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多