Magician-Web3 1.0.5发布啦,加入了负载均衡和重试策略


Magician-Web3 是一个区块链开发工具包。它由两个功能组成。一个是扫描区块链,根据开发者的需要监控交易。另一个是对 web3j 的一些二次打包,可以减少开发者在一些常见场景下的工作量。它计划支持三种链,ETH(BSC、POLYGAN 等)、SOL 和 TRON

本次更新的点

1. 加入了负载均衡,只要配置多个RPC URL 即可自动轮询,可以将流量分散给多个节点,不用一直盯着一个节点“祸害了”

2. 加入了重试策略,当出现了某些意外的原因 导致区块被跳过扫描,那么被跳过的区块高度将进入重试策略,你可以自己进行处理

3. 修改了一点点细节

负载均衡

直接设置多个rpc地址即可

MagicianBlockchainScan.create()
.setRpcUrl(
// 可以设置1到n个 rpc地址了,超过一个将自动轮询使用
EthRpcInit.create()
.addRpcUrl("https://data-seed-prebsc-1-s1.binance.org:8545")
.addRpcUrl("https://data-seed-prebsc-2-s1.binance.org:8545")
.addRpcUrl("https://data-seed-prebsc-1-s2.binance.org:8545")
)
.setScanPeriod(1000)
.setBeginBlockNumber(BlockEnums.LAST_BLOCK_NUMBER.getValue())
.addEthMonitorEvent(new EventOne())
.addEthMonitorEvent(new EventThree())
.setRetryStrategy(new EthRetry())
.start();

重试策略

在符合以下两个条件时,会触发重试策略,两个条件必须全都符合 才会触发重试

1. 当前正在扫描的块高 是空的(块不存在 或者 块里面没交易)

2. 当前正在扫描的块高 < 链上的最新块高

当上面两个条件同时符合的时候,扫描任务会跳过这个块,然后继续扫描下一个块,同时 重试策略会收到被跳过的块高, 你可以在重试策略里 自己处理

创建一个重试策略

public class EthRetry implements RetryStrategy {

@Override
public void retry(BigInteger blockNumber) {

}
}

将重试策略添加到扫描任务中

MagicianBlockchainScan.create()
.setRetryStrategy(new EthRetry())// 调用这个方法添加
.start();

需要注意线程数量的配置

如果你此时开了一个扫块任务 + 一个 重试策略,那么需要占用两个线程,所以参数必须传2

// 初始化线程池,核心线程数必须 >= 扫块的任务数量 + 重试策略的数量
EventThreadPool.init(2);

细节调整

1. 扫描频率最低可以设置500毫秒

2. 设置RPC地址的 传参类型变了

3. 由于第二点的优化,现在可以根据RPC地址的类型来判断你要扫描什么链了,所以去除了ChainType的设置

MagicianBlockchainScan.create()
.setRpcUrl(// 这里发生了改变
EthRpcInit.create()
.addRpcUrl("https://data-seed-prebsc-1-s1.binance.org:8545")
.addRpcUrl("https://data-seed-prebsc-2-s1.binance.org:8545")
.addRpcUrl("https://data-seed-prebsc-1-s2.binance.org:8545")
)
.setScanPeriod(1000)// 这个参数最低可以设置为500了
.setBeginBlockNumber(BlockEnums.LAST_BLOCK_NUMBER.getValue())
.addEthMonitorEvent(new EventOne())
.addEthMonitorEvent(new EventThree())
.setRetryStrategy(new EthRetry())
.start();

可以访问官网了解更多:https://magician-io.com


相關推薦

2023-08-05

Easy Retry  致力提高分布式业务系统一致性的分布式重试平台 易用性 业务接入成本小。避免依赖研发人员的技术水平,保障重试的稳定性 灵活性 能够动态调整配置,启动/停止任务,以及终止运行中的重试数据

2023-12-30

