KV-прокси: фреймворк для работы с базами данных типа KV
Это прокси-фреймворк для баз данных типа ключ-значение (KV). Он позволяет расширять поддержку протоколов через написание расширений в виде динамических библиотек (SO). По умолчанию уже поддерживается двоичный и текстовый протоколы memcached.
Особенности:
По умолчанию поддерживает двоичный и текстовый протоколы Memcached.
Документация:
Установка: Рекомендуется использовать версии autoconf > 2.62 и automake > 1.13.
$ wget --no-check-certificate https://github.com/exinnet/kvproxy/archive/master.zip
$ unzip master
$ cd kvproxy-master
$ make
$ #optional, install kvproxy in /usr/local/kvproxy
$ sudo make install
Запуск и остановка:
# Запуск
$ ./sbin/kvproxy start
# Остановка
$ ./sbin/kvproxy stop
# Перезапуск
$ ./sbin/kvproxy restart
Проверка состояния выполнения: Можно подключиться к порту прослушивания kvproxy через telnet и использовать команду status для проверки состояния выполнения kvproxy.
$telnet 127.0.0.1 55669
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
status
Number of processed requests [0]
Number of requests failed [0]
- 127.0.0.1:11211 [0]
Number of continuous requests failed [0]
- 127.0.0.1:11211 [0]
All of offline hosts [0]
Number of client connection [1]
Number of backend connection [0]
Read timeout of backend connection [100ms]
Size of async queue [0]
Производительность:
Конфигурация: Конфигурационные файлы KV-прокси используют формат INI. По умолчанию они находятся в каталоге etc в установочном каталоге. Имя файла — kvproxy.ini.
[kvproxy]
; Порт прослушивания
port=55669
; Количество запущенных потоков. На платформе Linux, если cpu_affinity установлено в on, количество потоков автоматически равно количеству ядер процессора.
thread_count=2
; Включить сродство к процессору
cpu_affinity=on
; Максимальное количество ожидающих обработки соединений
backlog=10000
; Время ожидания для чтения данных от сервера, в миллисекундах
recv_timeout=100
; Путь к файлу журнала, по умолчанию ./log/kvproxy.log в установочном каталоге
;log_path=/tmp/kvproxy.log
; Уровень журнала. Варианты: fatal error warn info debug.
; fatal — критическая ошибка. Приводит к завершению процесса kvproxy.
; error — ошибка запроса. Запрос завершается неудачно.
; warn — предупреждение о запросе. Запрос может быть успешным, несмотря на возникновение исключения.
; info — избыточный режим. Печатает избыточную информацию о выполнении запроса.
; debug — режим отладки. Печатает отладочную информацию о процессе запроса.
log_level=warn
; Путь установки расширений. По умолчанию ./ext в установочном каталоге
;ext_path=../ext
; Максимальный размер данных, полученных или отправленных в одном запросе. В мегабайтах (М). Если данные превышают указанный размер, запрос завершается неудачно.
max_packet=1
; После превышения указанного порога количества отказов автоматически исключить проблемный сервер.
failover_threshold = 2
; Частота проверки наличия серверов с количеством отказов, превышающим указанный порог. В секундах.
failover_interval = 2
; Размер очереди асинхронной синхронизации. Зависит от ситуации, не рекомендуется устанавливать слишком большое значение.
async_size = 50000
;;;;;;;;;;;;;;;
; Расширения ;
;;;;;;;;;;;;;;;
; Имя расширения
[memcached]
; Файл расширения.
extension=memcached.so
; Установить группу серверов по умолчанию.
hosts=master
; Установить резервную группу серверов. Все операции записи будут синхронно скопированы в эту группу. Если не установлено, данные не будут синхронизированы или асинхронно скопированы.
;hosts_backup=read
; Установить группу читаемых серверов. Все данные считываются из этой группы. Используется для реализации разделения чтения и записи.
hosts_read=master
; Префикс синхронизации данных. По умолчанию используется асинхронная репликация. Если вы хотите использовать синхронную репликацию, можно установить префикс ключа на указанную строку.
sync_str = "+"
; Используемый протокол: binary — двоичный протокол, text — текстовый протокол
proto = binary
;;;;;;;;;;;;;;;;
; Группы серверов ;
;;;;;;;;;;;;;;;;
; Группа серверов
[master]
; IP : порт = «в группе серверов идентификатор: вес»
; Идентификатор каждого сервера в одной группе не может повторяться
127.0.0.1:11211="1:50"
[read]
127.0.0.1:11212="1:50"
Обратная связь по вопросам: Если вы обнаружили ошибку или у вас есть другие вопросы, вы можете оставить отзыв на следующем веб-сайте. http://git.oschina.net/exinnet/kvproxy/issues
Контакты автора:
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )