Докав нету по движку
https://github.com/vk-com/kphp-kdb/tree/master/rpc...
Создаём бинлог:
/usr/local/src/kphp-kdb/scripts/create_binlog.sh 0xf9a90101 1 0 > /var/lib/engine/rpc.bin
Права:
chown -R kitten:kitten /var/lib/engine/
Конфиг для rpc-proxy:
1. файл engine.rpc.conf:
execute rpc-proxy
arg1 /etc/engine/clusterrpc.conf
-p 11259
-a rpc
-y 300
-vvv
2. конфиг кластера:
файл /etc/engine/clusterrpc.conf
cluster_text {
proto tcp;
server 127.0.0.1:11200;
schema text;
min_connections 1;
max_connections 1000;
timeout 1000;
#step 0;
new_id 1;
extension firstint;
#extension clear_flags;
#extension skip_response_inderect;
#extension points;
#extension secure_send;
#extension secure_receive;
#extension double_send;
#extension double_receive;
#extension secondint;
#extension_params ;
#mode firstint;
}
cluster_lists {
id 123;
proto tcp;
server 127.0.0.1:11201;
# !2@127.0.0.1:11202
schema lists;
min_connections 1;
max_connections 1000;
timeout 1000;
new_id 11;
extension firstint;
}
Запускаем rpc-engine - он запускается, начинает пинговать сервера кластера, отвечает на свои запросы (из combined.tl) на порт 11259 такого содержания:
$rpcMsg[]=array('rpcProxy.getClusters');
$rpcMsg[]=array('rpcProxy.getClusterSize',0);
$rpcMsg[]=array('rpcProxy.getClusterServers',0);
$rpcMsg[]=array('rpcProxy.getClusterServers',123);
НО, если отправить на порт 11259 запрос к text-engine вида:
$rpcMsg[]=array('text.sendMessage', $uid,
(1 « 4) + (1 « 5) + (1 « 7) ,# text, flags, peer_id
array(
'text' => 'сообщение привет ололо ',
'flags' => $flags,
'peer_id' => $peer_id
)
)
то запрос НЕ форвардится куда нужно, а ответ такой:
Array
(
[0] => Array
(
[__error] => Can not find working connection to target
[__error_code] => -3002
)
)
В логах на этот запрос вот такая строчка есть: Forward methods failed.
Доков на rpc-proxy нет, конфиг делали исследуя исходники, скорее всего упустили какие-то параметры, поэтому движок не понимает куда пересылать запросы.