谷粒商城第一天-项目概述、架构、Linux环境搭建

news2025/4/6 13:10:57

目录

一、学习的内容

一、常见的商城模式

二、谷粒商城项目的微服务架构

三、谷粒商城项目的微服务划分

四、谷粒商城项目的亮点

五、微服务的基本的概念

二、完成的进度

三、学到的东西

四、总结


6月9日正式下决心开始学习谷粒商城项目,之前早就听说谷粒商城项目的鼎鼎大名了,只是由于其它事,一直停留在前几集上面,总是担心自己的微服务还没学完,就来学是不是不好,其实真正我往后面学才发现,真正得将知识与项目结合,如果只是学知识,可能你学了是学了,但是不知道如何运用在项目里。项目能力是真的很重要。好了,下面正文开始:

一、学习的内容

先是对谷粒商城项目进行简要介绍,看了一下最终的效果,然后说明此次的商城项目是B2C模式,也就是商家对客户,商家直接将商品给用户,和小米商城,京东还有阿里是一样的,当然京东、阿里是多种模式于一身。

一、常见的商城模式

到这里其实常见的商城模式还是得知道的,一般来说有5种模式:

1、B2C

最常见的传统模式,商家对客户。比如说小米商城,京东,阿里巴巴

2、C2B

客户对商家,就是客户提供需求,然后商家去实现。不是那么的常见

3、C2C

客户对客户,也就是客户自己个人出售商品,然后另外的客户买下商品。比如说咸鱼

4、B2B

商家对商家,商家与商家建立关系。比如说阿里巴巴

5、O2O

online-offline,即线上对线下,也就是线下的商业也和线上互联网联系起来了。比如说饿了么、美团、淘票票

然后就是了解谷粒商城这个项目的微服务架构和微服务划分:

二、谷粒商城项目的微服务架构

架构没啥好说的,现在也只是一个大概的了解,并不能做到深刻的理解,等完整的将项目做完,再回来看,应该才能理解的比较深刻,下面贴出课件资料中的微服务架构图:

大体的过程就是,通过外网的部署,搭建Nginx的方式,然后访问到内网,先通过网关,网关可以进行鉴权,限流以及路由,就可以路由到目标服务,而到底是怎样知道有哪些服务呢,又如何知道哪些服务还能用呢,就得依赖nacos的服务注册与服务发现了,真正进入到微服务的时候,并不是直接去的,如果说同一个服务有多个实例,那么到底该选择哪个实例呢,于是就得通过负载均衡来按照规则进行选择,有轮询、随机、Hash等规则,另外可以使用sentinel进行熔断降级,熔断降级其实就是将复杂的东西进行拆分,使得变得简单,我反正就是这么简单的理解的,降级嘛是吧,顾名思义是吧,就是降低了等级是吧,然后就到达了业务层了,业务层实际上也就是核心业务咯,也就是需要在这个上面花时间的,如果摒弃了其它所有,只留下这个业务,就变成单体项目了,当然在以前做项目的时候也知道,并不是什么样的接口都是可以访问的,还是需要一定的权限的,可以使用springsecurity框架对权限进行管理,不同的用户所拥有的权限是不同的。然后的话,就相较于springsecurity好像有个升级吧,就是搭配OAuth2.0认证中心进行认证,好像可以使用这个认证中心进行社交认证,也就是使用QQ或者是微博登录等,然后这些服务在工作的时候,肯定得记录下来,这里就使用日志的存储技术,好像还要搭配着文本检索来使用,这里我也不是很明白,反正这里的检索就是使用的ES,上面说的就是一条主线,当然在这个过程中,数据是需要存储的,可以使用Redis存到内存里面,应该是提高一个效率吧,相较于每次直接操作MySql数据库,性能肯定是高的,另外的话,Redis这里可以搭建集群,当然持久化存储的话还得是存到MySql里面,这里MySql也可以集群,然后使用的好像是主从复制的方式吧,也没有详细的学过,另外微服务之间的通信通常是不同步的,也就是异步的通信方式,使用RabbitMQ来实现,另外对数据的一个检索,采用的是ES,能高效的检索数据,另外还有任务的调度,并且可以将文件存到OSS对象存储中,然后又扯到服务的一个管理,先是讲的主线,然后是数据,最后大致上是服务的一个监控,首先对于众多的微服务,我们肯定是不能对每个微服务单独的一个一个的去进行一个配置管理,使用Nacos来进行集中的配置,也就是配置中心了,然后可以使用zipkin、sleuth进行服务的监控以及链路的追踪,最后还可以将异常警告信息发送到我们的手机上,最后是运维,运维是采用的持续集成持续部署的策略,也就是CICD策略,就是说我们可以持续的将代码上传到中央仓库,然后打成docker镜像,然后交给运维人员使用k8s对容器进行管理。

