You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

0.8:

1. Topic registration info:
/brokers/topics/[topic] :

Schema:
{ "fields" :
    [ {"name": "version", "type": "int", "doc": "version id"},
      {"name": "partitions",
        "type": {"type" : "array",
                  "items" : {"type": "map",
                             "values": {"type": "array", "items": "int", "doc": "a list of replica ids"},
                             "doc": "a map from partition id to replica list"},
                  "doc": "a list of partitions"},
      }
    ]
}
Example:
{
  "version": 1,
  "partitions": ["0": [0, 1, 3] ] }
}

2. Partition state info:
/brokers/topics/test/partitions/[partitionId]/state

Schema:
{ "fields":
    [ {"name": "version", "type": "int", "doc": "version id"},
      {"name": "isr",
       "type": {"type": "array",
                "items": "int",
                "doc": "an array of the id of replicas in isr"}
      },
      {"name": "leader", "type": "int", "doc": "id of the leader replica"},
      {"name": "controller_epoch", "type": "int", "doc": "epoch of the controller that last updated the leader and isr info"},
      {"name": "leader_epoch", "type": "int", "doc": "epoc of the leader"}
    ]
}

Example:
{
  "version": 1,
  "isr": [0,1],
  "leader": 0,
  "controller_epoch": 1,
  "leader_epoch": 0
}

3. Broker registration info:
/brokers/ids/[brokerId]

Schema:
{ "fields":
    [ {"name": "version", "type": "int", "doc": "version id"},
      {"name": "host", "type": "string", "doc": "ip address or host name of the broker"},
      {"name": "port", "type": "int", "doc": "port of the broker"},
      {"name": "jmx_port", "type": "int", "doc": "port for jmx"}
    ]
}

Example:
{
  "version": 1,
  "host": "192.168.1.148",
  "port": 9092,
  "jmx_port": 9999
}

4. Controller epoch: 

/controllerEpoch -> int (epoch)

5. Controller registration:

/controller -> int (broker id of the controller)

6. Consumer registration:

/consumers/[groupId]/ids/[consumerId]

Schema:
{ "fields":
    [ {"name": "version", "type": "int", "doc": "version id"},
      {"name": "pattern", "type": "string", "doc": "can be of static, whiteList or blackList"},
      {"name": "subscription", {"type": "map",                                "values": {"type": "int"},
                                "doc": "a map from a topic or a wildcard pattern to the number of streams"}      }    ]
}

Example:
A static subscription:
{
  "version": 1,
  "pattern": "static",
  "subscription": {"topic1": 1, "topic2": 2}
}


A whitelist subscription:
{
  "version": 1,
  "pattern": "whiteList",
  "subscription": {"*abc": 1}}

A blacklist subscription:
{
  "version": 1,
  "pattern": "blackList",
  "subscription": {"!abc": 1}}

7. Consumer owner:

/consumers/[groupId]/owners/[topic]/[partitionId] -> string (consumerId)

8. Consumer offset:

/consumers/[groupId]/offsets/[topic]/[partitionId] -> long (offset)

9. Re-assign partitions: to be documented

/admin/reassign_partitions

10. Preferred replication election: to be documented

/admin/preferred_replica_election

  • No labels