集群方法同步执行框架 Suona

11 篇文章 0 订阅
5 篇文章 0 订阅

Suona 🎺

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

Git地址:戳我

说明

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

场景

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

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

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

使用方式

你只需要这样使用它:

@Service
public class ServiceA {
    @Suona
    public void sayA() {
        // do sth.
    }
}

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

使用环境

TECHNOLOGYENV
JDK1.8+
SpringClouddiscovery

注意

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

稳定版

<dependency>
    <groupId>cn.cocowwy</groupId>
    <artifactId>suona</artifactId>
    <version>1.0.0</version>
</dependency>

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

<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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值