三、谷粒商城项目的微服务划分

微服务划分其实就是对项目进行简要的拆分,首先是前端的vue或者是移动端小程序等,然后发送请求,首先经过网关,来进行鉴权、限流、路由,然后就到达微服务群,就是由多个微服务构成的集合,其中包括商品服务、订单服务、支付服务等等服务,然后就是微服务的核心嘛,就是一个服务的治理,比如说服务注册、配置、分布式事务、服务的容错熔断服务的降级、还有远程调用、负载均衡、链路的追踪。然后涉及到服务的一个监控,另外的话这其中涉及到第三方服务,比如说物流、短信、支付、金融服务,在整个过程中,数据的支撑层,有Redis、Mysql、RabbitMQ、还有ES、包括还有OSS。

下面是划分图:

四、谷粒商城项目的亮点

1、基于前后端分离开发的模式,基于vue开发的后台管理系统

2、使用springcloud这一套全新的解决方案

3、应用监控、限流、网关、熔断降级等分布式的解决方案

4、透彻的讲解分布式事务、分布式锁等分布式难题

5、分析高并发场景下的编码方式,线程池的使用,还有异步编排

6、压力测试与性能优化

7、各种集群技术的区别与使用

8、CI/CD的使用

五、微服务的基本的概念

1. 什么是微服务

其实微服务就是比如说可以根据业务进行划分,就是将大的项目拆分为一个一个的小的应用,实现解耦合。每个小的服务都单独部署单独运行。

2 . 集群/分布式/节点

集群其实就是一堆机器堆在一起就叫集群,而分布式就是将业务把它分散到不同的地方,分布式中的每一个服务其实就是服务群中的一个节点。就比如说京东,是一个大型的分布式系统,它将用户服务、商品服务、订单服务放置在不同的机器上运行,而每一种服务又不是单独就一台机器,而是多台机器一起,提高并发量,降低风险,这就是集群

3 . 远程调用

因为现在是分布式的,各个服务其实是独立的,而服务间的相互调用就得通过远程调用。

4 . 负载均衡

负载均衡就是使得资源得到合理的利用,既不让一些机器太忙也不让一些机器太闲,然后采取一些手段措施,使得其负载均衡,常见的有:轮询、随机、散列。

5. 服务的注册发现

因为现在是分布式的系统,调用其它服务,得知道其它服务一个情况,得知道它是不是可用,有哪些是正常的,有哪些已经是下线了的。

6. 配置中心

众多的服务肯定会有众多的配置,如果一个一个的去配置,效率极低,所以采用配置中心进行统一集中配置管理。

7. 服务熔断与服务降级

这其实就是一种容灾的这么一种机制

服务的熔断,顾名思义,熔断就是把它断了,比如说去调用某个服务,发现某个服务很久都不进行相应,那么就不会等它了,就会进行另外的一套解决方案,比如说返回一个默认值

服务的降级,顾名思义,就是降低等级,就是说如果当前项目的核心模块的压力很大,那么就让那些非核心模块,能够让出来就让出来,把资源分配给需要资源的服务

8 . API网关

主要进行还是路由、限流、鉴权,其实就是进入到真正的微服务的前一步,然后其实还有很多功能,比如说负载均衡,熔断它都能干,统一认证,灰度发布,日志统计

二、完成的进度

大致的听了一下,对这种微服务其中的一些组件大致的了解了一下,但是只是简单的一个了解,并没有深入的学习。也算完成进度了吧。

