IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Jieyue捷阅网购物商城项目(微服务架构) -> 正文阅读

[Java知识库]Jieyue捷阅网购物商城项目(微服务架构)

捷阅网微服务架构商城网站,是将单体架构的捷阅网商城网站以业务逻辑进行拆分而成的微服务架构项目。涵盖技术:注册服务发现中心、配置中心nacos、分布式服务seata、远程调用服务feign、熔断机制hystrix、链路追踪zipkin、服务网关gateway、后台检测springbootadmin、日志收集elk等技术

微服务架构地址:https://gitee.com/bosen-once/jieyue-spring-cloud

单体架构地址:https://gitee.com/bosen-once/jieyue (项目启动后的页面呈现,还请到单体架构中查看)


技术选型

技术版本端口说明
Nacos1.4.18848服务注册中心、服务配置中心
ELK7.7.09200、9300、4560、5601日志收集系统
SpringBootAdmin2.1.08764监控各个微服务的运行情况,以及查看服务内存占用信息
Gateway2.1.080网关服务
Seata1.4.18091分布式事务处理
Zipkin2.1.09411服务链路追踪组件
OpenFeign2.1.0-远程调用微服务组件

架构图

整个项目的架构主要分为网关层、调用层、服务层三大模块。且服务层配备了服务注册中心、服务配置中心、服务链路追踪中心、日志收集系统、分布式事务、后台监测中心。

1.网关层

为了确保所有的微服务都必须通过网关服务调用,特使用以下技术实现。

网关层通过类TokenFilter生成gatewayToken,并将其保存至Redis中,并且在访问服务时在请求头加上该字符串

每个服务在被访问时都需验证请求头中的字符串,字符串匹配时才允许访问,否则将返回“非法访问!”的提示。


2.调用层

调用层共有四个模块,分别是:

  1. 后台模块调用(主要任务:登录拦截;调用后台主页服务实现登录注册功能;调用商户主页服务实现商户信息查看、停用或启用商户、修改商户费率、删除商户等功能;调用用户主页服务实现对用户信息的查看;调用后台主页服务实现RBAC权限管理功能;调用后台群发服务实现对所有商城用户群发送消息的功能;调用订单服务实现订单的查看和查找功能)

  2. 商户模块调用(主要任务:登录拦截;调用商户主页服务实现商户海报修改以及商户logo的修改;调用用户主页服务实现对用户信息的查看;调用商品服务实现对商品增加、删除、修改、上架或下架等功能;调用订单服务实现订单的查看和查找功能)

  3. 用户模块调用(主要任务:登录拦截;调用图片服务获取商城主页海报以及商品图片;调用用户主页实现购物车功能、用户信息的修改;调用用户评论服务实现用户对商品评价功能;调用订单服务实现订单的查看和查找功能,以及订单的生成;调用微信支付服务实现微信支付功能)

  4. 定时任务调用(主要任务:对超时的订单进行删除以及商品库存的恢复;微信支付回调成功对订单状态进行修改)


3.服务层

服务层以业务拆分捷阅网单体架构网站,最终得到以下11个微服务:

  1. 用户页面服务(端口号-9951):MemberHomeService
  2. 后台页面服务(端口号-9953):AdminHomeService
  3. 订单服务(端口号-9954):OrderService
  4. 用户评论服务(端口号-9957):CommentService
  5. 图片服务(端口号-9959):ImagesService
  6. 系统通知服务(端口号-9958):NoticeService
  7. 商品服务(端口号-9955):GoodsService
  8. 邮件服务(端口号-9956):MailService
  9. 商户页面服务(端口号-9952):MtHomeService
  10. 微信支付服务(端口号-9960):WxPayService

4.服务注册中心

使用Nacos实现


5.服务配置中心

使用Nacos实现


6.服务监控中心

服务监控中心可对各个服务的运行状态,运行的时间,接口信息,内存占用情况进行查看,以及服务日志输出级别的设置。


7.服务链路追踪

链路追踪中心可以清楚的查看调用层与服务层的依赖关系,调用层实现某个功能时,具体调用哪个或者哪几个服务都可以通过该中心查看,并且对于服务调用先后和服务调用时常都可清晰看到,并且通过调用层和服务层的依赖关系,链路追踪中心还可自动生成对应的依赖图。


8.日志收集系统

通过集成ElasticSearch, Logstash, Kibana所组成的服务日志收集中心。依赖Logstash收集日志,保存至ElasticSearch,再通过Kibana可视化的查看,使我们对各个服务运行的日志信息管理统一,且对日志信息更方便快捷的了解。


9.分布式事务

Seate基于事务处理模式是基于两阶段提交模式演变而来的AT模式(对于代码的侵入性小)。
当调用层启动事务时,seate会生成一个对应的事务id(XID),并且将该id沿着调用链路传递给下面被调用的服务,seata会记录该调用链路下每个服务修改前的数据,当出现异常时,会通过保存再seata中的信息对数据进行回滚,如果每个服务都已正常运行无异常,seata将会认为事务无需回滚,对之前记录的数据进行删除。


有关网站制作者


个 人 主 页 (Bosen的技术分享栈)


CSDN博客 (Bosen的技术分享栈)


微信公众号(Bosen的技术分享栈)


  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-12 19:27:07  更:2021-11-12 19:29:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:07:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码