by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 00:03
    Aaronontheweb commented #4434
  • May 27 23:41
    Zetanova commented #4434
  • May 27 22:57
    Zetanova commented #4434
  • May 27 22:34
    Aaronontheweb commented #4419
  • May 27 15:54
    Ralf1108 commented #4432
  • May 27 14:42
    Ralf1108 commented #4419
  • May 27 09:41
    Zetanova commented #4434
  • May 27 06:38
    dependabot-preview[bot] labeled #141
  • May 27 06:38
    dependabot-preview[bot] opened #141
  • May 27 06:38

    dependabot-preview[bot] on nuget

    Bump AkkaVersion from 1.4.6 to … (compare)

  • May 27 06:33

    dependabot-preview[bot] on nuget

    (compare)

  • May 27 06:33
    dependabot-preview[bot] closed #156
  • May 27 06:33
    dependabot-preview[bot] commented #156
  • May 27 06:33
    dependabot-preview[bot] labeled #157
  • May 27 06:33
    dependabot-preview[bot] opened #157
  • May 27 06:33

    dependabot-preview[bot] on nuget

    Bump AkkaVersion from 1.4.5 to … (compare)

  • May 27 01:23

    Aaronontheweb on dev

    added v1.4.8 placeholder for ni… (compare)

  • May 27 01:23

    Aaronontheweb on 1.4.7

    (compare)

  • May 27 01:21

    Aaronontheweb on master

    Added v1.4.7 placeholder for ni… fix: improve doc for persistenc… Bump Microsoft.Extensions.Depen… and 18 more (compare)

  • May 27 01:21
    Aaronontheweb closed #4444
