kids

Kids Is Data Stream

  • Owner: zhihu/kids
  • Platform:
  • License:: Other
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

kids

Build Status

Kids is a log aggregation system.

It aggregates messages like Scribe and its pub/sub pattern is ported from Redis.

中文文档

Features

  • Real-time subscription
  • Distributed collection
  • Message persistence
  • Multithreading
  • Redis protocol
  • No third-party dependencies

Quickstart

From Source

You need a complier with C++11 support like GCC 4.7 (or later) or Clang.

Download a source release, then:

tar xzf kids-VERSION.tar.gz
cd kids-VERSION
./configure
make
make test  # optional
make install

By default, it will be installed to /usr/local/bin/kids.
You can use the --prefix option to specify the installation location.
Run ./configure --help for more config options.

Kids comes with some sample config files in samples/, after building, simply run:

kids -c samples/dev.conf

Because kids uses redis protocol, you can use redis-cli to play with it, open another terminal:

$ redis-cli -p 3888
$ 127.0.0.1:3388> PSUBSCRIBE *

In yet another terminal:

$ redis-cli -p 3388
$ 127.0.0.1:3388> PUBLISH kids.testtopic message

redis-cli needs redis to be installed. On Mac, you can run brew install redis to install it. On Linux, run sudo apt-get install redis-tools

Run kids --help for more running options.

Using docker

Do the following:

git clone https://github.com/zhihu/kids.git
cd kids
cp samples/dev.conf debian/kids.conf
docker build -t zhihu/kids .

Now you can run it like this:

docker run -d -p 3388:3388 zhihu/kids

You can also specify the config file like this:

docker run -d -v /path/to/kids/conf:/etc/kids.conf -p 3388:3388 zhihu/kids

Configuration

See configuration.

Run in production

see production.

Developer

You will need

  • build-essential
  • libtool
  • automake
  • c++ compiler with c++ 11 support like gcc4.7+ or Clang

to build kids from source. Run the following to build kids:

./autogen.sh
./configure
make

License

Kids Uses BSD-3, see LICENSE for more details.

FAQ

Q: What is the meaning of "kids"?
A: "kids" is the recursive acronym of "Kids Is Data Stream".

Architecture

image

Main metrics

Overview
Name With Ownerzhihu/kids
Primary LanguageC++
Program languageShell (Language Count: 11)
Platform
License:Other
所有者活动
Created At2014-12-19 06:01:57
Pushed At2020-08-10 06:08:01
Last Commit At2020-08-10 14:08:00
Release Count1
Last Release Name1.0.0 (Posted on )
First Release Name1.0.0 (Posted on )
用户参与
Stargazers Count1.2k
Watchers Count150
Fork Count208
Commits Count113
Has Issues Enabled
Issues Count17
Issue Open Count3
Pull Requests Count37
Pull Requests Open Count0
Pull Requests Close Count4
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private