首页 > 其他分享 >海乐淘商城系统--01前缀(功能介绍以及关于架构)

海乐淘商城系统--01前缀(功能介绍以及关于架构)

时间:2022-10-09 22:07:08浏览次数:63  
标签:功能 01 架构 登录 -- 系统 集群 海乐 分布式


系统功能图

海乐淘商城系统--01前缀(功能介绍以及关于架构)_业务逻辑

我要完成的部分

海乐淘商城系统--01前缀(功能介绍以及关于架构)_服务器_02

系统功能管理

后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。

前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。

订单系统:提供下单、查询订单、修改订单状态、定时处理订单。

搜索系统:提供商品的搜索功能。

单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。

系统架构

  传统架构

海乐淘商城系统--01前缀(功能介绍以及关于架构)_tomcat_03

存在的问题:

1、功能耦合度高 

2、系统维护成本高

3、如果并发量大,无法解决高并发的问题

 解释,所谓的耦合度高和维护成本高,就是因为存在一哥牵一发动全身的问题,传统的架构是将有的功能打成一个war包,一旦需要维护一个功能,就需要将整个项目停下来,一旦想升级一个功能,就需要改动所有有关联的功能。

集群和负载均衡

 使用集群和负载均衡可以解决高并发的问题,也就是说,本来需要100个工人来完成生产,一旦工作总量大了,就加派一些人手,再找100工人加入生产。(这个时候指的是一个人独立的完成一件产品的生产。)

  显然工作量大的问题解决掉了,但是效率的问题仍然没有得到提升, 解决方案是,不单加派人手,还要分工完成,让每一个工人来完成一个工作步骤,这样就会提高工作效率了。

 

如下,一个tomcat只能完成500的访问量,想要完成1000并发,就要增加一个tomcat

海乐淘商城系统--01前缀(功能介绍以及关于架构)_服务器_04

简单的集群可以解决并发的问题,但是同时又产生了新的问题,比方说,一个用户,第一次登录,被分配到了tomcat1上去了,但是第二次登录被分配到tomcat2上去了,那么问题就出现了,同样的一个应用,每次都需要重新登录,用户自然就不愿意了。

想要解决重复登录的问题,需要session共享,是以session广播的形式,但是比较消耗资源,宽带。

如果要达到10000并发

需要20台服务器做tomcat集群。当tomcat集群中节点数量增加,服务能力先增加后下降。

所以集群中节点数量不能太多,一般也就5个左右。

分布式架构(10000并发)

 在集群提到的分工合作来提高工作效率的方案,就是分布式的思想。

需要按照功能点把系统拆分,拆分成独立的功能工程,可以单独为某一个节点添加服务器,需要系统之间配合才能完成整个业务逻辑这就叫做分布式。

海乐淘商城系统--01前缀(功能介绍以及关于架构)_tomcat_05

 

集群:相当于同一个工程代码拷贝多份部署到多台服务器,每台服务器单独独立部署运行。

分布式架构:

把系统按照模块拆分成多个子系统;多个子系统相互协作才能完成业务流程系统之间需要进行通信。

优点:

  1. 把模块拆分,使用接口通信,降低模块之间的耦合度。
  2. 把项目拆分成若干个子项目,不同的团队负责不同的子项目。
  3. 增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
  4. 可以灵活的进行分布式部署。

 

缺点:

1、系统之间交互需要使用远程通信,需要开发接口,增加工作量。

2、各个模块有一些通用的业务逻辑无法公用。

基于SOA的架构

SOA:Service Oriented Architecture面向服务的架构。也就是把工程都拆分成服务层工程、表现层工程。服务层中包含业务逻辑,只需要对外提供服务即可。表现层只需要处理和页面的交互,业务逻辑都是调用服务层的服务来实现。工程都可以独立部署。

海乐淘商城系统--01前缀(功能介绍以及关于架构)_服务器_06

海乐购商城系统架构

海乐淘商城系统--01前缀(功能介绍以及关于架构)_业务逻辑_07

 系统的演变过程

从传统的三层架构

海乐淘商城系统--01前缀(功能介绍以及关于架构)_服务器_08


到分布式架构(就是将三层架构中的前台模块和后台模块拆开,分为前台系统和后台系统)

海乐淘商城系统--01前缀(功能介绍以及关于架构)_tomcat_09

 

 再到SOA架构,SOA要解决的问题就是代码重复的问题。在分布式的基础上,采用分层,将不一样的部分仍然拆开,将相同的部分,还房子一起,当做相同的一个服务,不同层再去调用就行了。

 

 

 

 

 

标签:功能,01,架构,登录,--,系统,集群,海乐,分布式
From: https://blog.51cto.com/u_15812686/5741672

相关文章

  • 关于电子商务与计算机技术
    电商行业对计算机技术的要求:高可用,海量储存。电商行业技术特点技术新技术范围广分布式高并发、集群、负载均衡、高可用海量数据业务复杂系统安全分布式:一件事情,拆开来做集群......
  • definitions.json
     AdvancedRestClient的下载包链接:​​下载包​​​ 提取码:ofl3  还需要一个definitions.json 文件,从网上找的时候,都是需要积分的。然后去github上找了源码definit......
  • springMVC学习笔记
    为什么要学习springMVC,springMVC和struts2的比较SpringMVC与Struts2区别对比项目SrpingMVCStruts2优势国内市场情况有大量用户,一般新项目启动都会选用springmvc有部分老用户......
  • 基于python的汽车销售网站设计与实现-计算机毕业设计源码+LW文档
    本科生毕业论文(设计)开题报告题目基于Python的汽车销售平台设计与实现学生姓名学  号指导教师学   院计算机科学与技术专  业计算机科学与技术职称助教选......
  • freemarker从入门到精通
    目录 ​​一:概述​​​​二:Freemarker的Helloworld​​​​三:freemarker模板语法​​​​1.访问map中的key​​​​2.访问POJO中的属性​​​​3.取集合中的数据​​​​......
  • Emmet插件的使用教程
    很多快捷键真的都很相似,这些语法都是很相似了,今天遇到一个比较不错的教程,收藏一下。Emmet的前身是大名鼎鼎的Zencoding,如果你从事Web前端开发的话,对该插件一定不会陌生。它......
  • 包和final
    包1包的作用包就是文件夹,用来管理各种不同功能的java类2包名书写的规则公司域名反写+包的作用需要全部英文小写3什么是全类名包名+类名4什么时候需要导报?什么时候不需要导......
  • @mysql 使用配置及多实例部署
    文章目录​​一、mysqld服务程序构成​​​​1.连接层​​​​2.SQL层​​​​3.存储引擎层​​​​二、mysql的多实例​​​​1.创建多个数据目录​​​​2.准备多个配置文......
  • C# 遍历所有目录并在内部查找所有“sales.json”文件
    usingSystem;usingSystem.IO;usingSystem.Collections.Generic;namespacefiles_module{classProgram{staticvoidMain(string[]args){......
  • 02@Docker网络介绍及网络模式的使用
    文章目录​​Docker网络的介绍​​​​一、Docker网络原理​​​​1、docker网络介绍​​​​2、Docker网络原理​​​​二、docker网络基础​​​​【网络命名空间】​​​......