Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 08:19
    ismaelhamed synchronize #4097
  • 02:22
    kimbyungeun opened #4098
  • Dec 15 19:47

    Aaronontheweb on dev

    TypeExtensions.TypeQualifiedNam… (compare)

  • Dec 15 19:47
    Aaronontheweb closed #4071
  • Dec 15 19:47
    Aaronontheweb closed #3767
  • Dec 15 19:47
    Aaronontheweb labeled #3767
  • Dec 15 19:47
    Aaronontheweb labeled #3767
  • Dec 15 19:47
    Aaronontheweb milestoned #3767
  • Dec 15 19:44
    Aaronontheweb labeled #4097
  • Dec 15 19:44
    Aaronontheweb milestoned #4097
  • Dec 15 13:23
    Aaronontheweb commented #4096
  • Dec 15 13:22
    Aaronontheweb commented #4093
  • Dec 15 13:16
    ismaelhamed commented #4093
  • Dec 15 13:04
    ismaelhamed edited #4097
  • Dec 15 13:04
    ismaelhamed opened #4097
  • Dec 15 12:50
    ismaelhamed commented #4096
  • Dec 15 12:48
    ismaelhamed commented #4096
  • Dec 15 12:05
    Aaronontheweb commented #4096
  • Dec 15 11:43
    ismaelhamed commented #4096
  • Dec 14 19:13
    hwanders commented #4096
Bartosz Sypytkowski
@Horusiath
I hope to introduce something on this field soon
Weston
@ronnyek
so if I were trying to build reusable... components... like resuable sources/transformers etc
I'd be implementing graphstages
and then ultimately just bundling them together with GraphDsl.Create?
eyantiful
@eyantiful
Hi everyone,
Is it mandatory in Akka.Net cluster to have a Seed Node/s?
Or is it possible to join via any node pro grammatically ("You can join to any node in the cluster. It does not have to be configured as a seed node" Akka docs)?
Nick Cuthbert
@ncthbrt
@eyantiful You need at the very minimum one seed node (though at least three is preferred). The seed node allows discovery of the other node in the cluster
A seed node can also have other roles as well however
Alex Michel
@amichel
After upgrading to 1.3.1 and switching serializer from wire to Hyperion, I get this exception at ClusterSharding.Get(system) :
Attempt by method 'Akka.Cluster.Sharding.Serialization.ClusterShardingMessageSerializer..ctor(Akka.Actor.ExtendedActorSystem)' to access method 'Akka.Serialization.SerializerIdentifierHelper.GetSerializerIdentifierFromConfig(System.Type, Akka.Actor.ExtendedActorSystem)' failed.
My config looks like:
provider = "Akka.Cluster.ClusterActorRefProvider, Akka.Cluster"
serializers {
wire = "Akka.Serialization.HyperionSerializer, Akka.Serialization.Hyperion"
}
serialization-bindings {
"System.Object" = wire
}
no special entries or custom fallbacks for sharding
eyantiful
@eyantiful
@ncthbrt , i understand, wanted to know if i can remove this dependency ( having extra process, handle first in list of seed started prior to others etc.) . as far as i understand Akka (java) docs seed is not mandatory to establish a cluster, wanted to know if the same behavior was ported as well....
Joshua Garnett
@joshgarnett
@eyantiful you always need one seed node, but the seed node can be the application itself.
        # Configure Akka.Remote module
        remote {
          dot-netty.tcp {
              port = 8091
              hostname = "127.0.0.1"
          }
          log-remote-lifecycle-events = INFO
        }

        # Configure Akka.Cluster module
        cluster {
          seed-nodes = ["akka.tcp://Cluster@127.0.0.1:8091"]
        }
