Thanks for the explanation, Ray!! With regards to this pattern, what if calcserver wants to call other remote akka actors, or equivalently, if the client is also a server? Why do we need to change the hostname on all of the calc servers (application.conf remote.netty.hostname = "calcserver")? Can't we just use application.conf remote.netty.hostname = "IP1" and still redirect traffic via the load balancer? Is there some reason this wouldn't work??
Thanks in advance, Matt On Tuesday, March 29, 2016 at 12:26:18 PM UTC-4, Patrik Nordwall wrote: > > Yes, it works and is still a very relevant pattern. > /Patrik > > tis 29 mars 2016 kl. 18:15 skrev Fábio Melo <[email protected] > <javascript:>>: > >> This approach still works with currently version of akka? >> >> regards, >> Fábio >> >> >> On Thursday, August 9, 2012 at 7:01:05 AM UTC-3, rkuhn wrote: >> >>> You might want to read Derek’s new post: >>> http://letitcrash.com/post/29044669086/balancing-workload-across-nodes-with-akka-2 >>> >>> Regards, >>> >>> Roland >>> >> >>> 9 aug 2012 kl. 01:29 skrev beagledude: >>> >>> give the current 2.0.2 codebase that is void of that feature as a >>> reference would the above be a reasonable approach as outlined? >>> >>> >>> >>> On Tuesday, July 31, 2012 6:15:24 AM UTC-7, Akka Team wrote: >>>> >>>> On Tue, Jul 17, 2012 at 8:29 PM, Ray Racine <[email protected]> >>>> wrote: >>>> > Not sure if this is an abuse of the Akka Remoting system, but I'm >>>> wondering >>>> > if adding proxy support for Tell / Ask is warranted. >>>> > >>>> > The goal is support for N homogeneous, stateless, backend/server >>>> actor >>>> > systems load balanced across several nodes. >>>> > >>>> > I've been playing with the following "ugly", but works in principle >>>> approach >>>> > this morning. >>>> > >>>> > 1. Fire up two Amazon AWS server nodes. S1 -> IP1, S2 -> IP2 (IP >>>> address) >>>> > 2. On each node edit their /etc/hosts file and define the host >>>> "calcserver" >>>> > to be their respective IP. >>>> > 3. Configured for remoting, each server on startup, creates actor >>>> system >>>> > "calcsys", and then creates a round-robin routing actor "calculator" >>>> with N >>>> > calculator workers. Say on port 8080. >>>> > 4. Note their application.conf remote.netty.hostname = "calcserver". >>>> > >>>> > Now we have 2 (could be M) identical Actor System servers on >>>> different >>>> > nodes, each with N worker routee actors. Both are remotely >>>> addressable as >>>> > akka://calcsys@calcserver:8080/user/calculator. >>>> > >>>> > Of course the Calculator actors are stateless between calculation >>>> requests. >>>> > >>>> > Next place these servers behind an Amazon AWS Elastic Load Balancer, >>>> with >>>> > IP-ELB, which round-robins TCP connection requests. >>>> > >>>> > Now create some "clients" and for each client in their respective >>>> /etc/hosts >>>> > define the host "calcserver" to be the IP-ELB (the IP address of the >>>> load >>>> > balancer). Note here their application.conf remote.netty.hostname = >>>> "", >>>> > i.e. blank or explicitly their IP, so response messages are correctly >>>> routed >>>> > back to the requesting client. >>>> > >>>> > Now when a client node performs an Ask (?) to >>>> > akka://calcsys@calcserver:8080/user/calculator, the request is sent >>>> to the >>>> > load balancer, and when a new connection is needed, round-robins a >>>> > connection to one of the backend actor system servers. It doesn't >>>> matter >>>> > which one as Routing sends the Tell/Ask response back to the correct >>>> > "client" actor system. >>>> > >>>> > Very limited testing so far, but I believe this works in Akka 2.0.2. >>>> > >>>> > "Crash" a server, remove / add servers to the LB and scale up and >>>> down. The >>>> > LB auto removes "dead" servers etc. Easy peasy. >>>> > >>>> > So ... >>>> > >>>> > 1. First, does Akka has something already out-of-the-box that I >>>> missed which >>>> > offers a highly available, scalable set of stateless worker actors, >>>> load >>>> > balanced across N dynamic nodes? >>>> >>>> This will be a feature of the upcoming clustered actor refs. >>>> >>>> Cheers, >>>> √ >>>> >>>> > >>>> > 2. Assuming this is ok, admittedly ugly, but gets the job done, any >>>> > consideration for adding "native" support for this pattern into Akka. >>>> > - For "clients" say along the lines of configuration support for >>>> proxies: >>>> > >>>> > hostproxy { >>>> > calcserver:8080=w.x.y.z:p // i.e. all messages to >>>> > akka://calcsys@calcserver:8080/user/... get are really "sent" to >>>> IP-ELB >>>> > w.x.y.z and port p >>>> > } >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > -- >>>> > You received this message because you are subscribed to the Google >>>> Groups >>>> > "Akka User List" group. >>>> > To post to this group, send email to [email protected]. >>>> > To unsubscribe from this group, send email to >>>> > [email protected]. >>>> > For more options, visit this group at >>>> > http://groups.google.com/group/akka-user?hl=en. >>>> >>>> >>>> >>>> -- >>>> Akka Team >>>> Typesafe - The software stack for applications that scale >>>> Blog: letitcrash.com >>>> Twitter: @akkateam >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Akka User List" group. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msg/akka-user/-/t0FfWUZ3DucJ. >>> To post to this group, send email to [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]. >>> For more options, visit this group at >>> http://groups.google.com/group/akka-user?hl=en. >>> >>> >>> Roland Kuhn >>> Typesafe <http://typesafe.com/> – The software stack for applications >>> that scale. >>> twitter: @rolandkuhn <http://twitter.com/#!/rolandkuhn> >>> >>> -- >> >>>>>>>>>> Read the docs: http://akka.io/docs/ >> >>>>>>>>>> Check the FAQ: >> http://doc.akka.io/docs/akka/current/additional/faq.html >> >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user >> --- >> You received this message because you are subscribed to the Google Groups >> "Akka User List" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> Visit this group at https://groups.google.com/group/akka-user. >> For more options, visit https://groups.google.com/d/optout. >> > -- >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>>>>>>>> Check the FAQ: >>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user --- You received this message because you are subscribed to the Google Groups "Akka User List" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/d/optout.
