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

这篇具有很好参考价值的文章主要介绍了谷粒商城第一天-项目概述、架构、Linux环境搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、学习的内容

一、常见的商城模式

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

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

四、谷粒商城项目的亮点

五、微服务的基本的概念

二、完成的进度

三、学到的东西

四、总结


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

一、学习的内容

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

一、常见的商城模式

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

1、B2C

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

2、C2B

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

3、C2C

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

4、B2B

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

5、O2O

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

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

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

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

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

大体的过程就是,通过外网的部署,搭建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。

下面是划分图:

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

四、谷粒商城项目的亮点

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

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

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

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

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

6、压力测试与性能优化

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

8、CI/CD的使用

五、微服务的基本的概念

1. 什么是微服务

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

2 . 集群/分布式/节点

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

3 . 远程调用

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

4 . 负载均衡

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

5. 服务的注册发现

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

6. 配置中心

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

7. 服务熔断与服务降级

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

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

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

8 . API网关

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

二、完成的进度

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

三、学到的东西

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

四、总结

收获其实也并不是很大,主要是从项目的宏观的角度整体的看那些组件,技术栈,浅浅的了解微服务,其实这一天主要还是对微服务的相关概念,一些组件了解。 文章来源地址https://www.toymoban.com/news/detail-496353.html

到了这里,关于谷粒商城第一天-项目概述、架构、Linux环境搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【系统开发】尚硅谷 - 谷粒商城项目笔记(七):消息队列

    Docker中安装 下载镜像: docker pull rabbitmq:management 创建实例并启动: 4369 – erlang发现口 5672 --client端通信口 15672 – 管理界面ui端口 25672 – server间内部通信口 在web浏览器中输入地址:http://服务器ip:15672/ 输入默认账号: guest : guest overview :概览 connections :无论生产者还是消费者

    2024年02月12日
    浏览(54)
  • 谷粒商城项目|es的应用场景及常见问题

    es是什么 es多被用于搜索聚合分析引擎 是分布式的可以高性能查询的引擎 es应用场景 为什么不用MYSQL而用es es将数据存在内存中且可以分布式的存储数据 商品上架 商品在es中的保存 1.在es中建立索引 spu sku spu sku保存在一起防止分布查询 为了防止对象数组扁平化,商品属性字段

    2024年01月17日
    浏览(58)
  • 【系统开发】尚硅谷 - 谷粒商城项目笔记(五):分布式缓存

    引入redis依赖 配置redis 堆外内存溢出 缓存穿透 缓存雪崩 缓存击穿 导入依赖 redisson配置类 可重入锁 可重入锁解释 :无论是公平方式还是非公平方式,进门坐下来之后,你可以问医生问题一次,两次,无数次( 重入),只要你还坐着,你都可以问,但是一旦起身离开座位,

    2024年02月09日
    浏览(60)
  • 【系统开发】尚硅谷 - 谷粒商城项目笔记(十一):K8S

    Kubernetes(k8s)中文文档 Kubernetes概述_Kubernetes中文社区 Kubernetes官网 Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。 Kuber

    2024年02月11日
    浏览(56)
  • 【苍穹外卖 | 项目日记】第一天

    我打算用16天的时间写完黑马程序员的苍穹外卖项目,为了督促自己每天坚持写以及记录项目知识点,所以用这种项目日记的方式鞭策自己 目录 前言: 今日完结任务: 今日收获: 1.阅读代码框架: 2.新增员工接口: 3.分页查询接口: 4.员工状态修改接口: 杂项知识点: 总

    2024年02月08日
    浏览(41)
  • 【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/黑马旅游/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码

    本文是“Java学习路线”专栏的导航文章,目标是为Java工程师提供一套 完整的Java学习路线 。 目录 0.摘要/资料/代码整理 1.Java基础+进阶 2.MySQL,JavaWeb,Mybatis,前端 3.Git 4.SSM(Spring,SpringMVC,Mybatis)框架 5.Maven高级 6.Springboot,MybatisPlus,JPA框架 7.瑞吉外卖、Redis、Nginx、Linux、mysql主从复制

    2024年02月08日
    浏览(61)
  • 学习Python的第一天(下载Python环境和工具Pycharm)

    下载工具  PyCharm Community Edition 2023.3.4 下载环境 Python3.10.4 目录 1.环境Python下载 1.1 Python环境变量下载网址:   1.2 下载步骤 2.工具Pycharm下载 2.1 pycharm下载网址  2.2 pycharm下载步骤 Python Releases for Windows | Python.org 这里我将列举我正在使用的版本 Python3.10.4 下载过程如果是其他版本

    2024年03月26日
    浏览(50)
  • 第一天 关于项目遇到的问题和缺少的知识点

    配置文件使用的都是配置类方式 创建配置类WebMvcConfig,设置静态资源映射 用于在Springboot项目中, 默认静态资源的存放目录为 : \\\"classpath:/resources/\\\", \\\"classpath:/static/\\\", \\\"classpath:/public/\\\" ; 而在我们的项目中静态资源存放在 backend, front 目录中, 那么这个时候要想访问到静态资源, 就需要

    2024年02月09日
    浏览(52)
  • 嵌入式培训机构四个月实训课程笔记(完整版)-C++和QT编程第一天-C++概述和基础(物联技术666)

    网盘链接:https://pan.baidu.com/s/1TKdHdeuDI8XPaakepvSLZQ?pwd=1688  提取码:1688 上午:C++概述     下午:C++基础 教学内容: 1 、面向对象: 程序=(对象+对象+…) 对象=(算法+数据结构) 2、类与对象: 对象是现实世界中的一个实体,其特征是: • 每一个对象必须有一个名字以区

    2024年02月01日
    浏览(53)
  • 大数据入门到放弃第一天:linux的入门

            虚拟机(Virtual Machine,简称VM)是一种在物理计算机上模拟运行的软件实体。它通过虚拟化技术,将一台物理计算机划分为多个虚拟的逻辑计算环境,每个环境都可以独立运行操作系统和应用程序。         虚拟机使得一台物理计算机可以同时运行多个操作系

    2024年02月05日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包