三、学到的东西

首先还是商城项目的一些模式然后又加深了一遍,然后是这个项目的大致的架构划分知道了,就是说知道了,我们接下来,大致的方向,微服务的方向。对微服务中的一些概念又是巩固了一遍,当然咯,还只是简单的了解,具体的深刻的理解还要通过做项目来加深。

四、总结

收获其实也并不是很大,主要是从项目的宏观的角度整体的看那些组件,技术栈,浅浅的了解微服务,其实这一天主要还是对微服务的相关概念,一些组件了解。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/651608.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Powerjob部署安装

安装思路: 1、本地环境和具体生产环境都要安装部署jdk-------------------参考jdk安装 2、本地部署maven-------------------参考maven安装 3、本地部署powerjob 4、生成jar包,上传生产环境启动 部署: 1、下载上传Powerjob包,本次选取4.0.1版本 https://github.com/Powe…

arx程序与cgal冲突的地方,记录一下

arx本身是个dll,而且运行库是 /md,多线程,无论debug还是release都是/md,而不是/mtd cgal编译出来的库,release版本是Mt,debug版本是MTd 感觉debug版本是MTd对arx没用,不知道这种看法对不对&…

stable diffusion webui 安装部署(linux系统)

文中部署stable diffusion webui所使用的机器是腾讯云服务器linux系统,centos7 一 环境准备 在这里使用anaconda安装,优势就是可以方便地安装和管理软件包,同一系统上可以同时使用不同版本的 Python 和第三方软件包。如果你需要安装多个系统…

图像目标检测 - CenterNet: Objects as Points (arXiv 2019)

CenterNet: Objects as Points - 目标作为点(arXiv 2019) 摘要1. 引言2. 相关工作3. 准备工作4. 目标作为点4.1 3D 检测4.2 人体姿态估计 5. 实施细节6. 实验6.1 目标检测6.1.1 附加实验 6.2 3D 检测6.3 姿态估计 7. 结论References附录A:模型…

华为防火墙之攻击防范

1.DoS攻击简介 攻击和防御技术发展史 DoS是Denial of Service的简称,即拒绝服务。造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法正常提供服务。 2.单包攻击及防御 最常见的DoS攻击就是单包攻击,一般都是以个人为单位的攻击者…

回归预测 | MATLAB实现SSA-CNN-BiGRU麻雀算法优化卷积双向门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现SSA-CNN-BiGRU麻雀算法优化卷积双向门控循环单元多输入单输出回归预测 预测效果 基本介绍 MATLAB实现SSA-CNN-BiGRU麻雀算法优化卷积双向门控循环单元多输入单输出回归预测,运行环境Matlab2020b及以上。优化正则化率、学习率、隐藏层单元数。…

大数据Doris(四十二):Routine Load导入Kafka数据到Doris

文章目录 Routine Load导入Kafka数据到Doris 一、创建 Doris 表 二、创建 Kafka topic 三、创建 Routine Load

PTA OJ 合集 C语言

目录 7-1 查找整数 7-2 大笨钟的心情 7-3 将数组中的数逆序存放 7-6 矩阵运算 7-7 求矩阵的局部极大值 7-8 矩阵A乘以B 7-9 找鞍点 6-1 查找数组元素最大值 6-2 在数组中查找指定元素 7-5 求数列之和[A] 6-3 使用函数的选择法排序 6-5 计算天数[2] 6-4 求矩阵不靠…

ABAP 新语法--Open SQL

1. 常量 1.1 常量赋值 常量字段可以用来为内表中的部分字段赋初始值,字段类型和长度依据输入常量的值决定 SELECTmara~matnr, " 物料号mara~matkl, " 物料组mara~mtart, " 物料类型 AS lkenz, " 删除标识,常量空字符串123 AS fla…

STM32 Proteus仿真自动红外避障小车前进后退左右转 -0040

