• 集群方法同步执行框架 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
  • 相关阅读:
    C++设计模式-享元(Flyweight)
    再获深交所认可,Smartbi实力领跑金融BI赛道
    java面试笔试题
    水果店圈子:开水果店要找什么地段,新手开水果店怎么找地方
    Jetpack结合MVVM可以开发出一个多优秀的APP?
    PHP的学习入门建议
    使用HTML制作静态宠物网站——蓝色版爱宠之家(HTML+CSS)
    QT绘图项目 - 汽车表盘
    vue-quill-editor 上传图片 先传到服务器 在显示出来
    Insert or Merge
  • 原文地址:https://blog.csdn.net/Pzzzz_wwy/article/details/125474628