阅读 1340

谷粒商城项目简介

谷粒商城项目简介

目录

一. 谷粒商城项目简介

二. 项目背景

1. 电商模式

(1) B2B模式

(2) B2C模式

(3) C2B模式

(4) C2C模式

(5) O2O模式

2. 项目技术与特色

3. 技术要求

三. 分布式基本概念

1. 微服务

2. 集群&分布式&节点

3.远程调用

4.负载均衡

5.服务发现与注册中心

6.配置中心

7.服务的熔断与降级

8.API网关

附录:

项目微服务划分图

一. 谷粒商城项目简介

尚硅谷谷粒商城项目分成分布式基础篇章,分布式高级篇章以及高可用集群篇章,基于真实企业流水线构建的项目值得大家学习,项目使用后端技术SpringBoot+SpringCloud+Docker和前端Vue和ElementUI前后端分离开发。项目从环境的搭建,编码测试以及最后的集群部署,增强全栈的能力。项目中的集群技术就包括MySql集群,Redis集群等,项目架构图如下所示:



除了一般的逻辑业务需求之外,进行服务远程调用使用的是Feign,网关使用Spring Cloud Gateway,链路追踪使用Sleuth+Zipkin,服务的注册与配置中心使用nacos,线上监控系统则使用Prometheus和Grafana,还有整套的预警系统AlterManager,日志的ELK日志分析系统,存储使用Redis集群和Mysql的主从分片,RabbitMq消息队列以及配合ElasticSearch的全文检索功能,最后将写完的代码从GitHub上自动化拉取打包成docker镜像,再使用JenkinsPipeline的整个流水线加入参数化构建手动确认后将项目部署到K8S集群中,完成一个完整的项目


二. 项目背景

1. 电商模式

常见的模式B2B,B2C,C2B,C2C,O2O


(1) B2B模式

B2B (Business To Business), 是指商家与商家建立的商业关系。 如:1688网站,商户与商户的批发


(2) B2C模式

B2C(Business To Consumer),就是我们经常看到的供应商直接把商品卖给用户,即“商对客”模式,也就是通常说的商业零售, 直接面向消费者销售产品和服务。如:苏宁易购、京东、天猫、小米商城。


(3) C2B模式

C2B(Customer To Business),即消费者对企业。先有消费者需求产生而后有企业生产,即先有消费者提出需求,后有生产企业按需求组织生产


(4) C2C模式

C2C(Customer To Consumer),客户之间自己把东西放上网去卖,如:淘宝,闲鱼。


(5) O2O模式

O2O即Online To Offline,也即将线下商务的机会与互联网结合在了一起,让互联网成为线下交易的前台。线上快速支付,线下优质服务。如:饿了么,美团,淘票票,京东到家


谷粒商城是B2C模式


2. 项目技术与特色

前后分离开发,基于vue的后台管理系统

SpringCloud 全新的解决方案

应用监控、限流、网关、熔断降级等分布式方案全方位涉及

透彻讲解分布式事务、分布式锁等分布式系统的难点

分析高并发场景的编码方式,线程池,异步编排等使用

压力测试与性能优化

各种集群技术的区别

以及使用 CI/CD 使用

3. 技术要求

熟悉SpringBoot以及常见的整合方案

了解过SpringCloud

熟悉Git,Maven

了解过Html Css JavaScript

熟练使用IDEA开发项目

三. 分布式基本概念

1. 微服务

将大型的单体应用拆分成各个独立运行的小模块,模块与模块之间独立部署运行


2. 集群&分布式&节点

集群是物理状态,分布式是个工作方式;


分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统,分布式系统是建立在网络上的网络系统,分布式是指将不同的业务分布在不同的地方,集群就是指将几台机器集中在一起,实现同一业务。


例如:京东是一个分布式系统,众多业务运行在不同的机器,所有业务构成一个大型的业务集群。每一个小的业务,比如用户系统,访问压力大的时候一-台服务器是不够的。我们就应该将用户系统部署到多个服务器,也就是每一个业务系统也可以做集群化;


分布式中的每一个节点,都可以做集群,而集群并不一定就是分布式的


节点:集群中的一个服务器


3.远程调用

分布式系统中,各个服务可能处于不同的主机,但是服务之间需要的是互相的调用,称为远程调用


对于SpringCloud是使用的是HTTP+JSON进行远程调用


4.负载均衡

分布式系统中,A服务要调用B服务,B服务在多个机器中存在,A调用任意一个都能成功;为了使每个机器上的服务不闲置和过于忙碌,使用负载均衡的调用每个服务器,提升网站的健壮性


常见的负载均衡的算法:


轮询


为每一个请求选择健康池中的第一个后端服务器,然后按顺序往后依次选择,直到最后一个,一次循环


最小连接数


优先选择连接数数最少,也就是压力最小的后端服务器,在会话较长的情况下考虑这种方式


5.服务发现与注册中心

A服务调用B服务,A服务不知道B服务在哪几台服务器有,哪些服务是正常的还是下线状态的,这个时候就引入了注册中心,如果某些服务下线,就会感知到其他服务的状态。从而避免调用不可用的服务


6.配置中心

每个服务都可能有大量的配置,并且每个服务都可能部署在多台服务器上,我们经常需要更改服务的配置,我们可以让每个服务在配置中心获取自己的配置


7.服务的熔断与降级

微服务之间通过网络进行通信,存在相互依赖,当其中一个服务不可用时,有可能会造成雪崩效应,要防止这样的情况,必须要有容错机制来保护服务


服务熔断


设置服务的超时,当被调用的服务经常失败到达某个阈值,可以开启断路保护机制,后来的请求不再去调用这个服务。本地直接返回默认的数据


服务降级


在运维期间,当系统处于高峰期,系统资源紧张,我们可以让非核心业务降级运行。降级:某些服务不处理,或者简单处理(抛异常,返回NULL,调用Mock数据,调用Fallback处理逻辑)


8.API网关

在微服务架构中,API Gateway(API网关)作为整体架构的重要组件,它抽象了徼服务中都需要的公共功能,同时提供了客户端负载均衡,服务自动熔断,灰度发布,统—认证,限流流控,日志统计等丰富的功能,帮助我们解决很多API管理难题。


附录:

项目微服务划分图


————————————————

版权声明:本文为CSDN博主「Jektong」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_41857955/article/details/116016443


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