В ходе работы было обнаружено, что для Redis нет хорошего инструмента для синхронизации данных между главными узлами, поэтому был написан такой инструмент.
Этот открытый проект предназначен для использования в окружении Nginx+Lua, где синхронизируемые команды Redis записываются в ядерный сообщающийся канал, а затем сервер синхронизации, работающий на том же компьютере, выполняет асинхронную многопоточную запись данных.
Проект состоит из двух частей:
server - сервер синхронизации, который читает команды из ядерного сообщающегося канала и синхронизирует данные на других узлах Redis
lua_ext - расширение Lua, используемое для вызова Lua-скриптов, записывающих команды Redis для синхронизации в ядерный сообщающийся канал
redis_sync_server -H /usr/local/syncserver -d
-d указывает на запуск в режиме демона
-H указывает на домашний каталог программы, заданный через CMAKE_INSTALL_PREFIX при компиляции
package.cpath = '/usr/local/lib/lua/5.1/?.so;/usr/local/openresty/lualib/?.so;;'
local syncr = require("libsyncr")
local msgid, err = syncr.sync_init()
if msgid < 0 then
ngx.log(ngx.ERR, "sync_init failed : ", err)
return
end
local ok, err = syncr.sync_command(msgid, "set bcc 8907")
if not ok then
ngx.log(ngx.ERR, "sync_command failed : ", err)
return
end
[log]
config_file=${SYNC_SERVER_HOME}/etc/log.conf
[server]
pid_file=${SYNC_SERVER_HOME}/logs/sync.pid
cwd=${SYNC_SERVER_HOME}
```[redis]
sync_nodes_list=10.255.209.66:6379
thread_num=1
timeout_secs=1
jemalloc - для замены malloc zlog - для вывода логов hiredis - клиент для доступа к Redis
Используйте cmake для компиляции.
Перейдите в каждый подкаталог, создайте каталог build, перейдите в него и выполните cmake && make && make install.
Рекомендуется изменять CMakeLists для настройки индивидуальной компиляции, также можно связаться со мной.
lua_ext по умолчанию устанавливается в /usr/local/openresty/lualib/, что можно изменить.
server по умолчанию устанавливается в /usr/local/, рекомендуется изменить через CMAKE_INSTALL_PREFIX.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )