codecamp

CDCR API

CDCR API

CDCR API用于控制和监视复制过程。控件操作是在集合级别执行的,即通过使用以下基本URL进行API调用:http://localhost:8983/solr/<collection>/cdcr。

监视器操作在核心级别执行,即通过使用以下基本URL进行API调用:http://localhost:8983/solr/<core>/cdcr。

目前,没有一个CDCR API调用具有参数。

CDCR API入口点(控制)

  • <collection>/cdcr?action=STATUS:返回 CDCR 的当前状态。
  • <collection>/cdcr?action=START:启动CDCR复制
  • <collection>/cdcr?action=STOP:停止CDCR复制。
  • <collection>/cdcr?action=ENABLEBUFFER:启用缓冲更新。
  • <collection>/cdcr?action=DISABLEBUFFER:禁用更新的缓冲。

CDCR API入口点(监控)

  • core/cdcr?action=QUEUES:获取有关每个副本的队列以及有关更新日志的统计信息。
  • core/cdcr?action=OPS:获取有关每个副本的复制性能(每秒操作)的统计信息。
  • core/cdcr?action=ERRORS:获取有关每个副本的复制错误的统计信息和其他信息。

CDCR控制命令

CDCR STATUS

/collection/cdcr?action=STATUS

CDCR STATUS示例

示例输入:

 http://host:8983/solr/<collection_name>/cdcr?action=STATUS

示例输出:

{
  "responseHeader": {
  "status": 0,
  "QTime": 0
  },
  "status": {
  "process": "stopped",
  "buffer": "enabled"
  }
}

ENABLEBUFFER(启用缓冲区)

/collection/cdcr?action=ENABLEBUFFER

启用缓冲区响应表示进程的状态以及是否启用缓冲区的指示。

启用缓冲区示例

示例输入:

http://host:8983/solr/<collection_name>/cdcr?action=ENABLEBUFFER

示例输出:

{
  "responseHeader": {
  "status": 0,
  "QTime": 0
  },
  "status": {
  "process": "started",
  "buffer": "enabled"
  }
}

DISABLEBUFFER(禁用缓冲区)

/collection/cdcr?action=DISABLEBUFFER

禁用缓冲区响应:CDCR的状态和缓冲区被禁用的指示。

禁用缓冲区示例

示例输入:

http://host:8983/solr/<collection_name>/cdcr?action=DISABLEBUFFER

示例输出:

{
  "responseHeader": {
  "status": 0,
  "QTime": 0
  },
  "status": {
  "process": "started",
  "buffer": "disabled"
  }
}

CDCR START

/collection/cdcr?action=START

CDCR START响应:确认CDCR已启动,缓冲状态。

CDCR START示例

示例输入:

http://host:8983/solr/<collection_name>/cdcr?action=START

示例输出:

{
  "responseHeader": {
  "status": 0,
  "QTime": 0
  },
  "status": {
  "process": "started",
  "buffer": "enabled"
  }
}

CDCR STOP

/collection/cdcr?action=STOP

CDCR STOP响应:CDCR的状态,包括确认CDCR已停止。

CDCR STOP示例

示例输入:

http://host:8983/solr/<collection_name>/cdcr?action=STOP

示例输出:

{
  "responseHeader": {
  "status": 0,
  "QTime": 0
  },
  "status": {
  "process": "stopped",
  "buffer": "enabled"
  }
}

CDCR监视命令

QUEUES

/core/cdcr?action=QUEUES

队列(QUEUES)响应

QUEUES输出内容

输出由列表“队列(queues)”组成,其中包含(ZooKeeper)目标主机列表,它们本身包含目标集合列表。对于每个集合,都提供了队列的当前大小和最后一次成功处理的更新操作的时间戳。更新操作的时间戳是原始时间戳,即在源SolrCloud上处理此操作的时间。这允许估计复制过程的延迟。

“queues”对象还包含有关更新日志的信息,例如磁盘上的更新日志的大小(以字节为单位)(“tlogTotalSize”),事务日志文件的数量(“tlogTotalCount”)以及更新的状态日志同步器(“updateLogSynchronizer”)。

QUEUES例子

示例输入:

http://host:8983/solr/<replica_name>/cdcr?action=QUEUES

示例输出:

{
  "responseHeader":{
    "status": 0,
    "QTime": 1
  },
  "queues":{
    "127.0.0.1: 40342/solr":{
    "Target_collection":{
        "queueSize": 104,
        "lastTimestamp": "2014-12-02T10:32:15.879Z"
      }
    }
  },
  "tlogTotalSize":3817,
  "tlogTotalCount":1,
  "updateLogSynchronizer": "stopped"
}

OPS

/core/cdcr?action=OPS

OPS响应

输出operationsPerSecond包含一个(ZooKeeper)目标主机列表,它们本身包含一个目标集合列表。对于每个集合,都提供自复制过程开始以来每秒平均处理的操作数。这些操作进一步分为两组:添加和删除操作。

OPS示例

示例输入:

http://host:8983/solr/<collection_name>/cdcr?action=OPS

示例输出:

{
  "responseHeader":{
    "status":0,
    "QTime":1
  },
  "operationsPerSecond":{
    "127.0.0.1: 59661/solr":{
      "Target_collection":{
          "all": 297.102944952749052,
          "adds": 297.102944952749052,
          "deletes": 0.0
      }
    }
  }
}

ERRORS

/core/cdcr?action=ERRORS

ERRORS响应

输出由包含(ZooKeeper)目标主机列表的“错误”列表组成,这些主机本身包含目标集合列表。对于每个集合,都会提供关于在复制过程中遇到的错误的信息,例如复制器线程遇到的连续错误数,复制过程开始以来的错误请求数或内部错误数,以及最后一个错误列表遇到按时间戳排序。

ERRORS示例

示例输入:

http://host:8983/solr/<collection_name>/cdcr?action=ERRORS

示例输出:

{
  "responseHeader":{
    "status":0,
    "QTime":2
  },
  "errors": {
    "127.0.0.1: 36872/solr":{
      "Target_collection":{
        "consecutiveErrors":3,
        "bad_request":0,
        "internal":3,
        "last":{
          "2014-12-02T11:04:42.523Z":"internal",
          "2014-12-02T11:04:39.223Z":"internal",
          "2014-12-02T11:04:38.22Z":"internal"
        }
      }
    }
  }
}


CDCR配置
初始化CDCR
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

SolrCloud

SolrCloud配置和参数

如何使用AsciiDoc

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }