失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 谷粒商城基础篇-1.分布式基础概念架构图与功能模块图

谷粒商城基础篇-1.分布式基础概念架构图与功能模块图

时间:2022-05-10 16:31:59

相关推荐

谷粒商城基础篇-1.分布式基础概念架构图与功能模块图

一、分布式基础概念

1、微服务:

把一个单独的应用程序开发我i一套小服务,每个小服务运行在自己的进程中,并使用轻量级通信,如http API。这些服务围绕业务能力搭建,并通过完全自动化部署机制独立部署。这些服务使用不同的编程语言书写,以及不同数据的存储技术,并保持着最低限度的集中式管理。

2、分布式,集群,节点

①分布式:将不同的业务分布在不同的地方,是一种工作方式。比如京东不同的业务在不同的服务器。

②集群:将几台服务器集中在一起,实现同一业务。比如订单业务一个服务器不够,放十台服务器。是一种物理形态。只要是一堆机器,就叫做集群。集群不一定是分布式的,比如十台服务器的集群,它用来实现同一个服务,比如购物车。

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

③分布式系统:若干独立计算机的集合,这些计算机对于用户来说就像单个系统。比如一个商城有很多服务(订单,支付…),每个服务放在不同的服务器上,对于用户来说,用户感觉不到这些不同的服务是在不同的服务器上。对于每个服务器,就是一个节点。有时候,因为对于购物车服务来说,一个服务器不能承载压力,添加多个服务器,也就是把购物车这个服务做成了集群,来缓解压力。

3、远程调用:

分布式系统中,每个处于不同主机的服务相互之间的调用。

4.负载均衡

分布式系统红,A服务需要调用B服务,B服务在堕胎机器中都存在,A调用任意一个服务器均可完成功能。为了使得每一个服务器不要太忙或者太闲,可以用负载将军和的调用每一个服务器,提升网站的健壮性。

常见的负载均衡算法:轮询,最小连接,散列算法

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

问题引入:当A服务调用B服务的时候,A服务并不知道B服务在当前的那几台服务器有,那些正常,那些已经下线。

引入注册中心:如果某些服务下线,其他人可以试试的感知到其他服务的状态,从而避免调用不可用 的服务。比如A服务要调用B服务,可以在注册中心中发现B服务在三台机器中都有。

6、配置中心:集中管理微服务的配置信息

每个服务都有大量的配置,并且每个服务都可能部署在堕胎服务器上,我们经常需要变更配置。

7.服务熔断&服务降级

①问题引入:在微服务架构中,微服务之间通过网络进行通信,因为网络通信具有不可靠性,不稳定性。

比如:库存服务的不可用导致商品服务的阻塞,因为商品服务的阻塞,订单服务也阻塞了。

整个服务链的资源积压,会导致整个服务器的资源耗尽,所有服务均不可用,导致微服务的雪崩现象

②服务熔断:

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

③服务降级:(整体把控)

在运维期间,当系统处于高峰期,系统资源紧张,我们可以让非黑奴业务降级运行,降级。某些服务不处理或进行简单处理(抛异常、返回null,调用mock数据,调用fallback处理逻辑)。

8.API网关

抽象了微服务中都需要的公共功能,同时提供了客户端负载均衡,服务自动熔断,灰度发布,统一认证,限流监控,日志统计等功能,解决API服务管理难题。

例如:前端调用后端资源的时候,把http请求统一发送到到网关上,网关提供了很多功能,比如看看那些请求是合法的。等于商场的入口

二、架构图与功能模块图

1.外网部署:是让公众访问的,用来部署前端项目,比如手机APP,电脑WEB网站

2.内网部署:部署的是整个服务集群。

3.访问流程

http请求——>nginx集群——>网关gatway(

①动态路由:网关根据当前请求,动态路由指定的服务,想调用商品服务还是什么服务。

②负载均衡:假定请求商品服务的众多,网关可以负载均衡的去调用商品服务。

③服务降级熔断:当某个服务出现问题,也可以通过网关对某个服务进行熔断和降级sentinel,

④也可以进行动态授权,那个根据权限相应服务。

⑤流量控制:允许后台可处理的流量进行发送)

——>服务处理

①注册中心:把服务都注册到注册中心统一暴露

②配置中心:方便配置管理

③服务追踪:比如商品服务调用库存服务的时候某个链路出现了问题,需要追踪服务调用链,看问题出现的地方。

把每个服务的信息,交给Promietheus进行聚合分析,再由grafana进行可视化展示。通过Promethus提供的Grafana得到服务实时的告警信息,把这些告警信息通过邮件或者短信告知运维或者开发)

——>存储

①缓存:redis哨兵集群和分片集群

②持久化(mysql:读写分离,分库分表)

③消息队列:服务与服务之间的解耦,完成分布式事务的最终一致性。

④全文检索:比如检索商品信息

⑤存储图片视频:阿里云的对象存储服务

——>定位项目上线后的问题:ELK(收集业务里的日志,存储到ES中,用Kibaner可视化界面从es中检索出相关的日志信息,定位出线上问题的所在)

——>持续集成或者持续部署

①问题引入:项目开发起来,微服务众多,每一个都打包到服务器太麻烦。

②功能引入以后:

Ⅰ、开发人员:把代码提交到github,

Ⅱ、运维人员通过自动化工具Jenkins从github上获取到代码,把其打包成docker镜像。最终使用K8S集成docker服务,最终将其以docker容器的方式进行运行。

如果觉得《谷粒商城基础篇-1.分布式基础概念架构图与功能模块图》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。