STM32 Proteus仿真自动红外避障小车前进后退左右转 -0040 Proteus仿真小实验: STM32 Proteus仿真自动红外避障小车前进后退左右转 -0040 功能: 硬件组成:STM32F103C LCD1602 L298N电机控制电路2个电机一个左轮一个右轮 2个按键(模拟两个避…

Web安全:bWAPP 靶场搭建.(集成了各种常见漏洞和最新漏洞的开源Web应用程序)

Web安全:bWAPP 靶场搭建. bWAPP是一个集成了了常见漏洞的 web 应用程序,目的是作为漏洞测试的演练场,帮助安全爱好者,开发人员和学生发现和防止Web漏洞。它有超过100个网络漏洞数据,包括所有主要的已知网络漏洞. 目录…

谷粒商城第三天-微服务中基本组件的使用

目录 一、前言 二、学习的内容 一、Nacos的服务注册/发现 1. 导依赖,nacos-discovery java.lang.AbstractMethodError: org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient.cho 2. 在application.yml中声明nacos服务器的ip地址和端口号&…

MySQL常见问题

优化慢查询 慢查询可能出现的情况: 聚合查询多表查询表数据量过大深度分页查询 表象:页面加载过慢,接口压测响应时间过长(超过1s) 如何定位慢查询? 方案一:开源工具 可以使用相应的调试工具&a…

数据库SQL查询(一)

本文介绍SQL查询,如何在海量数据中筛选想要数据; 数据库管理系统选择:关系型数据库mysql 数据库管理工具选择:navicat 本文中查询语句和查询案例参考自:https://edu.csdn.net/course/detail/27673?ops_request_mis…

管理类联考——英语——趣味篇——背诵单词

考友方法推荐 词根词缀巧记考研英语大纲词汇 ⼀、词根词缀构词法的威⼒ 《考研英语⼤纲》要求考⽣掌握 5500 个词汇及相关词组,我们将这 5500 个单词,分成了三类,通过第⼀类“3450 基础⾼频词汇”的学习,考⽣夯实了基础&#xf…

Fmoc-保护氨基酸合成中的新型底物:Fmoc-Thr(Ac4Manα1-2Ac3Manα)-OH,CAS:482576-73-8

文章关键词:糖化学试剂,多肽合成,Fmoc-保护氨基酸,糖基化修饰一、产品描述: 西安凯新生物科技有限公司供应的​Fmoc-Thr(Ac4Manα1-2Ac3Manα)-OH,多肽固相合成法,基于Fmoc化学合成&#xff0c…

[学习笔记] [机器学习] 12. [下] HMM 隐马尔可夫算法(马尔科夫链、HMM 三类问题、前后后向算法、维特比算法、鲍姆-韦尔奇算法、API 及实例)

5. 维特比算法解码隐藏状态序列 Q Q Q 学习目标: 知道维特比算法解码隐藏状态序列 Q Q Q 在本篇我们会讨论维特比算法解码隐藏状态序列 Q Q Q,即给定模型 λ \lambda λ 和观测序列 O O O,求给定观测序列 O O O 条件下,最…

使用华为云开发者插件一键部署应用到ECS

前言 笔者是一名码龄5年左右的程序员,大学是能源行业,处于对技术(碎银几两)的热爱,选择投身搬砖之路。从用C语言在控制台打印第一句“Hello World!”开始,笔者陆续接触过C/C、Java、Golang、Py…

STM32 Proteus仿真4x4矩阵15位抢答器数码管TM1637显示-0039

STM32 Proteus仿真4x4矩阵15位抢答器数码管TM1637显示-0039 Proteus仿真小实验: STM32 Proteus仿真4x4矩阵15位抢答器数码管TM1637显示-0039 功能: 硬件组成:STM32F103R6单片机 TM1637驱动4位数码管4x4矩阵键盘蜂鸣器 1.有一个开启键&am…

【Unity Shader】从入门到着魔(1)基本概念:什么是网格?材质?Shader?

文章目录 一、什么是网格(Mesh)?二、什么是MeshFilter(网格过滤器)?三、什么是MeshRenderer(网格渲染器)?四、什么是材质(Material)?五、什么是Shader(着色器)?一、什么是网格(Mesh)? 如上图,模型的三角形面就叫做网格(Mesh),它的本质是一堆顶点数据的规则…