mcrouter-Cache Layer Traffic management tool based on memcached protocol (another option for memcached clusters)

Source: Internet
Author: User
Tags connection pooling memcached

Mcrouter is a memcached protocol-based router that is the core component of the Facebook cache architecture, capable of processing 5 billion requests per second at peak times. Recently, Facebook opened the Mcrouter source code and complied with the BSD protocol, hoping to help more websites use Mcrouter and expand their system size. Because any client that wants to access the Memcached service will use the standard ASCII-encoded memcached protocol, Mcrouter is like a memcached server for the client, and for the server side, Memcached is like a normal memcached client. Use the Memcached Common API as the communication method as shown in:

The main features of Mcrouter are as follows:

    • supports the standard, open-source memcached ASCII encoding protocol, which enables all clients that support the MEMCACHED protocol to support Mcrouter without any modifications.
    • enables clients to share connection pooling to reduce the number of connections.
    • provides a very efficient consistent hashing algorithm that allows you to assign hash values to multiple memcached instances. The
    • can assign clients to different memcached pools based on the key prefix. The
    • can save a copy of the same data on multiple hosts.
    • When testing a new cache device, Mcrouter is able to make all possible paths from the client to the cache device available.
    • supports flexible tracking configurations to test memcached pools of different sizes by re-hash range tracking, or to track only part of the hash range, or to dynamically modify the tracking environment at run time. The
    • supports hot-load profiles, which monitor all configuration files and, once a configuration file is detected, initiates a background thread to automatically reload, parse, and process new requests based on the new configuration.
    • supports flexible routing, where routing handles are composed of paths that are composed of modules that are common to one interface or are free to combine, and a single route handle is easier to understand, create, and test. The
    • supports heartbeat detection and automatic failover of the destination host to detect the heartbeat of each destination host. The
    • allows you to set thresholds for any requested rate in a host, pool, or cluster, and also to limit the speed of requests to slow down requests to ensure quality of service.
    • leverages the benefits of multicore systems in a single thread of the kernel, using an internal lightweight thread, or fiber, when dealing with asynchronous processing of network events. The
    • has rich stats and debug commands, and provides a safe and reliable delete operation. The
    • can manage large multi-clusters through simple configuration, and can automatically split or reorganize blocks of data based on the size of the slab
    • to back up request data to multiple memcached pools or clusters through broadcast operations.
    • supports local and remote cache of level two caches, automatically populating new caches to eliminate the performance impact of new buffers
    • is configured in JSON format to support arbitrary routing processing to accommodate various routing needs.

For more information about Mcrouter, please visit the site on GitHub, which is a common example. In addition, Mcrouter by Facebook at last year's [email protected] conference, and open source recently, is about to become Facebook in the new TODO Open Source Collaborative Alliance Open source of the first technology. According to Facebook, Mcrouter can quickly allocate call data in the cache layer of a server cluster on Facebook's data centers around the world, which is highly adaptable and can peak up to 5 billion requests per second. Last year, the technology was used to move the Instagram data to Facebook smoothly.

Mcrouter mainly uses C + + development, and uses C to develop the functional library section, using Ragel to develop the Protocol Resolution section, using Open source libraries folly and fbthrift processing asynchronous networks. Although Mcrouter is already open source, Facebook has been looking for ways to improve mcrouter performance (such as fixing bugs, adding new features, etc.), making ongoing updates and improvements, and maintaining mcrouter documentation on the GitHub wiki. A Facebook discussion group has also been set up to promote the continued and healthy development of the Mcrouter project.

Reference:

Http://www.infoq.com/cn/news/2014/09/mcrouter-memcached (the above content is transferred from this article)

Http://www.oschina.net/translate/introducing-mcrouter-a-memcached-protocol-router-for-scaling-memcached-deployments

Https://github.com/facebook/mcrouter/wiki (Official introduction)

Https://github.com/facebook/mcrouter/wiki/mcrouter-installation (Ubuntu installation Reference)

Link: https://pan.baidu.com/s/1bMhuZs Password: 8p8k (mcrouter Chinese Manual chapter II)

mcrouter-Cache Layer Traffic management tool based on memcached protocol (another option for memcached clusters) (RPM)

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.