在最新发布的v2.0.0版本中,对基础框架进行了大幅优化,增加对HTTP/3的支持,进一步丰富了OpenNJet的生态,动态能力逐渐成熟。此次更新主要包括以下五个方面: 基础框架大幅优化。 框架的优化对于 CoPilots 进行了加固,

2023-11-16

一款致力提高分布式业务系统一致性的分布式重试与任务调度平台 易用性 业务接入成本小。避免依赖研发人员的技术水平,保障稳定性 灵活性 能够动态调整配置,启动/停止任务,以及终止运行中的任务 操作简单&nbs

2023-04-26

分布式系统大行其道的当前,系统数据的准确性和正确性是重大的挑战,基于CAP理论,采用柔性事务,保障系统可用性以及数据的最终一致性成为技术共识 为了保障分布式服务的可用性,服务容错性,服务数据一致性 以及服务

2023-01-04

Sundial    .NET 功能齐全的开源分布式作业调度系统,可从最小的应用程序到大型企业系统使用。 特性 简化调度作业 支持作业监视器 支持作业执行器 支持自定义作业存储组件(持久化) 支持自定义策略执行

2022-11-22

Magician-Route是Magician的官方web组件,由Magician-Web发展而来的新项目,主要是去掉了里面的反射,牺牲了一点易用性,将侧重点放在了性能上,两者的区别主要在于路由和拦截器的创建方式上。 Magician-Web 依然会继续维护,如果大

2023-05-04

请求同时发送,从而导致网络拥塞和负载增加。 v1.1.0 发布内容: RetryAspect添加Ordered,支持动态调整Aop执行顺序【新增】 手动添加重试任务【新增】 更新核心字段描述【更新】 更新类名定义【更新】 删除重试retry_task

2024-01-11

📣📣sms4j 3.1.0终于发布啦!📣📣 2023年转瞬即逝,sms4j项目在这段时间里取得了令人瞩目的成就。截至目前,我们已经获得了超过1300个star,这离不开大家对sms4j项目的支持和关注,我代表整个开发团队向大家表示衷心的感谢!

2023-07-06

MatrixOne 0.8 版本正式发布啦! 项目文档网站: https://docs.matrixorigin.cn   重点关注: MatrixOne 公测 Beta 版 MatrixOne 的 GA-1.0 版本预计将在第三季度正式发布!本次发布的 0.8 版本是 MatrixOne 在 GA 前的最后一个版本,同时也是

2023-05-30

!你关注的短信框架终于更新啦! 🎊SMS4J 2.1.0版本正式发布!🎊 本次更新带来了诸多的新特性,也修复了先前版本中的诸多问题,接下来让我们一起来看一下本次更新的内容吧! 🎉新特性🎉 新增天翼云短信支持 V 2.1.0

2022-12-10

B拦截规则创建接口实现拦截规则的自动创建。 为阿里云负载均衡打开自动拦截功能 配置日志存储 负载均衡CLB(SLB)默认不启动日志存储功能,需要手工创建并启动。 在负载均衡管理面板中选择日志管理-访问日志中对应负

2022-10-03

PC远程服务调用功能。拥有"高性能、分布式、注册中心、负载均衡、服务治理"等特性。现已开放源代码,开箱即用。   特性 1、快速接入:接入步骤非常简洁,两分钟即可上手; 2、服务透明:系统完整的封装了

2024-02-28

Linkerd 2.15 现已发布,该版本增加了对 Kubernetes 以外工作负载的支持。新的“网格扩展(mesh expansion)”功能首次允许 Linkerd 用户将运行在虚拟机、物理机和其他非 Kubernetes 位置上的应用程序引入到网格中,为 Kubernetes 和非 Kubernet

2023-02-08

载均衡,以及服务自动注册和发现。Apache Dubbo 3.1.6 现已发布,具体更新内容包括: Feature 为 aduit 添加一些 qos 命令日志 #11224 添加服务名称映射重试 #11265 添加 nacos 创建客户端重试 #11304 添加 Nacos sub try test&nbs