2015-03-25 12 views
0

Я новичок в akka и akka remoting и akka cluster. У меня есть построение системы с последующей конфигурацииAkka Удаленные узлы контактной точки должны работать?

Application.conf

akka { 
    actor.provider = "akka.cluster.ClusterActorRefProvider" 


    extensions = ["akka.contrib.pattern.ClusterReceptionistExtension"] 

    actor.provider = "akka.cluster.ClusterActorRefProvider" 

    remote{ 
    netty.tcp{ 
     port = 0 
     hostname = "127.0.0.1" 
    } 
    } 
    cluster { 
    seed-nodes = [ 
     "akka.tcp://[email protected]:8551", 
     "akka.tcp://[email protected]:8552"] 

    auto-down-unreachable-after = 10s 
    } 

    extensions = ["akka.contrib.pattern.ClusterReceptionistExtension"] 

    persistence { 
    journal.plugin = "akka.persistence.journal.leveldb-shared" 
    journal.leveldb-shared.store { 
     # DO NOT USE 'native = off' IN PRODUCTION !!! 
     native = off 
     dir = "target/shared-journal" 
    } 
    snapshot-store.local.dir = "target/snapshots" 
    } 

} 

worker.conf

akka { 

    actor.provider = "akka.remote.RemoteActorRefProvider" 

    remote{ 
    netty.tcp{ 
     port = 0 
     hostname = "127.0.0.1" 
    } 
    } 

} 

contact-points = [ 
    "akka.tcp://[email protected]:8551", 
    "akka.tcp://[email protected]:8552"] 

доперли была Akka система должна начаться в моем местном и будет использовать семенные узлы для формирования кластер. означает ли это, что семенные узлы должны быть уже запущены. смысл в том, что процесс уже начался на этих ip: port?

Причина в том, что, если у вас нет этой прошивки, я уже запущен, я не могу получить связь и потому что она закрыта.

******* ******* UPADTE

выше вопрос был becuse использования плавающих IPs. Мои узлы работают на Openstack Vm, и у них есть статический IP-адрес. Использование статической IP-проблемы.

Другая интересная находка. Когда узлы запускаются, имя хоста в файле remote.netty.tcp должно быть машинным inet, и, по мере того как Райан упоминал, что один из семенников должен быть включен для запуска кластера, поэтому лучше использовать локальный компьютер для семенного узла. И предпочитайте использовать localhost inet IP вместо 127.0.0.1, если вы распределяете семенные узлы.

ответ

0

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

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

http://doc.akka.io/docs/akka/2.3.9/scala/cluster-usage.html

+0

так и можно видеть, я имею узлы подножка на другом сервере. Означает ли это, что одна и та же кластерная система будет работать на другом хосте, который будет служить семенем для этой системы, запущенной на моем локальном хосте? – Harshjags

+0

Спасибо, Райан. решил, что это решило. chck update, если это запрошено. – Harshjags

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

  • Нет связанных вопросов^_^