快捷搜索: 王者荣耀 脱发

day22_3_22 项目简介&谷粒商城

一、项目简介

1、电商模式

常见电商模式:B2B, B2C, C2B, C2C, O2O;

谷粒商城采用B2C模式,销售自营商品给客户

2、项目架构图

3、微服务划分图

3、项目技术点&特色

    前后端分离开发,拥有基于vue的后台管理系统 基于SpringCloud的解决方案 应用监控、限流、网关、熔断降级等分布式方案,全方位涉及 分析高并发场景的编码方式,运用线程池、异步编排等使用 运用集群技术 ······

4、开发项目需要的前置知识

    熟悉 SpringBoot 以及常见整合方案 了解 SpringCloud 熟悉 git,maven 熟悉 linux,redis,docker 基本操作 了解 html,css,js,vue 熟练使用 idea 开发项目

二、分布式基础概念

1、微服务

将大型单体应用,基于服务边界进行拆分,分成多个服务,每个服务独立部署运行,通常使用轻量级机制通信,比如HTTP API

来一个让人害怕的图~~:

2、集群&分布式&节点

集群是物理形态,分布式是工作方式。

一堆服务器干着同样的活,就是集群;每个服务器都干着不同的活就是分布式。

例如:京东是一个分布式系统,众多业务运行在不同的机器上,所有的业务构成一个大型的业务集群。每个小的业务,比如用户系统,访问压力大的时候一个服务器肯定顶不住。我们就将用户系统部署到多个服务器上,实现负载均衡。通常每一个业务系统都可以做成集群。

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

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

3、远程调用

分布式系统中,各个服务可能处于不同的服务器,微服务之间的调用涉及到不同服务器之间的通讯,我们称为远程调用。

SpringCloud中使用HTTP+JSON的方式完成远程调用

4、负载均衡

在分布式系统中,为了避免单个服务器压力过大,我们需要采用负载均衡的方式调用每一个服务器,提升网站的健壮性。

常见的负载均衡算法:

    轮询法:将请求按照顺序轮流分配到服务器上。缺点:不能发挥某些高性能服务器的优势; 随机发:随机获取一台服务器; 哈希法:通过ip地址哈希化确定要访问服务器的地址。优势:每次客户端访问的服务器相同,能很好的利用session和cookie; 加权轮询法:根据服务器的性能不同加权,控制服务器的访问频率

5、服务注册/发现&注册中心

A服务调用B服务,A不知道B有多少台,哪些正常工作,服务中心可以解决这些问题。

6、配置中心

每个服务都有大量的配置,集群化部署的情况下,单个配置修改过于麻烦,采用配置中心进行统一配置,统一修改更为方便

7、服务熔断&服务降级

微服务之间的通讯存在相互依赖的现象,某一服务不可用时,可能造成雪崩效应,所以需要容错机制进行保护。

①服务熔断:

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

②服务降级:

在运维期间,系统处于高峰期,或者比如双11的淘宝网,系统资源紧张,我们可以让非核心业务降级运行。降级:某些服务不处理,或者简单处理(抛异常,返回null,调用Mock数据等)。

8、API网关

在微服务架构中,网关抽象了微服务中都需要的公共功能,同时提供了:负载均衡、服务自动熔断、灰度发布、统一认证、限流、日志统计等功能

经验分享 程序员 微信小程序 职场和发展