微服务分布式电商项目学习笔记(二)---- 微服务架构图+微服务划分图(2020/7/1)

微服务架构图+微服务划分图(2020/7/1):

1、微服务架构图

1.1 关键部分简介

1、外网部署:就是面对公众访问的进行外网部署

2、内网部署:我们整个后台的集群都通过内网部署

3、客户端:可以是手机,电脑等

4、ngnix:负责将客户端发来的请求进行转发给后台

5、网关:在这里使用的SpringCloud Gateway,用于处理请求

6、认证中心:登录时的认证以及鉴权,系统的安全框架,这里使用的是SpringSecurity

7、业务集群:包含我们项目中所有实现的待功能,注意,不同的业务会部署在不同的主机上,服务之间的调用需要通过Feign

8、注册中心:所有的服务都会在注册中心中注册,这里使用的nacos注册中心

9、配置中心:每个子服务可以动态的在配置中心获取配置信息,这里使用的nacos配置中心

10、服务追踪:跟踪记录用户请求都发起了哪些调用,可以根据记录发现系统的弱点在哪儿,进而可以针对性的进行优化。

11、Redis集群:用作缓存,或者是用作分布式的缓存

12、MySql集群:用于数据的持久化操作,存储数据

13、RabbitMQ:消息中间件,可以用作不同服务中数据的交换,大大降低了耦合度。

14、全文检索: Elasticsearch是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。

1.2 服务过程

  客户通过客户端发送一个请求,请求通过ngnix转发,ngnix将我们的请求转交给API网关(使用SpringCloud的GateWay),网关可以直接通过路由动态的请求到后台的服务,也可以通过负载均衡(SpringCloud的ribbon)转发请求访问业务集群,其中要经过SpringSecurity的安全验证,这里使用的SpringSecurity进行的登录(认证)操作以及鉴权操作,由于业务是做的集群,不同的服务要分布在不同的服务器上,因此需要一个注册中心来注册这些服务,当不同的业务服务之间进行调用通信时,可以通过注册中心进行服务发现,进而可以进行精确定位的调用;在一些大型的项目中,为了防止服务宕机导致某个服务不能使用影响到整个系统,我们通常将同一种服务运行在不同的服务器上,这样即使其中一台服务器宕机了,我们依旧可以使用剩余的服务器,能够保证系统的正常运行,如果这些相同的服务配置文件发生变化时,依次修改比较麻烦,因此需要一个配置中心,进行统一的服务配置,子服务可以动态在配置中心获取配置,不需要再依次的修改了,提高了效率也提高了安全性准确性。而服务追踪在整个系统中起到了一个监控的作用,实时的追踪用户的请求调用,另外,这个系统使用了redis进行了缓存服务,可以应对高并发的场景,使用mysql做了数据持久化的操作,这里mysql使用了集群的方式,可以进行读写分离的操作,可以起到数据备份以及读写效率提高的好处,并且即使其中的一台mysql宕机了,我们依旧可以使用其他的mysql,不过此时的主从关系可能会发生变化。而使用了rabbitMq作为消息中间件,对于不同服务间的数据交换而不进行业务影响操作起到比较好的作用,可以降低耦合度,提高效率。另外,我们的整套代码使用了gitHub进行了管理,而运行发布则使用了docker,而后期的运维部署则使用了jenkins管理工具。

 

2、微服务划分图

 

写在后面:本篇的服务过程是按照个人的理解一字字敲打的,可能存在错误,要是有不对的地方,请在评论区评论,多多指教。

 

学习视频观看网址:https://www.bilibili.com/video/BV1np4y1C7Yf?p=5

如果你觉得这篇博客有用,请点个赞再走吧。

 

posted @ 2020-07-03 16:37  帝莘  阅读(2070)  评论(0编辑  收藏  举报