2013-12-19 3 views
1

Мы оцениваем Heroku и будем признательны за то, сможет ли приложение, размещенное в Heroku, открывать исходящие TCP-сокеты, к нашему старым старым серверам. Этот старый сервер имеет собственный TCP-протокол.Исходные сокеты Heroku + ip изменения

  1. Есть ли какие-либо ограничения на такие исходящие сокеты или другие предупреждения, связанные с Heroku, по их поведению. Например. в настоящее время мы полагаемся на долговременный канал связи - может ли Хероку отрезать их через некоторое время?

  2. Как уже упоминалось, мы предпочли бы, чтобы наш сокет оставался открытым некоторое время. Но правильно ли я понимаю, что Heroku мог бы произвольно переключать физическое местоположение dyno (и, следовательно, IP), что бы отключить мое соединение? Является ли такой случай, могу ли я получить «обратный вызов» от Heroku (я мог бы найти другие обходные пути, но обратный вызов сэкономил бы мне время).

Большое спасибо

ответ

2

Вы не ограничены в плане подсоединений наружу от дино Heroku, который находится на общей инстанции EC2.

Нельзя предотвращать более длительные соединения (на самом деле у вас, вероятно, будет много пустых, постоянных подключений к базам данных и другим службам). Тем не менее, динамики перезапускаются не реже одного раза в день, поэтому вы захотите снова подключиться и управлять динамиками, идущими вверх и вниз.

Dynos произвольно предоставляется для каждого развертывания вашего приложения. Вы не представляете, какие экземпляры EC2 будут работать на вашем дикторе. Таким образом, набор исходных IP-адресов является случайным и изменяется со временем. Если вы хотите аутентифицировать входящие соединения, вам нужно будет использовать другие методы (например, имя пользователя/пароль, сертификаты и т. Д.).

+0

Благодарим за этот подробный ответ. Только одно разъяснение: есть ли какой-либо обратный вызов, через который Heroku может предупредить мое приложение о том, что его динамика была перемещена? При таком обратном вызове я мог бы перезапустить пулы подключений и т. Д. По общему признанию, это «приятно иметь», а не демонстрацию. Еще раз спасибо –

+0

Для этого нет обратных вызовов. Событие, которое вам нужно использовать, - это приостановление/запуск вашего приложения. Ваше приложение будет перезагружено не реже одного раза в день. Каждый раз, когда приложение запускается, вы должны планировать, как будто он находится на новом дино. – Winfield

+0

В вашем случае нет возможности «регистрировать» динамически значимым образом - жизненный цикл слишком короткий, и вы не можете подключиться к ним со стороны. Лучше всего, чтобы каждый экземпляр вашего телефона с телефоном работал независимо от того, какие службы вы используете, и предполагайте, что срок службы dyno - это время жизни соединения. – Winfield

Смежные вопросы