В El Capitan я получил ln: /usr/lib/libmysqlclient.18.dylib: Operation not permitted
В El Capitan /usr/lib/
теперь есть ограниченный флаг и не может быть записано без отключения безопасности, поэтому я просто поставлю ссылку в /usr/local/lib
вместо .
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
Сервер Rails снова работает отлично.
Идея общего пользовательского сеанса на стороне сервера и архитектура в стиле микросервисов плохо сочетаются. Причина в том, что вы, скорее всего, нарушите разделение опасений, связанных с использованием отдельных границ домена ваших служб.
Помните, что каждая служба должна обслуживать определенную проблему домена автономно, включая все необходимые данные. Так, например, если есть что-то, что нужно запомнить для подключенных пользователями устройств, вы бы сделали это в одной службе, которая отвечает за эти подключения устройств, и больше нигде. Служба будет нести ответственность за обработку этого запроса и сохранение любого статуса, который требуется устройствам. Точно так же, когда есть что вспомнить об авторизации пользователей, вы делаете это в сервисе авторизации.
А что касается вопроса об использовании Redis или нет - В архитектуре микросервисов выбор системы хранения будет зависеть от сервисного архитектора. Может быть, одна служба хранит свои данные в реляционной базе данных, может, другая использует хранилище значений ключей, а другая может использовать систему очередей событий или базу данных временных рядов.
Итак, в итоге вы должны спросить себя, для чего на самом деле используется ваша сессия, и возложить на соответствующие службы ответственность за сохранение этой информации специфичным для домена способом. (Если вы дадите более подробную информацию в своем вопросе об этом, я могу высказать вам свое мнение).