Я переношу свое приложение с Riak 1.4 на Riak 2.
Раньше я размещал свое приложение на каждом узле кластера Riak. Он подключается только к локальному узлу Riak (в localhost:8087
), отслеживает доступность Riak и на основе этого объявляет о своей доступности. Удаленные Haproxies отслеживают несколько из этих приложений и направляют трафик конечных пользователей на любой доступный экземпляр приложения:
enduser --network -> Haproxy --network -> pool [приложение-> riak]
Мои причины для этой архитектуры были
- Минимально возможная задержка между приложением и Riak
- Zero-Conf приложения, оно всегда ожидает Riak на локальном хосте
- Хороший контроль распределения трафика в HAProxy (и только там)
- Хорошая безопасность: protobuf был открыт только для localhost
Документация по java-client. теперь предполагает, что при подключении клиентское приложение Riak должно знать обо всех узлах кластера Riak. В свете этого, приемлем ли мой подход? Или я должен вместо этого переключиться на сценарий, в котором каждый экземпляр приложения знает о каждом узле Riak и подключен к нему?