Skip to content

vanyarock01/sharded-queue-performance

Repository files navigation

sharded-queue-performance

Нагрузочное тестирование шардированной очереди на базе Tarantool + Cartridge с использованием Pandora + Yandex.Tank

Инструменты

Понадобятся:

Собираем пушку

  1. Если go есть в системе:
    go get github.com/tarantool/go-tarantool \
           github.com/spf13/afero            \
           github.com/yandex/pandora
    
    GOOS=linux GOARCH=amd64 go build tnt_queue_gun.go
  2. Если go нет в системе, но есть докер:
    ./build.sh

Собираем приложение

$ cd queue-app
$ cartridge build

Запускаем приложения и настраиваем кластер

Для запуска инстансов кластера:

$ cartridge start -d

Конфигурацию кластера выполним скриптом bootstrap.lua:

$ tarantool bootstrap.lua

В случае успеха, по адресу localhost:8081 в браузере будет видная следующая конфигурация кластера:

Создаем очереди для тестирования

В терминах sharded-queue экземпляр очереди - труба (tube). Создать ее можно, как через бинарное апи, так и через конфигурацию кластера. Воспользуемся вторым методом.

Перейдем во вкладку code в левом меню веб морды. В редакторе кода создадим файл tubes.yml в который поместим конфигурацию интересующей нас очереди:

test-tube:
    temporary: false
    driver: sharded_queue.drivers.fifo

Остается нажать кнопку Apply и дождаться сообщения об успешном выполнении операции.

Запускаем нагрузочные тесты

$ cd ..

$ docker run -v $(pwd):/var/loadtest      \
           -v $SSH_AUTH_SOCK:/ssh-agent \
           -e SSH_AUTH_SOCK=/ssh-agent  \
           --net host                   \
           -it direvius/yandex-tank

NOTE Для docker for mac может понадобиться заменить localhost на алиас host.docker.internal в файле tnt_queue_load.yaml.

Более детальную информацию про установку и настройку Yandex.Tank можно найти в документации.

About

Performance test tarantool sharded-queue app with Pandora and Yandex.Tank

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published