基于Ant DesignPro Vue + SpringBoot 前后端分离 - 后端微服化 + 接口网关 + Nacos + Sentinel

这篇具有很好参考价值的文章主要介绍了基于Ant DesignPro Vue + SpringBoot 前后端分离 - 后端微服化 + 接口网关 + Nacos + Sentinel。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于Ant DesignPro Vue + SpringBoot 前后端分离 - 后端微服化 + 接口网关 + Nacos + Sentinel

通过Ant DesignPro Vue + SpringBoot 搭建的后台管理系统后,实现了前后端分离,并实现了登录认证,认证成功后返回该用户相应权限范围内可见的菜单。

  • 后端采用SpringCloud构建微服,采用SpringCloud Gateway做为服务网关,采用Nacos做为统一配置中心,并在服务网关部分解决了前端跨域调用的问题。
  • 前端VUE的所有向后端的请求全部指向服务网关,接口网关根据Url请求路径为/api/auth/或/api/account/,则将请求转发至ms-login服务;接口网关根据Url请求路径为/api/user/,则将请求转发至ms-user服务;
  • 通过Sentinel实现对网关调用接口的限流、溶断

Sentinel简介:
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。
备注:【Sentinel官方文档中心】

Ant Design Pro相关系列文章:
一、AntDesign Pro安装过程
二、基于Ant DesignPro实现通过SpringBoot后台加载自定义菜单-前端部分
三、基于Ant DesignPro实现通过SpringBoot后台加载自定义菜单-SpringBoot后端部分
四、搭建Vue版Ant Design Pro后台管理系统
五、基于Ant DesignPro Vue实现通过SpringBoot后台加载自定义菜单- 前后端分离
六、基于Ant DesignPro Vue + SpringBoot 前后端分离 - 部署后解决跨域的问题
七、基于Ant DesignPro Vue + SpringBoot 前后端分离 - 后端微服化 + 接口网关 + Nacos
八、基于Ant DesignPro Vue + SpringBoot 前后端分离 - 后端微服化 + 接口网关 + Nacos + Sentinel

源码开源地址

  • 后端Springboot工程代码已上传gitee,地址:https://gitee.com/duyanjun/mc-cloud.git
  • 本文章中代码是将文章【六、基于Ant DesignPro Vue + SpringBoot 前后端分离 - 部署后解决跨域的问题】中单体改造为微服架构
  • 本文章中代码是将文章【七、基于Ant DesignPro Vue + SpringBoot 前后端分离 - 后端微服化 + 接口网关 + Nacos】基础上断续集成了Sentinel

一、采用的技术架构

序号 技术框架 说明
1 Spring Cloud Alibaba Spring Cloud Alibaba微服体系架构
2 Nacos Api网关、服务注册发现配置管理中心
3 Spring Cloud Gateway Spring Cloud 网关
4 Ant Design Pro Vue 前端页面
5 Sentinel 微服流控

二、Maven工程结构

|-- ms-cloud         # Root工程
|  |-- ms-gateway    # 服务网关
|  |-- ms-mcv        # 后端工程
|    |-- ms-mcv-common  # 后端工程-公共部分,例如实体类
|    |-- ms-mcv-login   # 后端工程-登录接口服务
|    |-- ms-mcv-user    # 后端工程-用户接口服务

基于Ant DesignPro Vue + SpringBoot 前后端分离 - 后端微服化 + 接口网关 + Nacos + Sentinel,微服务,Java,vue.js,spring boot,sentinel

三、微服架构

基于Ant DesignPro Vue + SpringBoot 前后端分离 - 后端微服化 + 接口网关 + Nacos + Sentinel,微服务,Java,vue.js,spring boot,sentinel

四、前期准备

1、微服架构搭建

请参照文章【七、基于Ant DesignPro Vue + SpringBoot 前后端分离 - 后端微服化 + 接口网关 + Nacos】搭建微服架构,实现Ant DesignPro Vue前端通过SpringCloud Gateway服务网关来统一调用后端微服务的各接口;

2、安装Sentinel

1)、下载Sentinel

从Sentinel的Github【Release】画面下载最新版的jar
基于Ant DesignPro Vue + SpringBoot 前后端分离 - 后端微服化 + 接口网关 + Nacos + Sentinel,微服务,Java,vue.js,spring boot,sentinel

2)、启动Sentinel

java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-2.0.0-alpha-preview.jar

