zoukankan      html  css  js  c++  java
  • 互联网项目架构之基于服务的分布式架构

      随着互联网电商项目的发展,越来越多的购物平台等都使用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,则说明商品已经售完,活动结束。

    三:项目部署总结

    (项目架构详解图)

    (网络拓扑图)

    部署总结后期更新!!!

     

  • 相关阅读:
    黑客悬赏活动第二期 | 百万ELF赏金,aelf跨链转账标准协议CCTP等你挑战!
    2020年aelf首场全民公测,有奖狂欢四重好礼大放送!
    使用aelf最新稳定测试币AEUSD试玩BingoGame Demo,赢取体验奖金!
    开发者大赛 | aelf轻型DApp开发训练大赛结果公布!
    黑客赏金第一期 | aelf跨链转账标准协议准备就绪,88888ELF赏金等你挑战!
    Twitter AMA预告 | aelf 创始人马昊伯将以【aelf治理与发展】为主题进行在线答疑!
    aelf Enterprise 1.0.0 Preview 2 版正式发布!
    aelf技术点解读 | 分红合约接口实现方案
    深入浅出索引--Mysql45讲笔记记录 打卡day3
    一条SQL语句是如何执行的?--Mysql45讲笔记记录 打卡day1
  • 原文地址:https://www.cnblogs.com/1315925303zxz/p/6371550.html
Copyright © 2011-2022 走看看