当前位置 : 主页 > 编程语言 > java >

电商项目架构图

来源:互联网 收集:自由互联 发布时间:2022-08-10
项目架构图如下: 项目结构图的说明: 客户端可以是pc端,也可以是手机,或者其它的移动设备,当客户端向后台发送请求的时候,首先需要经过我们的路由器,路由器根据我们的VI
  • 项目架构图如下:
  • 电商项目架构图_限流

  • 项目结构图的说明:
  •       客户端可以是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集群。


    上一篇:java爬虫代码
    下一篇:没有了
    网友评论