The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Vayne::Zk - Vayne Zk control modual

SYNOPSIS

  use Vayne::Zk;
  my $zk = Vayne::Zk->new();
  my %region = $zk->meta;

DESCRIPTION

DATA STRUCTURE

    # we have three regions and 'vayne' is the namespace.
    [zk: localhost:2181(CONNECTED) 0] ls /vayne
    [region-foo, region-bar, region-first]

    # region-first's redis(message system) info.
    [zk: localhost:2181(CONNECTED) 1] get /vayne/region-first
    ---
    password: xxxxxxxxxx
    server: 127.0.0.1:6379

    # real servers belong to the region 'region-fist'.
    [zk: localhost:2181(CONNECTED) 2] ls /vayne/region-first
    [vayne1.foo.bar.net, vayne2.foo.bar.net]

    # workers in vayne1.foo.bar.net.
    [zk: localhost:2181(CONNECTED) 3] ls /vayne/region-first/vayne1.foo.bar.net
    [tcp, dump, track]

    # we have two tcp workers running on vayne1.foo.bar.net belongs to region-first and pids are 52749 52757.
    [zk: localhost:2181(CONNECTED) 4] ls /vayne/region-first/vayne1.foo.bar.net/tcp
    [52749, 52757]

    The node '/vayne/region-first/vayne1.foo.bar.net/tcp/52749' is registered when the worker tcp start.

METHODS FOR CONTROLLING VAYNE SYSTEM

$zk->meta

Get all meta info under zookeeper NAMESPACE.

$zk->define($region, {server=>$redis_server, password=>$redis_pwd})

Define a new region.

$zk->switch($region, $host)

Switch a host to region

$zk->delete($host)

Delete a host.

$zk->delete_region($region)

Delete a region.

METHODS USED BY WORKER

$zk->register(@names)

Register worker. How to write a worker, please see Vayne::Worker.

$zk->queue

Get region's queue(redis) info.

$zk->check

Worker will verify the register info periodically. Worker will go die when registered path changed. More details see Vayne::Worker.