参数说明:

  • Dserver.port:指定Sentinel服务端口
  • Dcsp.sentinel.dashboard.server:指定访问Sentinel服务控制台画面的地址
  • Dproject.name: 指定应用名称

基于Ant DesignPro Vue + SpringBoot 前后端分离 - 后端微服化 + 接口网关 + Nacos + Sentinel,微服务,Java,vue.js,spring boot,sentinel

3)、访问Sentinel

在浏览器输入url http://127.0.0.1:8080,用户名和密码都是sentinel

基于Ant DesignPro Vue + SpringBoot 前后端分离 - 后端微服化 + 接口网关 + Nacos + Sentinel,微服务,Java,vue.js,spring boot,sentinel
基于Ant DesignPro Vue + SpringBoot 前后端分离 - 后端微服化 + 接口网关 + Nacos + Sentinel,微服务,Java,vue.js,spring boot,sentinel

五、集成Sentinel

1、在网关pom.xml中添加依赖

<!-- 集成sentinel -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId>
</dependency>
<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-spring-cloud-gateway-adapter</artifactId>
</dependency>
<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-transport-simple-http</artifactId>
</dependency>

2、在application.yml中添加sentinel配置

server:
  port: 9999
logging:
  level:
    com.ms: debug
  pattern:
    dateformat: MM-dd HH:mm:ss:SSS

