GitXplorerGitXplorer
f

mcrouter

public
3249 stars
532 forks
111 issues

Commits

List of commits on branch main.
Unverified
e7c6c79b8aa11754b9b1d69e1bb20cae70801db9

Add RouterInfo include and dependency to ClientTool

committed 3 days ago
Unverified
0b2cd13fe1eca2afa0d8ae91e9d8e8b0ef8dd9fe

Update injection service to populate usecaseId

ddisylh committed 3 days ago
Unverified
9beaf1850e3df56cf5457c80330d7a33cf6eff59

Refactor uses of setClientCertificate to setClientCertManager

committed 3 days ago
Unverified
64334f9c791eb20ab27364964106b8271ea39977

Log usecase Id in mcrouter scuba

ddisylh committed 7 days ago
Unverified
5fd3079808d5cb856a2983d8dae3d31b7eb067d4

migrate from untagged array-range dynamic ctor (assorted)

yyfeldblum committed 7 days ago
Unverified
87158a15c3698c0a769a2d2ff2fca289ed776ed9

Add ClientIdentifier in RequestCommon

committed 7 days ago

README

The README file for this repository.

Mcrouter Build Status

Support Ukraine License

Mcrouter (pronounced mc router) is a memcached protocol router for scaling memcached deployments. It's a core component of cache infrastructure at Facebook and Instagram where mcrouter handles almost 5 billion requests per second at peak.

Mcrouter is developed and maintained by Facebook.

See https://github.com/facebook/mcrouter/wiki to get started.

Quick start guide

New! Ubuntu package available

Currently, we support Ubuntu Bionic (18.04) amd64. Here is how to install it:

Add the repo key:

$ wget -O - https://facebook.github.io/mcrouter/debrepo/bionic/PUBLIC.KEY | sudo apt-key add

Add the following line to apt sources file /etc/apt/sources.list

deb https://facebook.github.io/mcrouter/debrepo/bionic bionic contrib

Update the local repo cache:

$ sudo apt-get update

Install mcrouter:

$ sudo apt-get install mcrouter

Installing From Source

See https://github.com/facebook/mcrouter/wiki/mcrouter-installation for more detailed installation instructions.

Mcrouter depends on folly, wangle, fizz, and fbthrift.

The installation is a standard autotools flow:

$ autoreconf --install
$ ./configure
$ make
$ sudo make install
$ mcrouter --help

Assuming you have a memcached instance on the local host running on port 5001, the simplest mcrouter setup is:

$ mcrouter \
    --config-str='{"pools":{"A":{"servers":["127.0.0.1:5001"]}},
                  "route":"PoolRoute|A"}' \
    -p 5000
$ echo -ne "get key\r\n" | nc 0 5000

(nc is the GNU Netcat, http://netcat.sourceforge.net/)

Features

  • Memcached ASCII protocol
  • Connection pooling
  • Multiple hashing schemes
  • Prefix routing
  • Replicated pools
  • Production traffic shadowing
  • Online reconfiguration
  • Flexible routing
  • Destination health monitoring/automatic failover
  • Cold cache warm up
  • Broadcast operations
  • Reliable delete stream
  • Multi-cluster support
  • Rich stats and debug commands
  • Quality of service
  • Large values
  • Multi-level caches
  • IPv6 support
  • SSL support

Links

Documentation: https://github.com/facebook/mcrouter/wiki Engineering discussions and support: https://www.facebook.com/groups/mcrouter

License

Copyright (c) Facebook, Inc. and its affiliates.

Licensed under the MIT license: https://github.com/facebook/mcrouter/blob/master/LICENSE