Corneliu
@corneliutusnea
but there is a firewall in between them that I can't get rid of :(
Bartosz Sypytkowski
@Horusiath
@corneliutusnea cluster nodes can communicate directly with each other. Lighthouse is used only to form the cluster.
also don't use cluster client when you can just call actors or use distributed pub/sub - cluster client is basically distributed pub/sub with ability to reach the cluster from the outside
Corneliu
@corneliutusnea
@Horusiath I don't plan to use the cluster client but I don't have (atm) to make the cluster nodes talk to each other when they are deployed as Azure Web Site instances. They can happily talk to the LH which is in the same VNet but not in between them :( so I'm looking for alternatives to have the cluster still working without the nodes being able to talk to each other directly
Arjen Smits
@Danthar
@corneliutusnea Your putting yourself in a really difficult situation. The akka cluster is specifically designed and engineered to have p2p connection to each member in the cluster. All kind of things depend on that. So if you are going to deviate from that design you will run into all kinds of problems with mechanisms that detect if a node is down or unreachable.
I think, your best bet in this would be to remove your website from the cluster, and use a proxy node that is part of the cluster, that can talk to the cluster on behalf of the website.
the website could use remoting to communicate with the proxy, while the proxy uses the normal mechanisms
however your proxy would have to be specifically engineered to suit its role as a proxy for your website.
Bartosz Sypytkowski
@Horusiath
at least it's possible :P
Corneliu
@corneliutusnea
@Danthar I understand ... I just really wanted to use the power of the websites to run the cluster. If I have more nodes (e.g. cluster dedicated nodes != websites) = more resources = more $
If I move away from Web Service to Cloud Service = more management
I know ... I want to have my cake and eat it to .. two of them ... in a cluster ... for free .. :)
Arjen Smits
@Danthar
Well, building a proxy would still help you. Yes costs would be higher, but it would be linear and in a predictable way. It just slightly raises the costs if adding a new website node. But you could still run those proxies all on one VM if you want. That way the cost of adding a new website node, would go down the more website-nodes you have.
Corneliu
@corneliutusnea
yes, my plan was to write a proxy and run it on the LH .. or hope there is such a proxy already on the LH :D
Arjen Smits
@Danthar
No there is not.
The lighthouse is a baremetal actorsystem instance. The only thing it does is join a specified cluster
and run the basic cluster infrastructure that every cluster node does
So its role is to act as a seed node for bootstrapping your cluster
It does not do anything else
A proxy implementation would basically have to be the "cluster" version implementation of your website.
Where it knows how to act on messages received by your website, and knows that it, for example, needs to subscribe in some cluster-pubsub
and send any responses from that, back to the website
Thats what i meant with that your proxy would have to be specifically engineered to suit its role as a proxy for your website.
And thats why there is no generic cluster proxy thingy
Vlad Kosarev
@vladkosarev
Remoting doesn't work for azure websites right now anyway so you can't even do that
Arjen Smits
@Danthar
If remoting does not work, then clustering would not work either, since it uses the same infrastructure underneath
Vlad Kosarev
@vladkosarev
yes, clustering never worked, remoting broke in 1.1
remoting has been fixed in dev branch but hasn't been released yet
Arjen Smits
@Danthar
ah, yep
Mike Johnson
@softwaremike
Are you saying remoting doesn't work at all in 1.1 or just for azure websites? I just updated my 1.0 project to 1.1.1 a few minutes ago and we use remoting between several processes..
Bartosz Sypytkowski
@Horusiath
@softwaremike v1.1.1 works normally. @Danthar meant azure websites. Do we have ticket for that?
Arjen Smits
@Danthar
@Horusiath I am not sure. It has come up several times. But i think it was related to a bug in how we resolved hostname's at first, and later on ipv6 issues. Which afaik both have been resolved
I think this played largely during your vacation ;)
Mike Johnson
@softwaremike
@Horusiath OK thanks!
Next problem - I upgraded all my projects across the board to 1.1.1. When the actor system starts up, I now get this exception:
Logger [Akka.Event.DefaultLogger] specified in config cannot be loaded:
System.MissingMethodException: Method not found: 'System.Type Akka.Dispatch.Mailboxes.GetMailboxType(Akka.Actor.Props, Akka.Configuration.Config)'.
at Akka.Remote.RemoteActorRefProvider.ActorOf(ActorSystemImpl system, Props props, IInternalActorRef supervisor, ActorPath path, Boolean systemService, Deploy deploy, Boolean lookupDeploy, Boolean async)
at Akka.Actor.ActorCell.MakeChild(Props props, String name, Boolean async, Boolean systemService)
at Akka.Actor.ActorCell.AttachChild(Props props, Boolean isSystemService, String name)
at Akka.Actor.Internal.ActorSystemImpl.SystemActorOf(Props props, String name)
at Akka.Event.LoggingBus.AddLogger(ActorSystemImpl system, Type loggerType, LogLevel logLevel, String loggingBusName, TimeSpan timeout)
at Akka.Event.LoggingBus.StartDefaultLoggers(ActorSystemImpl system)
My HOCON config is very simple:

akka {
actor {
provider = "Akka.Remote.RemoteActorRefProvider, Akka.Remote"
}

remote {
    helios.tcp {
        port = 8092
        hostname = localhost
    }
}

}

Mike Johnson
@softwaremike
Anyone seen this exception before?
Mike Johnson
@softwaremike
Never mind, ignore that... one of my projects still had Akka.Remote 1.0.8 it its references :) oops!
riawz
@riawz

I have an actor which itself loops, like GetMsg, ProcessMsg, if GetMsg is not null, then pass to ProcessMsg, otherwise, wait for a few seconds then tell itself to GetMsg again

what's the best way to test this kind of workflow?

GetMsg and ProcessMsg are two separate actors, which ProcessMsg is created by GetMsg
Peter Hvidgaard
@hvidgaard
Anyone have experience with SimpleInjector and Akka.net together? I'm getting "Do not create actors using 'new', always create them using an ActorContext/System" when the container is verified.
I initialize like this
container.Register<QueryDataStoreActorBase, QuerySqlDataStore>();
var system = ActorSystem.Create("ActorSystem");
system.AddDependencyResolver(new SimpleInjectorDependencyResolver(container, system));
container.RegisterSingleton(system);
riawz
@riawz
is there a way to ExpectMsg<MsgType>() multiple times?
Arjen Smits
@Danthar
@hvidgaard system.AddDependencyResolver(new SimpleInjectorDependencyResolver(container, system)); is wrong
Just calling var resolver = new SimpleInjectorDependencyResolver(container, system); is enough
it registers itself with the system