spring:
  application:
    name: ms-gateway
  cloud:
    nacos:
      server-addr: 192.168.2.146:8848
    gateway:
      enabled: true
      routes:
        - id: ms-login
          uri: lb://ms-login
          predicates:
            - Path=/api/auth/**,/api/account/**
        - id: ms-user
          uri: lb://ms-user
          predicates:
            - Path=/api/user/**
    sentinel:
      eager: true # 立即加载
      filter:
        enabled: false
      transport:
        port: 9998
        dashboard: 192.168.0.9:8080
        clientIp: 192.168.0.100
      scg:
        fallback:
          content-type: application/json
          mode: response
          response-status: 200
          response-body: '{"code":0,"message":"服务器现在忙碌,请稍后再试..."}'

  config:
    import:
      - optional:nacos:application.yml
      - optional:nacos:${spring.application.name}.yml

参数说明:

  • spring.cloud.sentinel.transport.port:指定Sentinel服务Dashboard与当前服务网关服务的通信端口,通过此端口Sentinel服务获取网关服务的监控数据
  • spring.cloud.sentinel.transport.clientIp:指定服务网关服务向Sentinel服务Dashboard注册的客户端Ip,通过此IP+端口Sentinel服务获取网关服务的监控数据
  • spring.cloud.sentinel.transport.dashboard:指定Sentinel服务Dashboard的IP+端口

3、启动ms-gateway服务

基于Ant DesignPro Vue + SpringBoot 前后端分离 - 后端微服化 + 接口网关 + Nacos + Sentinel,微服务,Java,vue.js,spring boot,sentinel
基于Ant DesignPro Vue + SpringBoot 前后端分离 - 后端微服化 + 接口网关 + Nacos + Sentinel,微服务,Java,vue.js,spring boot,sentinel

4、在前端执行两次登录后

基于Ant DesignPro Vue + SpringBoot 前后端分离 - 后端微服化 + 接口网关 + Nacos + Sentinel,微服务,Java,vue.js,spring boot,sentinel

5、在Sentinel配置接口流控

基于Ant DesignPro Vue + SpringBoot 前后端分离 - 后端微服化 + 接口网关 + Nacos + Sentinel,微服务,Java,vue.js,spring boot,sentinel
在浏览器快速刷新http://192.168.0.100:9999/api/user/info接口
基于Ant DesignPro Vue + SpringBoot 前后端分离 - 后端微服化 + 接口网关 + Nacos + Sentinel,微服务,Java,vue.js,spring boot,sentinel
基于Ant DesignPro Vue + SpringBoot 前后端分离 - 后端微服化 + 接口网关 + Nacos + Sentinel,微服务,Java,vue.js,spring boot,sentinel
基于Ant DesignPro Vue + SpringBoot 前后端分离 - 后端微服化 + 接口网关 + Nacos + Sentinel,微服务,Java,vue.js,spring boot,sentinel

总结:
以上就是在微服务服务网关上集成Sentinel后的实现的流控效果。文章来源地址https://www.toymoban.com/news/detail-516455.html

到了这里,关于基于Ant DesignPro Vue + SpringBoot 前后端分离 - 后端微服化 + 接口网关 + Nacos + Sentinel的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【SpringBoot+Vue】全网最简单但实用的前后端分离项目实战笔记 - 后端

    配套视频地址:https://www.bilibili.com/video/BV1dG4y1T7yp/ 如果您需要原版笔记,请up喝口水,可以上我的淘宝小店 青菜开发资料 购买,或点击下方链接直接购买: 源码+PDF版本笔记 源码+原始MD版本笔记 感谢支持! 创建springboot项目:2.7.8 pom依赖 yml 测试 编写代码生成器 启动类加注

    2024年02月04日
    浏览(53)
  • SpringBoot + Vue前后端分离项目实战 || 三:Spring Boot后端与Vue前端连接

    系列文章: SpringBoot + Vue前后端分离项目实战 || 一:Vue前端设计 SpringBoot + Vue前后端分离项目实战 || 二:Spring Boot后端与数据库连接 SpringBoot + Vue前后端分离项目实战 || 三:Spring Boot后端与Vue前端连接 SpringBoot + Vue前后端分离项目实战 || 四:用户管理功能实现 SpringBoot + Vue前后

    2024年02月12日
    浏览(66)
  • SpringBoot + Vue前后端分离项目实战 || 二:Spring Boot后端与数据库连接

    系列文章: SpringBoot + Vue前后端分离项目实战 || 一:Vue前端设计 SpringBoot + Vue前后端分离项目实战 || 二:Spring Boot后端与数据库连接 SpringBoot + Vue前后端分离项目实战 || 三:Spring Boot后端与Vue前端连接 SpringBoot + Vue前后端分离项目实战 || 四:用户管理功能实现 SpringBoot + Vue前后

    2024年02月11日
    浏览(60)
  • 基于Springboot+vue鲜花商城系统(前后端分离)

    项目技术栈: 前端:vue+elementUI+echarts 后端:Springboot+mybatis+MySQL 项目主要功能: 商品信息 商品分类 角色管理 公告管理 轮播图管理 订单管理 收货地址管理 日志管理 部分功能截图:

    2024年01月19日
    浏览(47)
  • 基于SpringBoot+Vue的旅游系统、前后端分离

    博主24h在线,想要源码文档部署视频直接私聊,9.9元拿走! 基于SpringBoot+Vue的旅游系统、前后端分离  开发语言:Java 数据库:MySQL 技术:SpringBoot、Vue、Mybaits Plus、ELementUI 工具:IDEA/Ecilpse、Navicat、Maven 【主要功能】 角色:管理员、用户 用户:浏览旅游新闻、景区信息、美食

    2024年02月05日
    浏览(44)
  • 在前后端分离的项目中,Springboot vue,前端把json传到后端,后端用一个类接收,json中的数据是怎么转换类型的

    在前后端分离的项目中,前端通常会将数据以 JSON 格式传输给后端,后端需要将接收到的 JSON 数据转换为对应的类型。这个过程可以通过后端框架和库来自动完成。 在Spring Boot中,后端可以使用相关的库来实现JSON数据的转换。常见的库包括Jackson、Gson和FastJson等。这些库提供

    2024年02月13日
    浏览(67)
  • 基于springboot+vue的社区团购系统(前后端分离)

    博主主页 :猫头鹰源码 博主简介 :Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战 主要内容 :毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 网络交易(Electronic Commerce):是

    2024年01月21日
    浏览(66)
  • 基于springboot+vue的宠物领养系统(前后端分离)

    博主主页 :猫头鹰源码 博主简介 :Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战 主要内容 :毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 宠物在人类生活中扮演着越来越重

    2024年01月20日
    浏览(44)
  • 基于springboot+vue的在线拍卖系统(前后端分离)

    博主主页 :猫头鹰源码 博主简介 :Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战 主要内容 :毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 随着社会的快速发展,计算机的影

    2024年01月19日
    浏览(39)
  • 基于SpringBoot+SpringCloud+Vue前后端分离项目实战 --开篇

    如何高效学习Java? 毕业设计项目应该怎么做?入门实战项目应该怎么做? 做Java开发都应该学习哪些框架技术?到底应该往哪个方向努力? 📢 这是专栏的第一篇文章,我想来跟你聊聊 为什么要学习此专栏 ?我们经常说,看一个事儿千万不要直接陷入细节里,你应该 先鸟瞰

    2024年02月03日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包