ビルド
FROM ubuntu:23.10
RUN apt-get -y update \
&& apt-get -y install \
vim \
autotools-dev \
automake \
build-essential \
libtool \
libevent-dev \
libssl-dev \
libboost-all-dev
RUN apt-get -y install \
git \
wget \
&& wget http://memcached.org/latest \
&& tar -zxvf latest
WORKDIR /memcached-1.6.21
RUN ./configure --enable-proxy\
&& make \
&& make test \
&& make install
conf
以下のようにconfを書く。これはproxy modeで起動されたmemcachedに対してget /foo/aaaといったコマンドを発行するとbackends = {"127.0.0.1:11212", "127.0.0.1:11213"},で設定したサーバに対してproxyされていく
local s = require("simple") -- by default, sends "/foo/*" to "foo" and "/bar/*" to "bar" pool{ name = "foo", backends = {"127.0.0.1:11212", "127.0.0.1:11213"}, } pool{ name = "bar", backends = {"127.0.0.1:11214", "127.0.0.1:11215"}, }
その他
stats proxyとかで状態を見たりすることはできるがmemcachedそれぞれで監視をしておく必要がある。APIによる構成変更とうもできるようなので死活監視からの動的変更なんかもさっと実装できるようになっている模様。Luaで分離してパフォーマンスは大丈夫なのか?って思ったがWhy Luaあたりにも書いてある通り気にするレベルではないとのこと。