Awesome
📨 pushpull
<img align="right" height="180px" src="https://github.com/vardius/gorouter/blob/master/website/src/static/img/logo.png?raw=true" alt="logo" />pushpull - gRPC event-oriented middleware on top of worker-pool, event ingestion and delivery system.
pushpull allows you to push event to queue that later can be pulled by one of clients pulling from that queue. See also pubsub.
<details> <summary>Table of Contents</summary> <!-- toc --> <!-- tocstop --> </details>📖 ABOUT
Contributors:
Want to contribute ? Feel free to send pull requests!
Have problems, bugs, feature ideas? We are using the github issue tracker to manage them.
🚏 HOW TO USE
🐳 Docker Hub
Pull image from the command line:
$ docker pull vardius/pushpull:latest
Use as base image in DockerFile:
FROM vardius/pushpull:latest
Github Package Registry
Pull image from the command line:
$ docker pull docker.pkg.github.com/vardius/pushpull/pushpull:latest
Use as base image in DockerFile:
FROM docker.pkg.github.com/vardius/pushpull/pushpull:latest
How to use this image
Starting a pushpull instance:
docker run --name my-pushpull -e QUEUE_BUFFER_SIZE=100 -d vardius/pushpull:tag
Environment Variables
HOST
(string)
This is optional variable, sets gRPC server host value. Default 0.0.0.0
PORT
(int)
This is optional variable, sets gRPC server port value. Default 9090
QUEUE_BUFFER_SIZE
(int)
This is optional variable, sets buffered channel length per worker pool. Default 0, which evaluates to runtime.NumCPU()
.
KEEPALIVE_MIN_TIME
This is optional variable, if a client pings more than once every 5 minutes (default), terminate the connection.
ParseDuration parses a duration string. A duration string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as 300ms
, -1.5h
or 2h45m
. Valid time units are ns
, us
(or µs
), ms
, s
, m
, h
KEEPALIVE_TIME
(nanoseconds)
This is optional variable, ping the client if it is idle for 2 hours (default) to ensure the connection is still active.
ParseDuration parses a duration string. A duration string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as 300ms
, -1.5h
or 2h45m
. Valid time units are ns
, us
(or µs
), ms
, s
, m
, h
KEEPALIVE_TIMEOUT
(nanoseconds)
This is optional variable, wait 20 second (default) for the ping ack before assuming the connection is dead.
ParseDuration parses a duration string. A duration string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as 300ms
, -1.5h
or 2h45m
. Valid time units are ns
, us
(or µs
), ms
, s
, m
, h
LOG_VERBOSE_LEVEL
(int)
This is optional variable, Verbose level. -1
= Disabled, 0
= Critical, 1
= Error, 2
= Warning, 3
= Info, 4
= Debug. Default 3 (Info).
Makefile
➜ pushpull git:(master) make help
version Show version
docker-build Build given container. Example: `make docker-build`
docker-run Run container on given port. Example: `make docker-run PORT=9090`
docker-stop Stop docker container. Example: `make docker-stop`
docker-rm Stop and then remove docker container. Example: `make docker-rm`
docker-publish Docker publish. Example: `make docker-publish REGISTRY=https://your-registry.com`
docker-tag Tag current container. Example: `make docker-tag REGISTRY=https://your-registry.com`
docker-release Docker release - build, tag and push the container. Example: `make docker-release REGISTRY=https://your-registry.com`
Client
See proto package for details.
📜 License
This package is released under the MIT license. See the complete license in the package