That’s how my setup looks like
Just make sure the ports and actor system name matches
vicosoft4real
@vicosoft4real
I don't know what i am doing wrong. My system could not connect to seed node.
here is my configuration:
[12:16:50 INF] akka : {
loglevel : DEBUG
loggers : ["Akka.Logger.Serilog.SerilogLogger, Akka.Logger.Serilog"]
log-config-on-start : on
stdout-loglevel : DEBUG
actor : {
serializers : {
wire : "Akka.Serialization.HyperionSerializer, Akka.Serialization.Hyperi
on"
}
serialization-bindings : {
System.Object : wire
}
provider : "Akka.Cluster.ClusterActorRefProvider, Akka.Cluster"
}
remote : {
helios : {
tcp : {
transport-class : "Akka.Remote.Transport.Helios.HeliosTcpTransport, Ak
ka.Remote"
applied-adapters : []
transport-protocol : tcp
port : 0
hostname : 127.0.0.1
}
}
}
cluster : {
seed-nodes : ["akka.tcp://EduSaaSSystem@127.0.0.1:4053"]
}
Joshua Garnett
@joshgarnett
You have port specified as 0 for remoting
That should probably be 4053, to match up what is trying to be connected to by the seed node
Alex Valuyskiy
@alexvaluyskiy
@amichel It is a bug which was introduced in 1.3.0. Could you create an issue please?
vicosoft4real
@vicosoft4real
@joshgarnett Thanks. It's up now. I now have these messages : [12:40:28 INF] Node [akka.tcp://EduSaaSSystem@127.0.0.1:4053] is JOINING, roles
[]
[12:40:28 INF] Leader is moving node [akka.tcp://EduSaaSSystem@127.0.0.1:4053] t
o [Up]
But my system wasn't welcome into the cluster. i am following Simon Anderson tutorial in pluralsight.
Joshua Garnett
@joshgarnett
I’m not sure I follow the last comment, those logs make it sound like the cluster is up and running with a single node cluster
vicosoft4real
@vicosoft4real
this is lighthouse configuration: lighthouse{
actorsystem: "EduSaaSSystem" #POPULATE NAME OF YOUR ACTOR SYSTEM HERE
}
                akka {
                    actor { 
                        provider = "Akka.Cluster.ClusterActorRefProvider, Akka.Cluster"
                    }

                    remote {
                        log-remote-lifecycle-events = DEBUG
                        dot-netty.tcp {
                            transport-class = "Akka.Remote.Transport.DotNetty.TcpTransport, Akka.Remote"
                            applied-adapters = []
                            transport-protocol = tcp
                            #will be populated with a dynamic host-name at runtime if left uncommented
                            #public-hostname = "POPULATE STATIC IP HERE"
                            hostname = "0.0.0.0"
                            port = 4053
                        }
                    }            

                    loggers = ["Akka.Logger.NLog.NLogLogger,Akka.Logger.NLog"]

                    cluster {
                        #will inject this node as a self-seed node at run-time
                        seed-nodes = ["akka.tcp://EduSaaSSystem@127.0.0.1:4053"] #manually populate other seed nodes here, i.e. "akka.tcp://lighthouse@127.0.0.1:4053", "akka.tcp://lighthouse@127.0.0.1:4044"
                        roles = [lighthouse]
                    }
                }
Weston
@ronnyek
ok... more questions about streams
Weston
@ronnyek
I guess execution strategy, is the model always that you use materializer to materialize a graph, and that returns a ActorRef?
Seems like I've seen examples of runnablegraphs where I have no idea where the graph itself gets executed (they were just partial references)
the website scraper seems to materialize and store a ref to the actor on another actor, and feeds the graph input with .tell()
the twitter thingy seems to just kinda run it inline.. .no idea what the sttream from the twitter api looks like
Weston
@ronnyek
and per my question yesterday if I was looking ot build something like red node (I realize the materializer and graphdsl stuff still do things via fluent builders) would the components themselves just be graph stages where I might have a GraphStage<SourceShape<int>> for a source component
Bartosz Sypytkowski
@Horusiath
@ronnyek all execution is essentially done when a runnableGraph.Run(materializer) is called - this is the point when the graph it's actually constructed and started
also GraphStage is quite a low level API - it allow to build a custom logic using ideas of picking data from inputs and putting them in outputs
you may need it eventually, but it's not a must in most cases
Michal Dabrowski
@defrag2_twitter
Hey guys, i have some questions regarding handling and restoring of persistent actors.
Lets say i have 10k of persistent actors, P1...P1000. They are all under the supervision
of actor S. Now in other part of system, im retrieving some data from one of Px actors based on some inputs.
Is the best practice selecting them by selection or should supervisor S store somehow the map
of those child actors and reference them? Additionally when deploying new version of application and stopping all
of the P actors first, what are the best practices of bringing them back to life? All at once or
only if they are requested? If all at once i should store some data in order to recreate them. Cant find any resources on that. Thanks :)
Joshua Garnett
@joshgarnett
If you can, only load the persistent actors on demand, if only because that can put significant strain on your database loading a large number of persistent actors at once
Cluster Sharding abstracts a lot of what you are trying to do here
Michal Dabrowski
@defrag2_twitter
thanks, havent dig into cluster yet, probably will have to soon, so i'll dig
Andrew Young
@ayoung
if a node unexpectedly terminates on a cluster and another node spins up in its place on the same port, will the previous node still be considered unreachable?
i'm 85% sure that's a yes...
Joshua Garnett
@joshgarnett
I need to follow up on the akka.net impl, but each instance should have a unique id when it spins up
So even though its on the same host/port its considered a new node in the cluster
Andrew Young
@ayoung
right...
Weston
@ronnyek
@Horusiath well I want to effectively publish those components with metadata, ultimately allowing you to drag drop them and chain them together, save the layout and load later. Seems like the GraphStage lets you do exactly that... describe the shape of the component and its inputs and outputs and what to do on data in/out
Marc Piechura
@marcpiechura
@ronnyek you can do this with normal source / flows / sinks / graphs as well, they are all only blueprints until you call Run

var someChainedFlowActions = Flow.Create<Input>().Where().SelectAsync().....

At some point you can than do something like mySource.Where().Select( Input ).Via(someChainedFlowActions).RunWith(someSelectedSink, materializer)

GraphStages are useful if you want to implement something like Where, Select or custom sources/sinks for third party services, i.e. Azure, Kafka, files...
Anders Storhaug
@andersstorhaug
Anyone have success with cluster sharding on 1.3.1? Reincarnation isn't working for me, using SQLite and single seed node. Have checked configs several times, though I may try from scratch to make sure configs are correct
Aaron Stannard
@Aaronontheweb
@andersstorhaug it should all be working on 1.3.1
file an issue