Data-Stash数据导出组件疑问解答
1、是否支持多群组数据导出?
支持,通过system.groupId = 1,2,3配置。为每一个群组都创建一个线程进行群组区块数据的获取、解析、保存。各类区块数据表都以群组号为前缀区分如:g1_block_detail_info,g2_block_detail_info 。而以数据仓库获取区块数据的形成不支持多群组数据导出。
2、 如果没有该合约的 abi 和 bin 信息,哪些数据能够被导出,哪些数据不能被导出?
能导出数据:
- 区块原始数据表block_raw_data
- 交易原始数据表tx_raw_data*
- 交易回执原始数据表tx_receipt_raw_data
- 区块详细数据表block_detail_info
不能被导出数据:
- 区块交易数据表block_tx_detail_info
- 合约信息表contract_info
- 事件数据存储表合约名称_事件名称_event
- 交易数据存储表合约名称_方法名称_method
3、数据导出组件使用elastic-job依赖中的curator版本与zookeeper版本冲突问题
2022-03-17 18:01:19.867 [main-EventThread] ERROR o.a.c.f.imps.CuratorFrameworkImpl - Background operation retry gave up
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss
at org.apache.zookeeper.KeeperException.create(KeeperException.java:102)
at org.apache.curator.framework.imps.CuratorFrameworkImpl.checkBackgroundRetry(CuratorFrameworkImpl.java:851)
at org.apache.curator.framework.imps.CuratorFrameworkImpl.processBackgroundOperation(CuratorFrameworkImpl.java:643)
at org.apache.curator.framework.imps.AddWatchBuilderImpl.lambda$performBackgroundOperation$1(AddWatchBuilderImpl.java:166)
at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:722)
at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:551)
elastic-job依赖中的curator版本为5.1.0版本需要使用zookeeper版本为3.7.0版本
4、多活部署如何解决应用程序挂掉异常?
程序中存在 BlockCheckService.checkTimeOut()方法,这个方法会从block_task_pool表 中找出五分钟以前的并且状态是 1(doing状态)的区块高度,将其状态改为3(timeout状态)接着BlockCheckService.processErrors()方法会从block_task_pool表中找出状态为3(timeout状态)或者4(error状态)的区块高度,删除该区块高度以保存数据并将其在block_task_pool表中的状态改为0(init状态)等待重新处理