Comments (3)
One other important note is that Proto.Actor do not manage it's own cluster.
We piggyback on other cluster tools, e.g. Consul.
This means that if you are already using Consul, we are not bringing in any extra level of cluster mechanics.
All Consul tooling will work to manage your cluster.
And all of the complex mechanics of clustering is handled within Consul.
The ClusterProvider interface can be used to implement the same support over other tools, e.g. Zookeeper, ETCD and others.
It should be noted that the Cluster module is the least mature of the modules right now.
from protoactor-go.
Thanks Roger,
Does the examples included in the repo have a sample of how to use the cluster?
from protoactor-go.
Hi.
Cluster support works fine using Docker, it also supports a dynamic topology where nodes come an go.
Cluster notifications are sent on the EventStream, much like Akka, there are currently 5 events you can subscribe to:
MemberJoinedEvent
Once a new node not known to the cluster, this is the event that will fire.
MemberRejoinedEvent
Similar to the above, but is fired if a node appears with a new "Generation".
This means that the node have been killed and restarted. if this happens fast enough so that other mechanics don't have the time to react. this will ensure that the cluster sees the node as a new node.
MemberLeftEvent
This fires when there is no trace of this node in the cluster provider anymore.
That is, if using Consul as a cluster provider, once this node is no longer in consul, it will raise this event.
MemberUnavailableEvent
This fires when a node is still part of the cluster, but no longer responsive.
MemberAvailableEvent
This fires when a node that was previously unresponsive becomes responsive again.
Will this work with a similar functionality as Akka cluster
No, more similar to the Microsoft Orleans model.
You can however chose to use either normal Akka like actors or Orleans style Grains, or mix the two.
What about notifications and communications between nodes ?
All nodes knows about all other nodes, and actors on different nodes can talk to eachother.
You can also use the "virtual actor" feature to have the concept of "always existing actors".
e.g. pid := cluster.Get("MyActor","User")
Will give you a handle to an actor named MyActor, of the type "User" (this is a named Props and not a Go or C# type name)
HTH
from protoactor-go.
Related Issues (20)
- ensureTopicKindRegistered is not a good idea HOT 1
- subscriber may block PubSubMemberDeliveryActor
- Remove sprintf logging HOT 1
- Batch message sent twice? HOT 2
- Logging is a breaking change HOT 1
- MemberStrategy is not work!!!
- Go coroutine thread safe HOT 2
- Is every actor message Receiver run in they own goroutine ? HOT 1
- How can a member within a cluster be restarted? HOT 2
- How can I make ‘Spawn’ return the error that occurred when 'Started' is received? HOT 4
- Data Race
- Possible memory leak HOT 5
- Error when sending large message to remote actors HOT 1
- Context propagation
- The release tag "0.4.0" does not work
- Protoactor underperforms in certain benchmarks
- protoc-gen-gograinv2 cannot recognize google.protobuf.Empty
- How to do grain reentrance HOT 2
- Improve code generation HOT 1
- Remove GrainResponse HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from protoactor-go.