码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 集群方法同步执行框架 Suona


    Suona 🎺

    Suona一个去中心化的集群方法同步执行框架

    Git地址:戳我

    说明

    项目借鉴XXL-job源码,以及SpingCloud的服务注册,实现单节点方法被调用时唤醒集群其余节点的方法,以达到去中心化的广播效果

    场景

    情景一:比如在使用 caffine/ hashMap作为服务节点的内存缓存的时候,这是有缺点的,因为在集群内,如果需要进行缓存清理操作,是需要对每个节点进行缓存清理的
    情景二:类似于情景一,需要该服务的集群每个节点都执行某方法

    如果需要解决这种方案,就得 MQ等中间件来实现广播的操作,那么如果中间件挂了,或者是不想那么麻烦来依靠外部的组件来进行怎么办呢?

    那么,可以尝试使用 @Suona,旨在能够让开发者在单一节点的方法被调用的时候,触发其他节点的同步进行调用,来模拟广播的操作,而开发者仅需要使用一个注解来标记这个方法,即可达到拆箱即用的效果

    使用方式

    你只需要这样使用它:

    @Service
    public class ServiceA {
        @Suona
        public void sayA() {
            // do sth.
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    这样,当集群内任意节点的方法被调用时,其余节点也会同时进行调用

    使用环境

    TECHNOLOGYENV
    JDK1.8+
    SpringClouddiscovery

    注意

    如果使用了权限框架或者是自定义了web拦截器的需要注意一下:
    由于Suona集群通讯采用内嵌的web接口进行,所以需要对该web请求进行放行: /suona/call

    稳定版

    <dependency>
        <groupId>cn.cocowwy</groupId>
        <artifactId>suona</artifactId>
        <version>1.0.0</version>
    </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    快照版本见下,发布最新的代码

    <dependency>
        <groupId>cn.cocowwy</groupId>
        <artifactId>suona</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </dependency>
    <repositories>
        <repository>
            <id>snapshots</id>
            <url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  • 相关阅读:
    力扣(LeetCode)222. 完全二叉树的节点个数(2022.08.10)
    【正点原子STM32连载】 第四十四章 触摸屏实验 摘自【正点原子】APM32F407最小系统板使用指南
    软考 系统架构设计师 简明教程 | 系统设计
    Mysql之Using index for skip scan
    抖音seo矩阵系统开源代码定制部署
    代码规范配置未生效,解决思路(涵盖 .eslintrc + .prettierrc + settings.json + .editorconfig)
    AI视频批量自动剪辑软件
    关于Azure中Zero Trust战略在Web App中的实现
    ASP.NET MVC--过滤器
    Android:kotlin中Gson与JSON的泛型映射解析
  • 原文地址:https://blog.csdn.net/Pzzzz_wwy/article/details/125474628
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号