magic-api magic-api
首页
  • 快速入门
  • 基础教程
  • 权限配置
  • 高级应用
  • 开发插件
  • 模块
  • 函数
  • 扩展
  • Gitee (opens new window)
  • Github (opens new window)
  • 演示 (opens new window)
  • SpringBoot配置
  • 编辑器配置
  • 2.x更新日志
  • 1.x更新日志
  • 0.x更新日志
常见问题
💖支持
交流群
首页
  • 快速入门
  • 基础教程
  • 权限配置
  • 高级应用
  • 开发插件
  • 模块
  • 函数
  • 扩展
  • Gitee (opens new window)
  • Github (opens new window)
  • 演示 (opens new window)
  • SpringBoot配置
  • 编辑器配置
  • 2.x更新日志
  • 1.x更新日志
  • 0.x更新日志
常见问题
💖支持
交流群
  • 快速入门

    • 简介
    • 快速开始
    • 请求参数获取
    • 增删改查
    • 单表crud接口
    • 分页
  • 基础教程

    • 界面简介
    • 脚本语法
    • 配置多数据源
    • 统一请求响应
    • 统一异常处理
    • 参数校验
    • 脚本调用Java
    • Java调用接口
    • 异步调用
    • 接口发布
    • Lambda
    • Linq
    • 从1.x迁移
  • 权限配置

    • UI鉴权登录
    • UI操作鉴权
    • 接口鉴权
  • 高级应用

    • 自定义拦截器
    • 自定义SQL拦截器
    • 自定义单表API拦截器
    • 自定义SQL缓存
    • 自定义模块
    • 自定义函数
    • 自定义类型扩展
    • 自定义接口存储
    • 自定义数据库方言
    • 自定义列名转换
    • 自定义脚本语言
  • 插件

    • 插件开发
    • 集群插件
      • 定时任务插件
      • Redis插件
      • Mongo插件
      • ElasticSearch插件
      • Swagger插件
      • Git插件
      • SpringDoc插件
      • nebula插件
    • 指南
    • 插件
    mxd
    2022-01-30
    目录

    集群插件

    # 应用场景

    对于同一个应用部署了多套的情况下,可能出现接口不同步的问题。因为magic-api在启动之后,接口信息全部缓存在内存中,新增也如此,所以对于其他机器是不知道有接口变动的,解决这个问题需要将变更信息同步到其他机器,所以有了这个集群插件。

    # 引入依赖

    <dependency>
        <groupId>org.ssssssss</groupId>
        <artifactId>magic-api-plugin-cluster</artifactId>
        <version>magic-api-lastest-version</version>
    </dependency>
    

    提示

    默认情况下,集群插件依赖于redis插件,引入cluster插件后,将自动引入redis插件

    # 配置

    magic-api:
        instanceId: .... #实例ID,集群环境下,要保证每台机器不同。默认启动后随机生成uuid,如无特殊情况可不配置。
        cluster:
            channel: magic-api:notify:channel #redis 通道,此值为默认值
    # 配置Redis
    spring:
        redis:
            host: 192.168.1.29
            port: 6379
            database: 4
            password: 123456
    

    # 自定义通知

    在不想依赖Redis的情况下,可以自行实现推送通知,主要目的是告诉集群环境中其它机器数据有变动,用于更新

    @Bean
    public MagicNotifyService magicNotifyService() {
    	// 此处代码自行更换
        return magicNotify -> stringRedisTemplate.convertAndSend(config.getChannel(), Objects.requireNonNull(JsonUtils.toJsonString(magicNotify)));
    }
    

    在接收到变动通知后,需调用MagicAPIService.processNotify的方法用于处理通知

    @Autowired
    MagicAPIServiec service;
    
    service.processNotify(JsonUtils.readValue(message.getBody(), MagicNotify.class))
    
    上次更新: 2025-05-03 23:57:14
    插件开发
    定时任务插件

    ← 插件开发 定时任务插件→

    Theme by Vdoing | Copyright © 2020-2025 ssssssss.org | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式
    ×