从2021年的10月份到2022年的7月份,历时9个月录制了一套商城系统。现在把相关的课件整理分享给大家。

一、系统架构演变

1.服务架构的演

1.1 单体架构

单体架构应该是我们最先接触到的架构实现了,在单体架构中使用经典的三层模型,即表现层,业务逻辑层和数据访问层。

单体架构只适合在应用初期,且访问量比较下的情况下使用,优点是性价比很高,开发速度快,成本低,但缺点也很明显,这时扩展的首先就是考虑服务器的集群处理。

1.2 集群

针对单个服务器在访问量越来越大的情况越来越吃力的情况,我们可以考虑服务器的集群话处理。

集群的部署大大提高了服务的处理能力,同时利用Nginx提供的负载均衡机制,来分发请求,使用户的体验没有改变。

1.3 垂直化

上面的集群部署是可以解决一部分的服务器压力,但是随着用户访问量的增多,集群节点增加到一定阶段的时候,其实作用就已经不是太大了,因为将所有的业务都集中在一起,造成耦合度很高,这时我们可以考虑业务的拆分。来提高系统的性能。比如将原来在一个系统里面的业务拆分为用户系统,订单系统和商品系统。也就是我们讲的垂直化拆分如下:

服务垂直化拆分后是可以大大的提高整体的服务处理能力,但是也会出现很多的冗余的代码,比如用户系统要操作订单库,要操作商品库,订单系统也有可能要操作用户库和商品库等。

1.4 服务化

针对垂直化拆分出现的问题,这时就出现了我们经常听到的SOA(面向服务的架构).什么是SOA呢?在《微服务设计》中有这么一段描述

SOA是一种设计方法,其中包括多个服务,而服务之间通过配合最终会提供一系列功能,一个服务通常以独立的形式存在于操作系统进程中,服务之间通过网络调用,而非采用进程内调用的方式进行通信。

业务重用,共享服务,

1.5 微服务化

在SOA的基础上继续演进就是我们讲的微服务。SOA的服务更细粒度的拆分后就是微服务。根据时间递进。

对基础运维的要求能力会越来越高,虚拟化,容器话等。

微服务和SOA的区别:

1.思想上:微服务的目的是解耦而SOA的目的是实现数据的互通和共享性。

2.协议:微服务会使用一些轻量级的通信协议(Restful API)

3.基础设施要求,微服务更加强调开发运维的持续交付。

2. 微服务架构的需求

2.1 RPC框架

在微服务架构中,服务与服务之间要实现接口的调用我们肯定要通过相关的RPC(Remote Procedure Call)框架来实现。

常用的RPC框架有:Dubbo,Google的GRPC,Apache的Thrift,微博的Motan,京东的EasyRPC等。我们通过RPC框架可以取调用服务提供者提供的服务,但有一个前提是我们要能找到这个服务。通常我们的服务部署都是集群多节点的部署,所以在消费者这端就不可能直接写死在代码里面,这时就涉及到了服务的发现问题,这时就需要另一个组件注册中心了

2.2 注册中心

注册中心实现服务地址管理的功能,解决服务动态感知(上线,下线)。

2.3 负载均衡

在服务注册中心的介绍中我们可以看到负载均衡的应用。我们可以通过Ribbon来实现客户端的负载均衡,负载均衡的策略可以是:轮询,随机,根据响应时间来计算权重的轮询等。

2.4 配置中心

在微服务架构中我们有很多个服务,而每个服务中是都会有单独的配置文件的。里面有很多的配置信息的有关联的,而且对于后期的更新维护也会非常的不方便,这时配置中心就上场了。常用的配置中心有:apollo/Nacos/disconf/zookeeper/diamond/Spring Cloud Config

2.5 网关

网关可以帮助我们完成用户请求的入口,路由。完成统一授权,日志的记录,权限的认证和限流及熔断操作。

2.6 限流、降级、缓存

在现实的微服务架构中的性能是很难满足所有的用户请求,这时我们就可以通过一些措施来保证我们的核心服务的正常运转。

限流:sentinel、hystrix

降级:主动降级(订单评论、广告关闭)、被动降级

缓存:降低数据源访问频率、Redis等

容错机制:服务出现挂机,宕机之后的处理机制。

2.7 Bus

Bus消息总线,实现异步化的通信机制。

2.8 链路监控

因为微服务中的服务实在是太多了,为了能更好的监控个服务的情况,肯定就需要链路监控服务,我们可以通过sleuth+zipkin来实现,应用层监控,系统级监控

二、项目介绍

三高指的是:高性能、高并发、高可用

2.项目架构

2.1 系统架构图

整体的项目架构图如下

2.2 业务组成

整体的项目业务组成如下

