forestbus-server

module
v0.0.0-...-e848abc Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 6, 2015 License: MIT

README

Forest Bus (Version 1.1)
------------------------
Forest Bus is a message bus based on a persistent distributed commit log, very 
much inspired by Apache Kafka.  Forest Bus is written in Go with client 
libraries available for Go, Java and Python.

A distributed commit log message bus allows clients to request any message 
within a topic.  This allows clients to bootstrap over historical data, 
reprocess messages following software fixes or enhancements and catch-up 
following outages.  Forest Bus allows clients to read from any node in a 
cluster, helping to distribute the load of serving messages.

Upgrading
---------
Version 1.1 is backwards compatible with version 1.0 of both the clients and
servers.

Installation (binary distribution)
----------------------------------
The Forest Bus commands in the bin directory are standalone executables 
with no external dependencies.  As such they can be copied to anywhere 
in your path (e.g. /usr/local/bin under Linux).

The binaries included are:

forest-bus-server - The server binary for Forest Bus
forest-admin      - Configuration administration tool
forest-send       - Tool for sending messages from stdin to a Forest Bus topic
forest-get        - Tool for getting messages from Forest Bus topic to stdin
forest-test-send  - Benchmarking tool for simulating multiple clients

Installation (source distribution)
----------------------------------
Forest Bus is written in Go (http://golang.org/), so needs Go to be installed 
in order to be built from source.

The source code is distributed under src and your GOPATH should be set to the 
top of the Forest Bus directory.

The Forest Bus depenencies can then be installed (Mercurial and Git clients 
will be required):

go get github.com/owlfish/forestbus
go get github.com/ugorji/go/codec

Each binary can then be built in turn:

go install github.com/owlfish/forestbus-server/cmd/forest-admin
go install github.com/owlfish/forestbus-server/cmd/forest-bus-server
go install github.com/owlfish/forestbus-server/cmd/forest-get
go install github.com/owlfish/forestbus-server/cmd/forest-send
go install github.com/owlfish/forestbus-server/cmd/forest-test-send
  
Notes
-----
This code is made freely available under an MIT license, see LICENSE.txt 
for more details.

Documentation
-------------
Please refer to http://owlfish.com/software/ForestBus/ for documentation on 
how to use Forest Bus.

Directories

Path Synopsis
cmd
forest-admin
forest-admin is the binary command for the administration interface for Forest Bus.
forest-admin is the binary command for the administration interface for Forest Bus.
forest-bus-server
forest-bus-server is the binary command for the server component of Forest Bus.
forest-bus-server is the binary command for the server component of Forest Bus.
forest-get
forest-get is a binary command line tool for retrieving messages from a cluster.
forest-get is a binary command line tool for retrieving messages from a cluster.
forest-send
forest-send is a tool for piping messages from stdin to a Forest Bus server.
forest-send is a tool for piping messages from stdin to a Forest Bus server.
forest-test-send
forest-test-send is a binary command line tool for sending test messages to a cluster.
forest-test-send is a binary command line tool for sending test messages to a cluster.
perf-test
forest-send is a binary command line tool for sending messages to a cluster.
forest-send is a binary command line tool for sending messages to a cluster.
The commitlog package contains the raft commit log manipulation logic.
The commitlog package contains the raft commit log manipulation logic.
disklog is the package that implements the main production suitable implementation of the LogStorage interface.
disklog is the package that implements the main production suitable implementation of the LogStorage interface.
The fbhttplogger package contains a http.Handler wrapper that sends logs requests to a Forest Bus topic.
The fbhttplogger package contains a http.Handler wrapper that sends logs requests to a Forest Bus topic.
memlog is a memory based implementation of the LogStorage interface.
memlog is a memory based implementation of the LogStorage interface.
The model package provides the interface for interacting with a stream of messages internally within Forest Bus.
The model package provides the interface for interacting with a stream of messages internally within Forest Bus.
The server package contains the networking and coordination logic for the Forest Bus server implementation.
The server package contains the networking and coordination logic for the Forest Bus server implementation.
utils contains common code used through-out the Forest Bus server implementation.
utils contains common code used through-out the Forest Bus server implementation.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL