【第一篇】商城系统-系统架构演变
从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 业务组成
整体的项目业务组成如下
【第一篇】商城系统-系统架构演变相关推荐
- PLC学习第一篇:PLC程序架构
前言:PLC资料获取 汇川官网,可以下载汇川PLC相关资料 倍福虚拟学院 西门子工业支持网站,西门子系列PLC的编程手册都可以查到 1.PLC编程语言发展 在PLC发展的早期阶段,由于没有统一的国际标 ...
- linux系统第一篇(Linux系统入门介绍)
Linux发展史 1.1操作系统是什么 操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是配置在计算机硬件上的第一层软件,其他任何软件都必须在操作 ...
- vivo商城促销系统架构设计与实践-概览篇
一.前言 随着商城业务渠道不断扩展,促销玩法不断增多,原商城v2.0架构已经无法满足不断增加的活动玩法,需要进行促销系统的独立建设,与商城解耦,提供纯粹的商城营销活动玩法支撑能力. 我们将分系列来介绍 ...
- 第一篇综述-无人车系统架构(三)
第一篇综述-无人车简介(一) 第一篇综述-无人车简介(二) 目录 硬件架构 软件架构 前面简述了无人车的定义及分级.发展历程.社会影响及所面临的技术挑战.本章将讲述无人车的系统架构,包括硬件架构和软件 ...
- 亿级商城促销系统架构设计与实践
作者:vivo互联网官方商城开发团队-Liu JianZhu 一.前言 随着商城业务渠道不断扩展,促销玩法不断增多,原商城v2.0架构已经无法满足不断增加的活动玩法,需要进行促销系统的独立建设,与商城 ...
- 系统架构演变和远程调用
系统架构演变和远程调用 随着互联网的发展,网站应用的规模不断扩大.需求的激增,带来的是技术上的压力.系统架构也因此也不断的演进.升级.迭代.从单一应用 一> 垂直拆分应用 一> 分布式 ...
- Agv、Rgv 车辆控制调度系统开发第一篇
Agv.Rgv 车辆控制调度系统第一篇 为什么要做这个系统 先看作品 从头讲起 算法讲解 编程语言 从哪里开始 继续深入 预告 链接 问题解答 为什么要做这个系统 说白了是为了赚钱,在一个项目中发现公 ...
- 系统架构演变:SOA、微服务架构的区别和联系
1.系统架构演变 随着互联网的发展,网站应用的规模不断扩大.需求的激增,带来的是技术上的压力.系统架构也因此也不断的演进.升级.迭代.从单一应用,到垂直拆分,到分布式服务,到SOA,以及现在火热的微服 ...
- 追溯系统二次开发源代码免费分享---第一篇
第一篇:先说下它出生的背景 5年前自己写了个hcrain架构,本想在公司推广应用起来.基本完成时,换工作了. 一直没有机会,前两看有机会自己写个系统.果断用起来并完善它,我只能说,绝对是个:个人快速开 ...
最新文章
- SQL与NoSQL区别-扩展方式
- HDU2896 病毒侵袭
- DOCX file format element list
- 与太多男人一起工作有害健康
- 【Java】44个Java代码性能优化总结
- 【实习】T100开发学习笔记
- spring页面使用注解@RequestParam把请求参数封装到map中
- Stay hungry, stay foolish. 求知若饥,虚心若愚。
- ubuntu 19.04源
- 微信小程序之callout自定义气泡
- 自兴人工智能——Python第二课(列表和元组)
- 恒指期货实盘记录及下周行情分析!
- 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折
- vue利用CodeMirrorr+json-lint实现可编辑可自动格式化的Json-Editor组件
- Jlink OB仿真Cortex-M7的问题
- 中南大学计算机学硕调剂专硕,考研,中南大学计算机专硕,总分397,考研各科的复习经验分享...
- 使用体系结构权衡分析法(ATAM)对两种体系结构进行评估
- 分布式系统 服务单点问题的探讨
- 【模式匹配】之 —— KMP算法详解及证明
- 单链表插入、删除和查找操作