Files
kenaito-conf/kenaito-conf-perl-client

Kenaito Config Center Perl Client

Perl client SDK for the Kenaito Config Center, suitable for Perl 5.16+ projects.

Features

  • Fetch application configs from the config center
  • Periodic config sync
  • Config change callback listener
  • Local file cache (fallback when config center is unavailable)

Installation

Install from Local

cd kenaito-conf-perl-client
cpanm .

Add the lib path in your demo project:

use lib '/path/to/kenaito-conf-perl-client/lib';

Usage

use Kenaito::Conf::Config;
use Kenaito::Conf::Client;

my $cfg = Kenaito::Conf::Config->new(
    base_url      => 'http://localhost:8080',
    app_name      => 'my-app',
    env           => 'daily',
    version       => 'latest',
    token         => '',
    sync_interval => 10,
    cache_dir     => '.',
);

my $client = Kenaito::Conf::Client->new(config => $cfg);

# Listen for config changes
$client->on_change(sub {
    my ($changed) = @_;
    for my $k (keys %$changed) {
        print "config changed: $k = $changed->{$k}\n";
    }
});

# Start client (fetch configs)
$client->start();

# Get config
my $value = $client->get('database.host');
my $all   = $client->get_all();

# Manual sync
$client->sync_once();

# Stop
$client->stop();

Configuration

Parameter Description Default
base_url Config center URL http://localhost:8080
app_name Application name (Required)
env Environment dev
version Config version latest
token App token Empty
sync_interval Sync interval (seconds) 60
ignore_global Whether to ignore global configs 0
cache_dir Cache directory .

Dependencies

  • Perl 5.16+
  • HTTP::Tiny
  • JSON::PP

Demo

cd kenaito-conf-perl-client-demo
KENAITO_BASE_URL=http://localhost:8080 \
KENAITO_APP_NAME=kenaito-springboot-demo \
KENAITO_ENV=daily \
perl app.pl