skywalking-java/docs/others/cn/guides/storage-extention.md

1.5 KiB
Raw Blame History

数据存储扩展

SkyWalking g已经提供了多种存储解决方案。在本文档中您可以 学习如何轻松实现新存储。

定义您的数据存储提供实现

  1. 定义一个类扩展 org.apache.skywalking.oap.server.library.module.ModuleProvider.
  2. 将此数据存储提供实现继承存储模块。
@Override 
public Class<? extends ModuleDefine> module() {
    return StorageModule.class;
}

实现所有DAO接口

下面是所有数据存储所需实现的DAO接口

  1. IServiceInventoryCacheDAO
  2. IServiceInstanceInventoryCacheDAO
  3. H2EndpointInventoryCacheDAO
  4. H2NetworkAddressInventoryCacheDAO
  5. IBatchDAO
  6. StorageDAO
  7. IRegisterLockDAO
  8. H2TopologyQueryDAO
  9. IMetricQueryDAO
  10. ITraceQueryDAO
  11. IMetadataQueryDAO
  12. IAggregationQueryDAO
  13. IAlarmQueryDAO
  14. IHistoryDeleteDAO

注册所有的service实现

public void prepare(), 使用 this#registerServiceImplementation 方法去注册绑定您的接口实现。

实例

org.apache.skywalking.oap.server.storage.plugin.elasticsearch.StorageModuleElasticsearchProviderorg.apache.skywalking.oap.server.storage.plugin.jdbc.mysql.MySQLStorageProvider 就是一个很好的例子。

重新发布新的数据存储实现

您不必为了实现数据存储而克隆主托管库您可以轻松地依赖我们的Apache版本。看一下 OpenSkywalking/SkyWalking-With-Es5x-Storage 仓库, SkyWalking v6 重新发布 ElasticSearch 5 TCP 链接数据存储的实现。