<返回更多

电商项目架构图

2022-08-11    再多一点呢
加入收藏
项目架构图如下:



项目结构图的说明:

客户端可以是pc端,也可以是手机,或者其它的移动设备,当客户端向后台发送请求的时候,首先需要经过我们的路由器,路由器根据我们的VIP(虚拟IP地址)将请求转换给具体的虚拟路由器(keepalived+Nginx),为了保证高可用,此时的虚拟路由器是需要做高可用配置的(至少两台以上的服务)。主要用来解决单点故障。

Nginx单点可以解决5万的并发,并且Nginx还能够做限流(IP限流,或者访问速率限流),并且Nginx还具备缓存的功能。后期为了解决更高的并发,我们可以加入openResty,这样单点就可以解决10k到1000k的并发。

虚拟路由器将请求转发给我们的网关(Gateway) GateWay的主要作用如下

1. 将用户的请求转发给具体的微服务。

2. 限流,微服务网关需要使用服务器发布,譬如Tomcat,所以这一块所解决的并发是有限的,主要为后台的商品,订单,用户微服务模块提供保护。

3. 统一的鉴权。从而判断用户是否能够进行对应的操作。

请求这个时候,就会到达具体的微服务,因为微服务与微服务之间需要进行相互的调用,所以我们需要使用Feign进行微服务的调用。模块与模块之间需要有公用的JAVABean和工具类。所以我们把Feign和通用JavaBean和工具类,都封装成一个一个的微服务。

还有Ribbon负载均衡,和HyStrix服务的熔断降级,我们都需要做成一个一个的微服务。

我们会把分布式的事务处理,oauth2.0的授权服务,消息服务,canel数据同步监听服务,支付等等其它的功能,都做成我们的公共的微服务组件。方便调用。

我们使用spring cloud Bus 来做微服务各个文件的监听服务。

整个项目,我们使用服务的注册与发现组件(Nacos/Consul/Eureka/Zookeeper........),服务的监控组件Hystraix DashBorad,我们使用统一的服务配置中心ConfigServer.我们使用的远程仓库是GitHub.

整个项目,我们数据层的支持如下:

1. 数据的检索,使用的是ES集群。

2. 项目中的文件采用的是FastDFS集群。

3. 数据持久化层采用的MySQL集群,底层采用的是分库分表。

4. 缓存使用的redis集群。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>