【第一篇】商城系统-系统架构演变相关推荐

  1. PLC学习第一篇:PLC程序架构

    前言:PLC资料获取 汇川官网,可以下载汇川PLC相关资料 倍福虚拟学院 西门子工业支持网站,西门子系列PLC的编程手册都可以查到 1.PLC编程语言发展 在PLC发展的早期阶段,由于没有统一的国际标 ...

  2. linux系统第一篇(Linux系统入门介绍)

    Linux发展史 1.1操作系统是什么 操作系统(Operating  System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是配置在计算机硬件上的第一层软件,其他任何软件都必须在操作 ...

  3. vivo商城促销系统架构设计与实践-概览篇

    一.前言 随着商城业务渠道不断扩展,促销玩法不断增多,原商城v2.0架构已经无法满足不断增加的活动玩法,需要进行促销系统的独立建设,与商城解耦,提供纯粹的商城营销活动玩法支撑能力. 我们将分系列来介绍 ...

  4. 第一篇综述-无人车系统架构(三)

    第一篇综述-无人车简介(一) 第一篇综述-无人车简介(二) 目录 硬件架构 软件架构 前面简述了无人车的定义及分级.发展历程.社会影响及所面临的技术挑战.本章将讲述无人车的系统架构,包括硬件架构和软件 ...

  5. 亿级商城促销系统架构设计与实践

    作者:vivo互联网官方商城开发团队-Liu JianZhu 一.前言 随着商城业务渠道不断扩展,促销玩法不断增多,原商城v2.0架构已经无法满足不断增加的活动玩法,需要进行促销系统的独立建设,与商城 ...

  6. 系统架构演变和远程调用

    系统架构演变和远程调用 ​ 随着互联网的发展,网站应用的规模不断扩大.需求的激增,带来的是技术上的压力.系统架构也因此也不断的演进.升级.迭代.从单一应用 一> 垂直拆分应用 一> 分布式 ...

  7. Agv、Rgv 车辆控制调度系统开发第一篇

    Agv.Rgv 车辆控制调度系统第一篇 为什么要做这个系统 先看作品 从头讲起 算法讲解 编程语言 从哪里开始 继续深入 预告 链接 问题解答 为什么要做这个系统 说白了是为了赚钱,在一个项目中发现公 ...

  8. 系统架构演变:SOA、微服务架构的区别和联系

    1.系统架构演变 随着互联网的发展,网站应用的规模不断扩大.需求的激增,带来的是技术上的压力.系统架构也因此也不断的演进.升级.迭代.从单一应用,到垂直拆分,到分布式服务,到SOA,以及现在火热的微服 ...

  9. 追溯系统二次开发源代码免费分享---第一篇

    第一篇:先说下它出生的背景 5年前自己写了个hcrain架构,本想在公司推广应用起来.基本完成时,换工作了. 一直没有机会,前两看有机会自己写个系统.果断用起来并完善它,我只能说,绝对是个:个人快速开 ...

最新文章

  1. SQL与NoSQL区别-扩展方式
  2. HDU2896 病毒侵袭
  3. DOCX file format element list
  4. 与太多男人一起工作有害健康
  5. 【Java】44个Java代码性能优化总结
  6. 【实习】T100开发学习笔记
  7. spring页面使用注解@RequestParam把请求参数封装到map中
  8. Stay hungry, stay foolish. 求知若饥,虚心若愚。
  9. ubuntu 19.04源
  10. 微信小程序之callout自定义气泡
  11. 自兴人工智能——Python第二课(列表和元组)
  12. 恒指期货实盘记录及下周行情分析!
  13. 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折
  14. vue利用CodeMirrorr+json-lint实现可编辑可自动格式化的Json-Editor组件
  15. Jlink OB仿真Cortex-M7的问题
  16. 中南大学计算机学硕调剂专硕,考研,中南大学计算机专硕,总分397,考研各科的复习经验分享...
  17. 使用体系结构权衡分析法(ATAM)对两种体系结构进行评估
  18. 分布式系统 服务单点问题的探讨
  19. 【模式匹配】之 —— KMP算法详解及证明
  20. 单链表插入、删除和查找操作

热门文章

  1. Python 特殊方法之slots
  2. web手机端如何定位(安卓版和ipone版),兼容移动端,定位准确
  3. python根据点计算直线方程
  4. 你对世界的了解,也许连大猩猩都比不上
  5. Ubuntu修改默认网关
  6. 201、基于51单片机智能窗帘设计多功能自动手动定时光控遥控红外防盗窗帘控制系统
  7. 高血压患者的健康饮食原则
  8. This page contains the following errors:
  9. 浪漫纯白记录爱的轨迹 西部数据移动存储“七夕”献礼
  10. DHT11的使用资料