Всегда ли происходят события в одном и том же процессе в азоте?

StackOverflow https://stackoverflow.com/questions/1993164

  •  22-09-2019
  •  | 
  •  

Вопрос

Я принимаю все в виду event функционировать в Азот, веб -структура Erlang, в веб -модуле, который запускается, когда вы получаете обратную силу.

Делает event Всегда запускайте один и тот же процесс для одного и того же веб -клиента (то есть окно браузера или рамки).

Я вспоминаю, по крайней мере, один случай, когда этого не произошло, но я не могу воспроизвести его.

Это было полезно?

Решение

Нет, события азота получают, какой процесс в настоящее время обрабатывает веб -запрос на азот.

Поскольку азот является очень асинхронной структурой, у вас может быть несколько процессов, обрабатывающих несколько событий для одного и того же окна браузера или асинхронно рамки. Это означает, что вы вполне могли бы иметь разные события, обрабатываемые отдельными процессами.

Другие советы

Привет, ребята, я обнаружил реестр процессов для азота под названием: nprocreg.
Когда вы проверяете папку приложений ( $ Inatrogen_install_dir/apps/nprocregre ).

В этом приложении процессы могут быть порождены на более чем одних серверах приложений азота даже на нескольких машинах. Чтобы поэкспериментировать с этим, начинайте 2 узла Erlang на двух разных хостах. Пинг их так, чтобы они были связаны. (net_adm:ping(?OTHER_NODE)) Теперь начните азот на обоих узлах Erlang. Вы можете сначала запустить азот, а затем пинговать два узла
Убедитесь, что два азотных узла используют длинные имена, т.е. [имя] @ip_address на локальной сети.

Теперь на третьей машине на вашей локальной сети создайте DNS (имен сервер). Поместите одно и то же сопоставление имени на две разные IP -адреса наших двух узлов, использующих приложения азота. Настройте два компьютера Runnind Nitrogen, чтобы убедиться, что они указывают на IP -адрес DNS для DNS Services (фактически сделайте это для всех компьютеров в вашей локальной сети).
Вы обнаружите, что когда вы запросите страницу (проживающую в корне DOC из обоих приложений азота) с нескольких компьютеров на вашей локальной сети, используя сопоставленное имя в вашем браузере, вы видите, что DNS -сервер делает какую -то балансировку нагрузки.
Теперь убедитесь, что страница, на которую вы запрашиваете, может показать вам, от какой азотной сервера она поступает на интерфейсе. Эта страница должна была сказать кнопку, которая генерирует событие, которое будет wf:flash(wf:f("Some statement on the interface",[]))
Теперь запросите эту страницу на двух разных компьютерах и примечание, откуда каждый обслуживается. Затем перейдите на один сервер азота и остановите его.
Когда вы сейчас нажимаете на кнопку в браузере, которая получила страницу азот -сервер, который мы только что положили, она все еще работает.
Вот почему Расти и друзья обнаружили, что если азотные процессы могут быть зарегистрированы в более азотных приложениях, когда они запускаются за балансировщиком нагрузки, события могут быть привлечены к любому приложению азота в кластере.
Конечно, это работает хорошо, если вы убедитесь, что два приложения на разных машинах имеют одинаковые страницы, модули и конфигурацию путей. Это связано с тем, что функция вызова событий, возможно, вызовет API Database API.
Пример балансировки нагрузки с использованием DNS -сервера можно увидеть, когда вы «выкапываете» Google из своего терминала на Linux или Solaris, как это:

dig www.google.com
Вы увидите, что на сервере имен есть одинаковое имя, отображенное на несколько IP -адресов. Это обеспечивает доступность между доменами и обеспечивает некоторую балансировку нагрузки
/joshmuza@gmail.com

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top