From a81c25835c59e832db4698044f7d299254a8c07f Mon Sep 17 00:00:00 2001 From: Ebere Abanonu Date: Tue, 22 Mar 2022 14:37:00 +0100 Subject: [PATCH 01/19] Add `Node Roles` doc --- docs/articles/clustering/node-roles.md | 24 ++++++++++++++++++++++++ docs/articles/clustering/toc.yml | 4 +++- 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 docs/articles/clustering/node-roles.md diff --git a/docs/articles/clustering/node-roles.md b/docs/articles/clustering/node-roles.md new file mode 100644 index 00000000000..fe3cde76f00 --- /dev/null +++ b/docs/articles/clustering/node-roles.md @@ -0,0 +1,24 @@ +--- +uid: node-roles +title: Node Roles +--- + +# Node Roles + +Not all nodes of a cluster need to perform the same function. For example, there might be one sub-set which runs the web front-end, one which runs the data access layer and one for the number-crunching. Choosing which actors to start on each node, for example cluster-aware routers, can take node roles into account to achieve this distribution of responsibilities. + +The node roles are defined in the configuration property named `akka.cluster.roles` and typically defined in the start script as a system property or environment variable. + +The roles are part of the membership information in `MemberEvent` that you can subscribe to. The roles of the own node are available from the `SelfMember` and that can be used for conditionally starting certain actors: + +```csharp +var selfMember = Cluster.Get(_actorSystem).SelfMember; +if (selfMember.HasRole("backend")) +{ + context.ActorOf(Backend.Prop(), "back"); +} +else if (selfMember.HasRole("front")) +{ + context.ActorOf(Frontend.Prop(), "front"); +} +``` diff --git a/docs/articles/clustering/toc.yml b/docs/articles/clustering/toc.yml index 396a85065fe..6f55d564e6b 100644 --- a/docs/articles/clustering/toc.yml +++ b/docs/articles/clustering/toc.yml @@ -21,4 +21,6 @@ - name: Distributed Data href: distributed-data.md - name: Split Brain Resolver - href: split-brain-resolver.md \ No newline at end of file + href: split-brain-resolver.md +- name: Node Roles + href: node-roles.md \ No newline at end of file From 5de627dfc20a214f0b9b81dc664f18940a64439e Mon Sep 17 00:00:00 2001 From: Ebere Abanonu Date: Tue, 22 Mar 2022 17:17:51 +0100 Subject: [PATCH 02/19] Update documentation --- docs/articles/clustering/member-roles.md | 47 ++++++++++++++++++++++++ docs/articles/clustering/node-roles.md | 24 ------------ docs/articles/clustering/toc.yml | 4 +- 3 files changed, 49 insertions(+), 26 deletions(-) create mode 100644 docs/articles/clustering/member-roles.md delete mode 100644 docs/articles/clustering/node-roles.md diff --git a/docs/articles/clustering/member-roles.md b/docs/articles/clustering/member-roles.md new file mode 100644 index 00000000000..ba6b75c7172 --- /dev/null +++ b/docs/articles/clustering/member-roles.md @@ -0,0 +1,47 @@ +--- +uid: member-roles +title: Member Roles +--- + +# Why Are Roles Important + +A cluster can have multiple Akka.NET applications in it, "roles" help to distinguish different Akka.NET applications within a cluster! + +# How Can Roles Help + +Not all Akka.NET applications in a cluster need to perform the same function. For example, there might be one sub-set which runs the web front-end, one which runs the data access layer and one for the number-crunching. +Choosing which actors to start on each node, for example cluster-aware routers, can take member roles into account to achieve this distribution of responsibilities. + +# Usage + +The member roles are defined in the configuration property named `akka.cluster.roles`: + +``` +akka { +cluster { + roles = ["backend"] + } +} +``` + +and typically defined in the start script as a system property or environment variable. + +``` +var settings = ClusterShardingSettings + .Create(_system) + .WithRole(Environment.GetEnvironmentVariable("ROLE")); +``` + +The roles are part of the membership information in `MemberEvent` that you can subscribe to. The roles of the local cluster member are available from the `SelfMember` and that can be used for conditionally starting certain actors: + +```csharp +var selfMember = Cluster.Get(_actorSystem).SelfMember; +if (selfMember.HasRole("backend")) +{ + context.ActorOf(Backend.Prop(), "back"); +} +else if (selfMember.HasRole("front")) +{ + context.ActorOf(Frontend.Prop(), "front"); +} +``` diff --git a/docs/articles/clustering/node-roles.md b/docs/articles/clustering/node-roles.md deleted file mode 100644 index fe3cde76f00..00000000000 --- a/docs/articles/clustering/node-roles.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -uid: node-roles -title: Node Roles ---- - -# Node Roles - -Not all nodes of a cluster need to perform the same function. For example, there might be one sub-set which runs the web front-end, one which runs the data access layer and one for the number-crunching. Choosing which actors to start on each node, for example cluster-aware routers, can take node roles into account to achieve this distribution of responsibilities. - -The node roles are defined in the configuration property named `akka.cluster.roles` and typically defined in the start script as a system property or environment variable. - -The roles are part of the membership information in `MemberEvent` that you can subscribe to. The roles of the own node are available from the `SelfMember` and that can be used for conditionally starting certain actors: - -```csharp -var selfMember = Cluster.Get(_actorSystem).SelfMember; -if (selfMember.HasRole("backend")) -{ - context.ActorOf(Backend.Prop(), "back"); -} -else if (selfMember.HasRole("front")) -{ - context.ActorOf(Frontend.Prop(), "front"); -} -``` diff --git a/docs/articles/clustering/toc.yml b/docs/articles/clustering/toc.yml index 6f55d564e6b..aef6e9684f6 100644 --- a/docs/articles/clustering/toc.yml +++ b/docs/articles/clustering/toc.yml @@ -22,5 +22,5 @@ href: distributed-data.md - name: Split Brain Resolver href: split-brain-resolver.md -- name: Node Roles - href: node-roles.md \ No newline at end of file +- name: Member Roles + href: member-roles.md \ No newline at end of file From 210ae39aeea36387cb63d87aa6a638cf11f0e000 Mon Sep 17 00:00:00 2001 From: Ebere Abanonu Date: Tue, 22 Mar 2022 17:36:28 +0100 Subject: [PATCH 03/19] Fixed lint errors --- docs/articles/clustering/member-roles.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/articles/clustering/member-roles.md b/docs/articles/clustering/member-roles.md index ba6b75c7172..d7398a9d335 100644 --- a/docs/articles/clustering/member-roles.md +++ b/docs/articles/clustering/member-roles.md @@ -9,14 +9,14 @@ A cluster can have multiple Akka.NET applications in it, "roles" help to disting # How Can Roles Help -Not all Akka.NET applications in a cluster need to perform the same function. For example, there might be one sub-set which runs the web front-end, one which runs the data access layer and one for the number-crunching. +Not all Akka.NET applications in a cluster need to perform the same function. For example, there might be one sub-set which runs the web front-end, one which runs the data access layer and one for the number-crunching. Choosing which actors to start on each node, for example cluster-aware routers, can take member roles into account to achieve this distribution of responsibilities. # Usage The member roles are defined in the configuration property named `akka.cluster.roles`: -``` +```hocon akka { cluster { roles = ["backend"] @@ -26,7 +26,7 @@ cluster { and typically defined in the start script as a system property or environment variable. -``` +```csharp var settings = ClusterShardingSettings .Create(_system) .WithRole(Environment.GetEnvironmentVariable("ROLE")); From 8529d777b4645d5a695a2cc5631f9aa649115b33 Mon Sep 17 00:00:00 2001 From: Ebere Abanonu Date: Tue, 22 Mar 2022 19:06:18 +0100 Subject: [PATCH 04/19] Added diagram image --- docs/articles/clustering/member-roles.md | 19 +++++-------------- docs/images/cluster-roles.jpeg | Bin 0 -> 64622 bytes 2 files changed, 5 insertions(+), 14 deletions(-) create mode 100644 docs/images/cluster-roles.jpeg diff --git a/docs/articles/clustering/member-roles.md b/docs/articles/clustering/member-roles.md index d7398a9d335..810310ac2c8 100644 --- a/docs/articles/clustering/member-roles.md +++ b/docs/articles/clustering/member-roles.md @@ -3,18 +3,17 @@ uid: member-roles title: Member Roles --- -# Why Are Roles Important +# Member Roles -A cluster can have multiple Akka.NET applications in it, "roles" help to distinguish different Akka.NET applications within a cluster! - -# How Can Roles Help +![cluster roles](/images/cluster-roles.jpeg) +A cluster can have multiple Akka.NET applications in it, "roles" help to distinguish different Akka.NET applications within a cluster! Not all Akka.NET applications in a cluster need to perform the same function. For example, there might be one sub-set which runs the web front-end, one which runs the data access layer and one for the number-crunching. Choosing which actors to start on each node, for example cluster-aware routers, can take member roles into account to achieve this distribution of responsibilities. -# Usage +## How to Use Role Information in Akka.NET -The member roles are defined in the configuration property named `akka.cluster.roles`: +The member roles are defined in the configuration property named `akka.cluster.roles` and typically defined in the start script as a system property or environment variable.: ```hocon akka { @@ -24,14 +23,6 @@ cluster { } ``` -and typically defined in the start script as a system property or environment variable. - -```csharp -var settings = ClusterShardingSettings - .Create(_system) - .WithRole(Environment.GetEnvironmentVariable("ROLE")); -``` - The roles are part of the membership information in `MemberEvent` that you can subscribe to. The roles of the local cluster member are available from the `SelfMember` and that can be used for conditionally starting certain actors: ```csharp diff --git a/docs/images/cluster-roles.jpeg b/docs/images/cluster-roles.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..e84b348ed3034436c20ca85eabfcc5bf08c77846 GIT binary patch literal 64622 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 pz{Fb=;uGDl0`yU;OH%|Zn literal 0 HcmV?d00001 From 876a5b4861e99ddcfd3d956f4625152370ba7a00 Mon Sep 17 00:00:00 2001 From: Ebere Abanonu Date: Tue, 22 Mar 2022 20:04:55 +0100 Subject: [PATCH 05/19] replaced cluster roles diagram with a simpler version --- docs/articles/clustering/member-roles.md | 2 +- docs/images/cluster-roles.jpeg | Bin 64622 -> 0 bytes docs/images/cluster-roles.png | Bin 0 -> 35092 bytes 3 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 docs/images/cluster-roles.jpeg create mode 100644 docs/images/cluster-roles.png diff --git a/docs/articles/clustering/member-roles.md b/docs/articles/clustering/member-roles.md index 810310ac2c8..ec2c89857b5 100644 --- a/docs/articles/clustering/member-roles.md +++ b/docs/articles/clustering/member-roles.md @@ -5,7 +5,7 @@ title: Member Roles # Member Roles -![cluster roles](/images/cluster-roles.jpeg) +![cluster roles](/images/cluster-roles.png) A cluster can have multiple Akka.NET applications in it, "roles" help to distinguish different Akka.NET applications within a cluster! Not all Akka.NET applications in a cluster need to perform the same function. For example, there might be one sub-set which runs the web front-end, one which runs the data access layer and one for the number-crunching. diff --git a/docs/images/cluster-roles.jpeg b/docs/images/cluster-roles.jpeg deleted file mode 100644 index e84b348ed3034436c20ca85eabfcc5bf08c77846..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64622 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 pz{Fb=;uGDl0`yU;OH%|Zn diff --git a/docs/images/cluster-roles.png b/docs/images/cluster-roles.png new file mode 100644 index 0000000000000000000000000000000000000000..c21c2fb9606eec679cc650536cfe8acefc32c607 GIT binary patch literal 35092 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 e@1N+=c_zJQe|So& Date: Wed, 23 Mar 2022 14:10:36 +0100 Subject: [PATCH 06/19] Added cluster config example for other cluster modules --- docs/articles/clustering/member-roles.md | 54 ++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/docs/articles/clustering/member-roles.md b/docs/articles/clustering/member-roles.md index ec2c89857b5..0c5eab46b21 100644 --- a/docs/articles/clustering/member-roles.md +++ b/docs/articles/clustering/member-roles.md @@ -22,6 +22,7 @@ cluster { } } ``` +### Programming Against Akka.Cluster Events The roles are part of the membership information in `MemberEvent` that you can subscribe to. The roles of the local cluster member are available from the `SelfMember` and that can be used for conditionally starting certain actors: @@ -36,3 +37,56 @@ else if (selfMember.HasRole("front")) context.ActorOf(Frontend.Prop(), "front"); } ``` + +### Akka.Cluster.Sharding + +```hocon +akka { + cluster { + roles = ["worker", "notifier", "credit", "storage"] + sharding { + role = "worker" + } + } +} +``` + +### `DistributedPubSub` + +```hocon +akka { + cluster { + roles = ["worker", "notifier", "credit", "storage"] + pub-sub { + role = "notifier" + } + } +} +``` + +### `DData` + +```hocon +akka { + cluster { + roles = ["worker", "notifier", "credit", "storage"] + distributed-data { + role = "storage" + } + } +} +``` + + +### `ClusterSingleton` + +```hocon +akka { + cluster { + roles = ["worker", "notifier", "credit", "storage"] + singleton { + role = "credit" + } + } +} +``` From a2374d4ef20f4f94ab65193bdac19f35b1977f8f Mon Sep 17 00:00:00 2001 From: Ebere Abanonu Date: Wed, 23 Mar 2022 14:26:04 +0100 Subject: [PATCH 07/19] Add more detail on what the roles do --- docs/articles/clustering/member-roles.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/docs/articles/clustering/member-roles.md b/docs/articles/clustering/member-roles.md index 0c5eab46b21..fa9fd3c71bf 100644 --- a/docs/articles/clustering/member-roles.md +++ b/docs/articles/clustering/member-roles.md @@ -40,6 +40,8 @@ else if (selfMember.HasRole("front")) ### Akka.Cluster.Sharding +Specifies that entities runs on cluster nodes with a specific role. If the role is not specified (or empty) all nodes in the cluster are used. + ```hocon akka { cluster { @@ -51,8 +53,20 @@ akka { } ``` +```csharp + var sharding = ClusterSharding.Get(system); + var shardRegion = await sharding.StartAsync( + typeName: "customer", + entityPropsFactory: e => Props.Create(() => new Customer(e)), + settings: ClusterShardingSettings.Create(system).WithRole("worker"), + messageExtractor: new MessageExtractor(10)); + +``` + ### `DistributedPubSub` +Start the mediator on members tagged with this role. All members are used if undefined or empty. + ```hocon akka { cluster { @@ -66,6 +80,8 @@ akka { ### `DData` +Replicas are running on members tagged with this role. All members are used if undefined or empty + ```hocon akka { cluster { @@ -77,9 +93,10 @@ akka { } ``` - ### `ClusterSingleton` +Singleton among the nodes tagged with specified role. If the role is not specified it's a singleton among all nodes in the cluster. + ```hocon akka { cluster { From 400bec090dc9cb0fabe067e0a74246f25874f35c Mon Sep 17 00:00:00 2001 From: Ebere Abanonu Date: Wed, 23 Mar 2022 14:33:41 +0100 Subject: [PATCH 08/19] Added more detail --- docs/articles/clustering/member-roles.md | 36 ++++++++++++++++++++---- 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/docs/articles/clustering/member-roles.md b/docs/articles/clustering/member-roles.md index fa9fd3c71bf..9dc2c589a48 100644 --- a/docs/articles/clustering/member-roles.md +++ b/docs/articles/clustering/member-roles.md @@ -11,7 +11,7 @@ A cluster can have multiple Akka.NET applications in it, "roles" help to disting Not all Akka.NET applications in a cluster need to perform the same function. For example, there might be one sub-set which runs the web front-end, one which runs the data access layer and one for the number-crunching. Choosing which actors to start on each node, for example cluster-aware routers, can take member roles into account to achieve this distribution of responsibilities. -## How to Use Role Information in Akka.NET +# How to Use Role Information in Akka.NET The member roles are defined in the configuration property named `akka.cluster.roles` and typically defined in the start script as a system property or environment variable.: @@ -22,7 +22,7 @@ cluster { } } ``` -### Programming Against Akka.Cluster Events +# Programming Against Akka.Cluster Events The roles are part of the membership information in `MemberEvent` that you can subscribe to. The roles of the local cluster member are available from the `SelfMember` and that can be used for conditionally starting certain actors: @@ -38,7 +38,7 @@ else if (selfMember.HasRole("front")) } ``` -### Akka.Cluster.Sharding +# Akka.Cluster.Sharding Specifies that entities runs on cluster nodes with a specific role. If the role is not specified (or empty) all nodes in the cluster are used. @@ -63,7 +63,7 @@ akka { ``` -### `DistributedPubSub` +# `DistributedPubSub` Start the mediator on members tagged with this role. All members are used if undefined or empty. @@ -78,7 +78,7 @@ akka { } ``` -### `DData` +# `DData` Replicas are running on members tagged with this role. All members are used if undefined or empty @@ -93,7 +93,7 @@ akka { } ``` -### `ClusterSingleton` +# `ClusterSingleton` Singleton among the nodes tagged with specified role. If the role is not specified it's a singleton among all nodes in the cluster. @@ -107,3 +107,27 @@ akka { } } ``` + +# Putting It All Together + +From the above, you can see that it is possible to have different .NET applications (or actors) in a cluster all performing different function: + +```hocon +akka { + cluster { + roles = ["worker", "notifier", "credit", "storage"] + singleton { + role = "credit" + } + distributed-data { + role = "storage" + } + pub-sub { + role = "notifier" + } + sharding { + role = "worker" + } + } + +``` \ No newline at end of file From 82a438084079349a86f16cd5e1e92bdff337faf6 Mon Sep 17 00:00:00 2001 From: Ebere Abanonu Date: Wed, 23 Mar 2022 14:58:08 +0100 Subject: [PATCH 09/19] Fix tabbing --- docs/articles/clustering/member-roles.md | 54 ++++++++++++------------ 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/docs/articles/clustering/member-roles.md b/docs/articles/clustering/member-roles.md index 9dc2c589a48..e74dcdea287 100644 --- a/docs/articles/clustering/member-roles.md +++ b/docs/articles/clustering/member-roles.md @@ -16,9 +16,9 @@ Choosing which actors to start on each node, for example cluster-aware routers, The member roles are defined in the configuration property named `akka.cluster.roles` and typically defined in the start script as a system property or environment variable.: ```hocon -akka { -cluster { - roles = ["backend"] + akka { + cluster { + roles = ["backend"] } } ``` @@ -46,9 +46,9 @@ Specifies that entities runs on cluster nodes with a specific role. If the role akka { cluster { roles = ["worker", "notifier", "credit", "storage"] - sharding { + sharding { role = "worker" - } + } } } ``` @@ -70,10 +70,10 @@ Start the mediator on members tagged with this role. All members are used if und ```hocon akka { cluster { - roles = ["worker", "notifier", "credit", "storage"] - pub-sub { - role = "notifier" - } + roles = ["worker", "notifier", "credit", "storage"] + pub-sub { + role = "notifier" + } } } ``` @@ -85,10 +85,10 @@ Replicas are running on members tagged with this role. All members are used if u ```hocon akka { cluster { - roles = ["worker", "notifier", "credit", "storage"] - distributed-data { - role = "storage" - } + roles = ["worker", "notifier", "credit", "storage"] + distributed-data { + role = "storage" + } } } ``` @@ -100,10 +100,10 @@ Singleton among the nodes tagged with specified role. If the role is not specifi ```hocon akka { cluster { - roles = ["worker", "notifier", "credit", "storage"] - singleton { - role = "credit" - } + roles = ["worker", "notifier", "credit", "storage"] + singleton { + role = "credit" + } } } ``` @@ -115,19 +115,19 @@ From the above, you can see that it is possible to have different .NET applicati ```hocon akka { cluster { - roles = ["worker", "notifier", "credit", "storage"] - singleton { - role = "credit" - } + roles = ["worker", "notifier", "credit", "storage"] + singleton { + role = "credit" + } distributed-data { - role = "storage" - } + role = "storage" + } pub-sub { - role = "notifier" - } + role = "notifier" + } sharding { - role = "worker" - } + role = "worker" + } } ``` \ No newline at end of file From 6fee097950590f133de772d449676468c4933aff Mon Sep 17 00:00:00 2001 From: Ebere Abanonu Date: Wed, 23 Mar 2022 18:01:53 +0100 Subject: [PATCH 10/19] Attempt formating fix --- docs/articles/clustering/member-roles.md | 112 +++++++++++++---------- 1 file changed, 65 insertions(+), 47 deletions(-) diff --git a/docs/articles/clustering/member-roles.md b/docs/articles/clustering/member-roles.md index e74dcdea287..465e7e4ac1c 100644 --- a/docs/articles/clustering/member-roles.md +++ b/docs/articles/clustering/member-roles.md @@ -16,9 +16,11 @@ Choosing which actors to start on each node, for example cluster-aware routers, The member roles are defined in the configuration property named `akka.cluster.roles` and typically defined in the start script as a system property or environment variable.: ```hocon - akka { - cluster { - roles = ["backend"] +akka +{ + cluster + { + roles = ["backend"] } } ``` @@ -28,13 +30,13 @@ The roles are part of the membership information in `MemberEvent` that you can s ```csharp var selfMember = Cluster.Get(_actorSystem).SelfMember; -if (selfMember.HasRole("backend")) +if (selfMember.HasRole("backend")) { - context.ActorOf(Backend.Prop(), "back"); -} -else if (selfMember.HasRole("front")) + context.ActorOf(Backend.Prop(), "back"); +} +else if (selfMember.HasRole("front")) { - context.ActorOf(Frontend.Prop(), "front"); + context.ActorOf(Frontend.Prop(), "front"); } ``` @@ -43,24 +45,26 @@ else if (selfMember.HasRole("front")) Specifies that entities runs on cluster nodes with a specific role. If the role is not specified (or empty) all nodes in the cluster are used. ```hocon -akka { - cluster { +akka +{ + cluster + { roles = ["worker", "notifier", "credit", "storage"] - sharding { - role = "worker" - } + sharding + { + role = "worker" + } } } ``` ```csharp - var sharding = ClusterSharding.Get(system); - var shardRegion = await sharding.StartAsync( - typeName: "customer", - entityPropsFactory: e => Props.Create(() => new Customer(e)), - settings: ClusterShardingSettings.Create(system).WithRole("worker"), +var sharding = ClusterSharding.Get(system); +var shardRegion = await sharding.StartAsync( + typeName: "customer", + entityPropsFactory: e => Props.Create(() => new Customer(e)), + settings: ClusterShardingSettings.Create(system).WithRole("worker"), messageExtractor: new MessageExtractor(10)); - ``` # `DistributedPubSub` @@ -68,11 +72,14 @@ akka { Start the mediator on members tagged with this role. All members are used if undefined or empty. ```hocon -akka { - cluster { - roles = ["worker", "notifier", "credit", "storage"] - pub-sub { - role = "notifier" +akka +{ + cluster + { + roles = ["worker", "notifier", "credit", "storage"] + pub-sub + { + role = "notifier" } } } @@ -83,11 +90,14 @@ akka { Replicas are running on members tagged with this role. All members are used if undefined or empty ```hocon -akka { - cluster { - roles = ["worker", "notifier", "credit", "storage"] - distributed-data { - role = "storage" +akka +{ + cluster + { + roles = ["worker", "notifier", "credit", "storage"] + distributed-data + { + role = "storage" } } } @@ -98,11 +108,14 @@ akka { Singleton among the nodes tagged with specified role. If the role is not specified it's a singleton among all nodes in the cluster. ```hocon -akka { - cluster { - roles = ["worker", "notifier", "credit", "storage"] - singleton { - role = "credit" +akka +{ + cluster + { + roles = ["worker", "notifier", "credit", "storage"] + singleton + { + role = "credit" } } } @@ -113,21 +126,26 @@ akka { From the above, you can see that it is possible to have different .NET applications (or actors) in a cluster all performing different function: ```hocon -akka { - cluster { - roles = ["worker", "notifier", "credit", "storage"] - singleton { - role = "credit" +akka +{ + cluster + { + roles = ["worker", "notifier", "credit", "storage"] + singleton + { + role = "credit" } - distributed-data { - role = "storage" + distributed-data + { + role = "storage" } - pub-sub { - role = "notifier" + pub-sub + { + role = "notifier" } - sharding { - role = "worker" + sharding + { + role = "worker" } - } - +} ``` \ No newline at end of file From dbd5dd5040f92fc31790a3451258314a6302f11c Mon Sep 17 00:00:00 2001 From: Ebere Abanonu Date: Wed, 23 Mar 2022 19:00:52 +0100 Subject: [PATCH 11/19] Moved `cluster-roles.png` to `cluster` folder under images --- docs/articles/clustering/member-roles.md | 4 ++-- docs/images/{ => cluster}/cluster-roles.png | Bin 2 files changed, 2 insertions(+), 2 deletions(-) rename docs/images/{ => cluster}/cluster-roles.png (100%) diff --git a/docs/articles/clustering/member-roles.md b/docs/articles/clustering/member-roles.md index 465e7e4ac1c..01eb8e05138 100644 --- a/docs/articles/clustering/member-roles.md +++ b/docs/articles/clustering/member-roles.md @@ -5,7 +5,7 @@ title: Member Roles # Member Roles -![cluster roles](/images/cluster-roles.png) +![cluster roles](/images/cluster/cluster-roles.png) A cluster can have multiple Akka.NET applications in it, "roles" help to distinguish different Akka.NET applications within a cluster! Not all Akka.NET applications in a cluster need to perform the same function. For example, there might be one sub-set which runs the web front-end, one which runs the data access layer and one for the number-crunching. @@ -42,7 +42,7 @@ else if (selfMember.HasRole("front")) # Akka.Cluster.Sharding -Specifies that entities runs on cluster nodes with a specific role. If the role is not specified (or empty) all nodes in the cluster are used. +Cluster Sharding uses its own Distributed Data Replicator per node. If using roles with sharding there is one Replicator per role, which enables a subset of all nodes for some entity types and another subset for other entity types. Each replicator has a name that contains the node role and therefore the role configuration must be the same on all nodes in the cluster, for example you can’t change the roles when performing a rolling update. Changing roles requires a full cluster restart. ```hocon akka diff --git a/docs/images/cluster-roles.png b/docs/images/cluster/cluster-roles.png similarity index 100% rename from docs/images/cluster-roles.png rename to docs/images/cluster/cluster-roles.png From aad9f44e66df05f089e305702b367faf8ae35fcd Mon Sep 17 00:00:00 2001 From: Ebere Abanonu Date: Wed, 23 Mar 2022 19:52:50 +0100 Subject: [PATCH 12/19] * Fix heading with H2 * Reference `member-roles.md` in `cluster-overview.md` * Moved `member-roles.md` much closer to the top --- docs/articles/clustering/cluster-overview.md | 1 + docs/articles/clustering/member-roles.md | 14 +++++++------- docs/articles/clustering/toc.yml | 6 +++--- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/docs/articles/clustering/cluster-overview.md b/docs/articles/clustering/cluster-overview.md index a022b6a1ecd..0b0216b12cb 100644 --- a/docs/articles/clustering/cluster-overview.md +++ b/docs/articles/clustering/cluster-overview.md @@ -236,6 +236,7 @@ A node might also exit the cluster gracefully, preventing it from being marked a +* [Cluster Member Roles](member-roles.md) * [How to Create Scalable Clustered Akka.NET Apps Using Akka.Cluster](https://petabridge.com/blog/intro-to-akka-cluster/) * [Video: Introduction to Akka.Cluster](https://www.youtube.com/watch?v=mUTKvGyxbOA) * [Gossip Protocol](https://en.wikipedia.org/wiki/Gossip_protocol) diff --git a/docs/articles/clustering/member-roles.md b/docs/articles/clustering/member-roles.md index 01eb8e05138..42b6638e388 100644 --- a/docs/articles/clustering/member-roles.md +++ b/docs/articles/clustering/member-roles.md @@ -11,7 +11,7 @@ A cluster can have multiple Akka.NET applications in it, "roles" help to disting Not all Akka.NET applications in a cluster need to perform the same function. For example, there might be one sub-set which runs the web front-end, one which runs the data access layer and one for the number-crunching. Choosing which actors to start on each node, for example cluster-aware routers, can take member roles into account to achieve this distribution of responsibilities. -# How to Use Role Information in Akka.NET +# How to Use Roles The member roles are defined in the configuration property named `akka.cluster.roles` and typically defined in the start script as a system property or environment variable.: @@ -24,7 +24,7 @@ akka } } ``` -# Programming Against Akka.Cluster Events +## Using Roles Within Your Cluster The roles are part of the membership information in `MemberEvent` that you can subscribe to. The roles of the local cluster member are available from the `SelfMember` and that can be used for conditionally starting certain actors: @@ -40,7 +40,7 @@ else if (selfMember.HasRole("front")) } ``` -# Akka.Cluster.Sharding +## Akka.Cluster.Sharding Cluster Sharding uses its own Distributed Data Replicator per node. If using roles with sharding there is one Replicator per role, which enables a subset of all nodes for some entity types and another subset for other entity types. Each replicator has a name that contains the node role and therefore the role configuration must be the same on all nodes in the cluster, for example you can’t change the roles when performing a rolling update. Changing roles requires a full cluster restart. @@ -67,7 +67,7 @@ var shardRegion = await sharding.StartAsync( messageExtractor: new MessageExtractor(10)); ``` -# `DistributedPubSub` +## `DistributedPubSub` Start the mediator on members tagged with this role. All members are used if undefined or empty. @@ -85,7 +85,7 @@ akka } ``` -# `DData` +## `DData` Replicas are running on members tagged with this role. All members are used if undefined or empty @@ -103,7 +103,7 @@ akka } ``` -# `ClusterSingleton` +## `ClusterSingleton` Singleton among the nodes tagged with specified role. If the role is not specified it's a singleton among all nodes in the cluster. @@ -121,7 +121,7 @@ akka } ``` -# Putting It All Together +## Putting It All Together From the above, you can see that it is possible to have different .NET applications (or actors) in a cluster all performing different function: diff --git a/docs/articles/clustering/toc.yml b/docs/articles/clustering/toc.yml index aef6e9684f6..fd54bdc1590 100644 --- a/docs/articles/clustering/toc.yml +++ b/docs/articles/clustering/toc.yml @@ -1,5 +1,7 @@ - name: Overview href: cluster-overview.md +- name: Member Roles + href: member-roles.md - name: Cluster Routing href: cluster-routing.md - name: Cluster Configuration @@ -21,6 +23,4 @@ - name: Distributed Data href: distributed-data.md - name: Split Brain Resolver - href: split-brain-resolver.md -- name: Member Roles - href: member-roles.md \ No newline at end of file + href: split-brain-resolver.md \ No newline at end of file From 854d723f970142593957bb72f4755e0fe3b8cc1e Mon Sep 17 00:00:00 2001 From: Ebere Abanonu Date: Wed, 23 Mar 2022 20:10:09 +0100 Subject: [PATCH 13/19] Fix hard tabs --- docs/articles/clustering/member-roles.md | 75 ++++++++++++------------ 1 file changed, 38 insertions(+), 37 deletions(-) diff --git a/docs/articles/clustering/member-roles.md b/docs/articles/clustering/member-roles.md index 42b6638e388..1a1a3ba9388 100644 --- a/docs/articles/clustering/member-roles.md +++ b/docs/articles/clustering/member-roles.md @@ -24,6 +24,7 @@ akka } } ``` + ## Using Roles Within Your Cluster The roles are part of the membership information in `MemberEvent` that you can subscribe to. The roles of the local cluster member are available from the `SelfMember` and that can be used for conditionally starting certain actors: @@ -32,11 +33,11 @@ The roles are part of the membership information in `MemberEvent` that you can s var selfMember = Cluster.Get(_actorSystem).SelfMember; if (selfMember.HasRole("backend")) { - context.ActorOf(Backend.Prop(), "back"); + context.ActorOf(Backend.Prop(), "back"); } else if (selfMember.HasRole("front")) { - context.ActorOf(Frontend.Prop(), "front"); + context.ActorOf(Frontend.Prop(), "front"); } ``` @@ -50,10 +51,10 @@ akka cluster { roles = ["worker", "notifier", "credit", "storage"] - sharding - { - role = "worker" - } + sharding + { + role = "worker" + } } } ``` @@ -61,9 +62,9 @@ akka ```csharp var sharding = ClusterSharding.Get(system); var shardRegion = await sharding.StartAsync( - typeName: "customer", - entityPropsFactory: e => Props.Create(() => new Customer(e)), - settings: ClusterShardingSettings.Create(system).WithRole("worker"), + typeName: "customer", + entityPropsFactory: e => Props.Create(() => new Customer(e)), + settings: ClusterShardingSettings.Create(system).WithRole("worker"), messageExtractor: new MessageExtractor(10)); ``` @@ -77,10 +78,10 @@ akka cluster { roles = ["worker", "notifier", "credit", "storage"] - pub-sub - { - role = "notifier" - } + pub-sub + { + role = "notifier" + } } } ``` @@ -95,10 +96,10 @@ akka cluster { roles = ["worker", "notifier", "credit", "storage"] - distributed-data - { - role = "storage" - } + distributed-data + { + role = "storage" + } } } ``` @@ -113,10 +114,10 @@ akka cluster { roles = ["worker", "notifier", "credit", "storage"] - singleton - { - role = "credit" - } + singleton + { + role = "credit" + } } } ``` @@ -131,21 +132,21 @@ akka cluster { roles = ["worker", "notifier", "credit", "storage"] - singleton + singleton { - role = "credit" - } - distributed-data - { - role = "storage" - } - pub-sub - { - role = "notifier" - } - sharding - { - role = "worker" - } + role = "credit" + } + distributed-data + { + role = "storage" + } + pub-sub + { + role = "notifier" + } + sharding + { + role = "worker" + } } -``` \ No newline at end of file +``` From a300b0601bcaa464853c8469180eb4e652c525c8 Mon Sep 17 00:00:00 2001 From: Ebere Abanonu Date: Thu, 24 Mar 2022 14:58:26 +0100 Subject: [PATCH 14/19] * created new image * Adde more detail --- docs/articles/clustering/member-roles.md | 94 +++++++++++++++++++++++ docs/images/cluster/cluster-roles.png | Bin 35092 -> 71057 bytes 2 files changed, 94 insertions(+) diff --git a/docs/articles/clustering/member-roles.md b/docs/articles/clustering/member-roles.md index 1a1a3ba9388..bef3ad5a434 100644 --- a/docs/articles/clustering/member-roles.md +++ b/docs/articles/clustering/member-roles.md @@ -122,6 +122,100 @@ akka } ``` +## Cluster-Aware Router + +The major benefit of Akka.Cluster is that you can scale out your actor system to more nodes as load on the system increases - in other words, during peak period, Akka.Cluster can scale out your, for instance, order processor. +You can further make the most of the scaling benefits, with Cluster-aware routers to simplify developing scalable applications. + +### Creating Cluster-Aware Router Groups + +While the standard Router Groups lets you direct messages to a selected actor paths, in Akka.Cluster, Cluster-Aware Router Groups, you can send the messages across a cluster of machines instead! + +Create Cluster-Aware Router Groups with HOCON file: + +```hocon +akka +{ + actor + { + provider = "Akka.Cluster.ClusterActorRefProvider, Akka.Cluster" + deployment + { + /workdispatcher + { + router = consistent-hashing-group # routing strategy + routees.paths = ["/user/worker"] # path of routee on each node + nr-of-instances = 3 # max number of total routees + cluster + { + enabled = on + allow-local-routees = on + } + } + } + } + cluster + { + # your cluster configuration here + } +} +``` +```csharp +var worker = system.ActorOf("worker"); +var router = system.ActorOf(Props.Empty.WithRouter(FromConfig.Instance),"workdispatcher"); +``` + +Create Cluster-Aware Router Groups with `code`: + +```csharp +var routeePaths = new List { "/user/worker" }; +var clusterRouterSettings = new ClusterRouterGroupSettings(3, routeePaths, true); +var clusterGroupProps = Props.Empty.WithRouter(new ClusterRouterGroup(new Akka.Routing.ConsistentHashingGroup("/user/worker"), clusterRouterSettings)); +``` + +### Creating Cluster-Aware Router Pool + +Cluster-Aware Router Pool, lets you create actors across a cluster of nodes. Any time a new node joins existing cluster, the router deploys actors onto the new node and makes the actors available by adding it to the list of routees. +If a node becomes unresponsive, due to network outage or it is shut down abruptly, it’s removed from the list of available routees. + +Create Cluster-Aware Router Pool with HOCON file: + +```hocon +akka +{ + actor + { + provider = "Akka.Cluster.ClusterActorRefProvider, Akka.Cluster" + deployment + { + /workdispatcher + { + router = round-robin-pool # routing strategy + max-nr-of-instances-per-node = 5 + cluster + { + enabled = on + allow-local-routees = on + } + } + } + } + cluster + { + # your cluster configuration here + } +} +``` +```csharp +var routerProps = Props.Empty.WithRouter(FromConfig.Instance); +``` +Create Cluster-Aware Router Pool with `code`: + +```csharp +var clusterPoolSettings = new ClusterRouterPoolSettings(1000, 5, true); +var clusterPoolProps = Props.Create().WithRouter(new ClusterRouterPool(new RoundRobinPool(5), clusterPoolSettings)); +``` + ## Putting It All Together From the above, you can see that it is possible to have different .NET applications (or actors) in a cluster all performing different function: diff --git a/docs/images/cluster/cluster-roles.png b/docs/images/cluster/cluster-roles.png index c21c2fb9606eec679cc650536cfe8acefc32c607..cd28114e7436470f4bcf08845219143dfc26d705 100644 GIT binary patch literal 71057 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 literal 35092 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 e@1N+=c_zJQe|So& Date: Thu, 24 Mar 2022 18:21:59 +0100 Subject: [PATCH 15/19] Updated documentation --- docs/articles/clustering/member-roles.md | 286 ++++++++++++++--------- docs/images/cluster/cluster-roles.png | Bin 71057 -> 61801 bytes 2 files changed, 176 insertions(+), 110 deletions(-) diff --git a/docs/articles/clustering/member-roles.md b/docs/articles/clustering/member-roles.md index bef3ad5a434..664a0ef79c0 100644 --- a/docs/articles/clustering/member-roles.md +++ b/docs/articles/clustering/member-roles.md @@ -7,95 +7,113 @@ title: Member Roles ![cluster roles](/images/cluster/cluster-roles.png) -A cluster can have multiple Akka.NET applications in it, "roles" help to distinguish different Akka.NET applications within a cluster! -Not all Akka.NET applications in a cluster need to perform the same function. For example, there might be one sub-set which runs the web front-end, one which runs the data access layer and one for the number-crunching. -Choosing which actors to start on each node, for example cluster-aware routers, can take member roles into account to achieve this distribution of responsibilities. +A cluster can have multiple nodes(machines/servers/vms) with different capabilities. +When you require an application to run on a node(machine/server/vm) with certain capabilities, roles helps you to distinguish the nodes so that application can be deployed on that node. +Specifying cluster role(s) is a best practice; you don't want an application that requires less computational power running and consuming resources meant for a mission-critical and resouce-intensive application. +Even if you only have a single type of node in your cluster, you should still use roles for it so you can leverage this infrastructure as your cluster expands in the future; and they add zero overhead in any conceivable way. -# How to Use Roles +# How To Configure Cluster Role -The member roles are defined in the configuration property named `akka.cluster.roles` and typically defined in the start script as a system property or environment variable.: +Below I will show you how the cluster above can be reproduced. I will create a five-nodes(ActorSystems - all having same name, though, but living on different machine/server/vm) cluster with different roles applied: +**Node1**: All of my code that receives requests from users and push same to the cluster will be deployed here! ```hocon akka { cluster { - roles = ["backend"] + roles = ["web"] } } ``` -## Using Roles Within Your Cluster +**Node2**: All of my code handling fraud detections will be deployed on this node +```hocon +akka +{ + cluster + { + roles = ["fraud"] + } +} +``` -The roles are part of the membership information in `MemberEvent` that you can subscribe to. The roles of the local cluster member are available from the `SelfMember` and that can be used for conditionally starting certain actors: +**Node3**: All me code that retrieves, stores data will be deployed on this node +```hocon +akka +{ + cluster + { + roles = ["storage"] + } +} +``` -```csharp -var selfMember = Cluster.Get(_actorSystem).SelfMember; -if (selfMember.HasRole("backend")) +**Node4**: All my code that handles customer orders will be deployed on this node +```hocon +akka { - context.ActorOf(Backend.Prop(), "back"); + cluster + { + roles = ["order"] + } } -else if (selfMember.HasRole("front")) +``` + +**Node5**: All my code that handles customer billing will be deployed on this node +```hocon +akka { - context.ActorOf(Frontend.Prop(), "front"); + cluster + { + roles = ["billing"] + } } ``` -## Akka.Cluster.Sharding +Now that we have laid the foundation for what is to follow, Akka.Cluster is made of various ready-made extensions(or modules) you can deploy. +I will show you how you can deploy them on any of the nodes. Apart from the Akka.Cluster modules, if you just want to use the Akka.Cluster core, I will show you how you can deploy your own actor to the cluster node with the required role: -Cluster Sharding uses its own Distributed Data Replicator per node. If using roles with sharding there is one Replicator per role, which enables a subset of all nodes for some entity types and another subset for other entity types. Each replicator has a name that contains the node role and therefore the role configuration must be the same on all nodes in the cluster, for example you can’t change the roles when performing a rolling update. Changing roles requires a full cluster restart. +**Cluster Sharding**: Sharding be will deployed on the nodes with the `order` role, `node4` ```hocon akka { cluster { - roles = ["worker", "notifier", "credit", "storage"] + roles = ["order"] sharding { - role = "worker" + role = "order" } } } ``` -```csharp -var sharding = ClusterSharding.Get(system); -var shardRegion = await sharding.StartAsync( - typeName: "customer", - entityPropsFactory: e => Props.Create(() => new Customer(e)), - settings: ClusterShardingSettings.Create(system).WithRole("worker"), - messageExtractor: new MessageExtractor(10)); -``` - -## `DistributedPubSub` - -Start the mediator on members tagged with this role. All members are used if undefined or empty. +**Distributed Pub-Sub**: DistributedPubSub will be deployed on the nodes with the `web` role, `node1`. ```hocon akka { cluster { - roles = ["worker", "notifier", "credit", "storage"] + roles = ["web"] pub-sub { - role = "notifier" + role = "web" } } } ``` -## `DData` - -Replicas are running on members tagged with this role. All members are used if undefined or empty +**Distributed Data**: DistributedData will be deployed on the node with the `storage` role, `node3`. ```hocon akka { cluster { - roles = ["worker", "notifier", "credit", "storage"] + roles = ["storage"] distributed-data { role = "storage" @@ -104,34 +122,43 @@ akka } ``` -## `ClusterSingleton` - -Singleton among the nodes tagged with specified role. If the role is not specified it's a singleton among all nodes in the cluster. +**Cluster Singleton**: To avoid over charging a customer more than once, my code will be deployed with `ClusterSingleton` on the node with the `billing` role, `node5` ```hocon akka { cluster { - roles = ["worker", "notifier", "credit", "storage"] + roles = ["billing"] singleton { - role = "credit" + role = "billing" } } } ``` -## Cluster-Aware Router +I have one more node, `node2`, with nothing running in it. I will deploy my custom fraud detection code there, and the way to do that is: -The major benefit of Akka.Cluster is that you can scale out your actor system to more nodes as load on the system increases - in other words, during peak period, Akka.Cluster can scale out your, for instance, order processor. -You can further make the most of the scaling benefits, with Cluster-aware routers to simplify developing scalable applications. +```csharp +var selfMember = Cluster.Get(_actorSystem).SelfMember; +if (selfMember.HasRole("fraud")) +{ + context.ActorOf(Billing.Prop(), "bill-gate"); +} +else +{ + //sleep, probably! +} +``` -### Creating Cluster-Aware Router Groups +Using the Cluster `SelfMember`, I am checking if the current node has the `billing` role and if yes, create the `Billing` actor. -While the standard Router Groups lets you direct messages to a selected actor paths, in Akka.Cluster, Cluster-Aware Router Groups, you can send the messages across a cluster of machines instead! +## Cluster-Aware Router -Create Cluster-Aware Router Groups with HOCON file: +Cluster-Aware routers automate how actors are deployed on the cluster and also how messages are routed based on the role specified! Routers in Akka.NET can be either grouped or pooled and you can read up on them [Routers](https://getakka.net/articles/actors/routers.html) + +**Router Group**: I will create Cluster-Aware Router Group for all my applications above! ```hocon akka @@ -141,44 +168,80 @@ akka provider = "Akka.Cluster.ClusterActorRefProvider, Akka.Cluster" deployment { - /workdispatcher + /webdispatcher + { + router = consistent-hashing-group # routing strategy + routees.paths = ["/user/web"] # path of routee on each node + nr-of-instances = 3 # max number of total routees + cluster + { + enabled = on + use-role = "web" + } + } + /frauddispatcher + { + router = consistent-hashing-group # routing strategy + routees.paths = ["/user/fraud"] # path of routee on each node + nr-of-instances = 3 # max number of total routees + cluster + { + enabled = on + use-role = "fraud" + } + } + /billingdispatcher + { + router = consistent-hashing-group # routing strategy + routees.paths = ["/user/billing"] # path of routee on each node + nr-of-instances = 3 # max number of total routees + cluster + { + enabled = on + use-role = "billing" + } + } + /orderdispatcher + { + router = consistent-hashing-group # routing strategy + routees.paths = ["/user/order"] # path of routee on each node + nr-of-instances = 3 # max number of total routees + cluster + { + enabled = on + use-role = "order" + } + } + /storagedispatcher { router = consistent-hashing-group # routing strategy - routees.paths = ["/user/worker"] # path of routee on each node + routees.paths = ["/user/storage"] # path of routee on each node nr-of-instances = 3 # max number of total routees cluster { enabled = on - allow-local-routees = on + use-role = "storage" } } } } - cluster - { - # your cluster configuration here - } } ``` ```csharp -var worker = system.ActorOf("worker"); -var router = system.ActorOf(Props.Empty.WithRouter(FromConfig.Instance),"workdispatcher"); -``` - -Create Cluster-Aware Router Groups with `code`: - -```csharp -var routeePaths = new List { "/user/worker" }; -var clusterRouterSettings = new ClusterRouterGroupSettings(3, routeePaths, true); -var clusterGroupProps = Props.Empty.WithRouter(new ClusterRouterGroup(new Akka.Routing.ConsistentHashingGroup("/user/worker"), clusterRouterSettings)); +var web = system.ActorOf("web"); +var fraud = system.ActorOf("fraud"); +var order = system.ActorOf("order"); +var billing = system.ActorOf("billing"); +var storage = system.ActorOf("storage"); + +var webRouter = system.ActorOf(Props.Empty.WithRouter(FromConfig.Instance),"webdispatcher"); +var fraudRouter = system.ActorOf(Props.Empty.WithRouter(FromConfig.Instance),"frauddispatcher"); +var orderRouter = system.ActorOf(Props.Empty.WithRouter(FromConfig.Instance),"orderdispatcher"); +var billingRouter = system.ActorOf(Props.Empty.WithRouter(FromConfig.Instance),"billingispatcher"); +var storageRouter = system.ActorOf(Props.Empty.WithRouter(FromConfig.Instance),"storagedispatcher"); ``` -### Creating Cluster-Aware Router Pool - -Cluster-Aware Router Pool, lets you create actors across a cluster of nodes. Any time a new node joins existing cluster, the router deploys actors onto the new node and makes the actors available by adding it to the list of routees. -If a node becomes unresponsive, due to network outage or it is shut down abruptly, it’s removed from the list of available routees. - -Create Cluster-Aware Router Pool with HOCON file: +**Router Pool**: I will create Cluster-Aware Router Pool for all my applications above! ```hocon akka @@ -188,59 +251,62 @@ akka provider = "Akka.Cluster.ClusterActorRefProvider, Akka.Cluster" deployment { - /workdispatcher + /webdispatcher + { + router = round-robin-pool # routing strategy + max-nr-of-instances-per-node = 5 + cluster + { + enabled = on + use-role = "web" + } + } + /frauddispatcher + { + router = round-robin-pool # routing strategy + max-nr-of-instances-per-node = 5 + cluster + { + enabled = on + use-role = "fraud" + } + } + /billingdispatcher { router = round-robin-pool # routing strategy max-nr-of-instances-per-node = 5 cluster { enabled = on - allow-local-routees = on + use-role = "billing" + } + } + /orderdispatcher + { + router = round-robin-pool # routing strategy + max-nr-of-instances-per-node = 5 + cluster + { + enabled = on + use-role = "order" + } + } + /storagedispatcher + { + router = round-robin-pool # routing strategy + max-nr-of-instances-per-node = 5 + cluster + { + enabled = on + use-role = "storage" } } } } - cluster - { - # your cluster configuration here - } } ``` -```csharp -var routerProps = Props.Empty.WithRouter(FromConfig.Instance); -``` -Create Cluster-Aware Router Pool with `code`: ```csharp -var clusterPoolSettings = new ClusterRouterPoolSettings(1000, 5, true); -var clusterPoolProps = Props.Create().WithRouter(new ClusterRouterPool(new RoundRobinPool(5), clusterPoolSettings)); +var routerProps = Props.Empty.WithRouter(FromConfig.Instance); ``` -## Putting It All Together - -From the above, you can see that it is possible to have different .NET applications (or actors) in a cluster all performing different function: - -```hocon -akka -{ - cluster - { - roles = ["worker", "notifier", "credit", "storage"] - singleton - { - role = "credit" - } - distributed-data - { - role = "storage" - } - pub-sub - { - role = "notifier" - } - sharding - { - role = "worker" - } -} -``` diff --git a/docs/images/cluster/cluster-roles.png b/docs/images/cluster/cluster-roles.png index cd28114e7436470f4bcf08845219143dfc26d705..f448416b0fc4e2e57b0d6402eea3f6e9a2483d68 100644 GIT binary patch literal 61801 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 From fca18c50da511b69b793ce220c012d68fb7d9121 Mon Sep 17 00:00:00 2001 From: Ebere Abanonu Date: Thu, 24 Mar 2022 18:41:33 +0100 Subject: [PATCH 16/19] Fix linting issues --- docs/articles/clustering/member-roles.md | 48 +++++++++++++----------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/docs/articles/clustering/member-roles.md b/docs/articles/clustering/member-roles.md index 664a0ef79c0..5d5dcceb7f4 100644 --- a/docs/articles/clustering/member-roles.md +++ b/docs/articles/clustering/member-roles.md @@ -9,7 +9,7 @@ title: Member Roles A cluster can have multiple nodes(machines/servers/vms) with different capabilities. When you require an application to run on a node(machine/server/vm) with certain capabilities, roles helps you to distinguish the nodes so that application can be deployed on that node. -Specifying cluster role(s) is a best practice; you don't want an application that requires less computational power running and consuming resources meant for a mission-critical and resouce-intensive application. +Specifying cluster role(s) is a best practice; you don't want an application that requires less computational power running and consuming resources meant for a mission-critical and resource-intensive application. Even if you only have a single type of node in your cluster, you should still use roles for it so you can leverage this infrastructure as your cluster expands in the future; and they add zero overhead in any conceivable way. # How To Configure Cluster Role @@ -17,6 +17,7 @@ Even if you only have a single type of node in your cluster, you should still us Below I will show you how the cluster above can be reproduced. I will create a five-nodes(ActorSystems - all having same name, though, but living on different machine/server/vm) cluster with different roles applied: **Node1**: All of my code that receives requests from users and push same to the cluster will be deployed here! + ```hocon akka { @@ -39,6 +40,7 @@ akka ``` **Node3**: All me code that retrieves, stores data will be deployed on this node + ```hocon akka { @@ -50,6 +52,7 @@ akka ``` **Node4**: All my code that handles customer orders will be deployed on this node + ```hocon akka { @@ -61,6 +64,7 @@ akka ``` **Node5**: All my code that handles customer billing will be deployed on this node + ```hocon akka { @@ -138,7 +142,7 @@ akka } ``` -I have one more node, `node2`, with nothing running in it. I will deploy my custom fraud detection code there, and the way to do that is: +I have one more node, `node2`, with nothing running in it. I will deploy my custom fraud detection code there, and the way to do that is: ```csharp var selfMember = Cluster.Get(_actorSystem).SelfMember; @@ -157,7 +161,7 @@ Using the Cluster `SelfMember`, I am checking if the current node has the `billi ## Cluster-Aware Router Cluster-Aware routers automate how actors are deployed on the cluster and also how messages are routed based on the role specified! Routers in Akka.NET can be either grouped or pooled and you can read up on them [Routers](https://getakka.net/articles/actors/routers.html) - + **Router Group**: I will create Cluster-Aware Router Group for all my applications above! ```hocon @@ -176,10 +180,10 @@ akka cluster { enabled = on - use-role = "web" + use-role = "web" } } - /frauddispatcher + /frauddispatcher { router = consistent-hashing-group # routing strategy routees.paths = ["/user/fraud"] # path of routee on each node @@ -187,10 +191,10 @@ akka cluster { enabled = on - use-role = "fraud" + use-role = "fraud" } } - /billingdispatcher + /billingdispatcher { router = consistent-hashing-group # routing strategy routees.paths = ["/user/billing"] # path of routee on each node @@ -198,10 +202,10 @@ akka cluster { enabled = on - use-role = "billing" + use-role = "billing" } } - /orderdispatcher + /orderdispatcher { router = consistent-hashing-group # routing strategy routees.paths = ["/user/order"] # path of routee on each node @@ -209,10 +213,10 @@ akka cluster { enabled = on - use-role = "order" + use-role = "order" } } - /storagedispatcher + /storagedispatcher { router = consistent-hashing-group # routing strategy routees.paths = ["/user/storage"] # path of routee on each node @@ -220,13 +224,14 @@ akka cluster { enabled = on - use-role = "storage" + use-role = "storage" } } } } } ``` + ```csharp var web = system.ActorOf("web"); var fraud = system.ActorOf("fraud"); @@ -258,47 +263,47 @@ akka cluster { enabled = on - use-role = "web" + use-role = "web" } } - /frauddispatcher + /frauddispatcher { router = round-robin-pool # routing strategy max-nr-of-instances-per-node = 5 cluster { enabled = on - use-role = "fraud" + use-role = "fraud" } } - /billingdispatcher + /billingdispatcher { router = round-robin-pool # routing strategy max-nr-of-instances-per-node = 5 cluster { enabled = on - use-role = "billing" + use-role = "billing" } } - /orderdispatcher + /orderdispatcher { router = round-robin-pool # routing strategy max-nr-of-instances-per-node = 5 cluster { enabled = on - use-role = "order" + use-role = "order" } } - /storagedispatcher + /storagedispatcher { router = round-robin-pool # routing strategy max-nr-of-instances-per-node = 5 cluster { enabled = on - use-role = "storage" + use-role = "storage" } } } @@ -309,4 +314,3 @@ akka ```csharp var routerProps = Props.Empty.WithRouter(FromConfig.Instance); ``` - From d16ea43916773c1595e2932f9d02b781bd814ad4 Mon Sep 17 00:00:00 2001 From: Ebere Abanonu Date: Thu, 24 Mar 2022 18:45:23 +0100 Subject: [PATCH 17/19] Fix linting issue --- docs/articles/clustering/member-roles.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/articles/clustering/member-roles.md b/docs/articles/clustering/member-roles.md index 5d5dcceb7f4..51fdf3287a6 100644 --- a/docs/articles/clustering/member-roles.md +++ b/docs/articles/clustering/member-roles.md @@ -29,6 +29,7 @@ akka ``` **Node2**: All of my code handling fraud detections will be deployed on this node + ```hocon akka { From c8ab36351920d1f937715c9be4584b21889c27b8 Mon Sep 17 00:00:00 2001 From: Aaron Stannard Date: Thu, 24 Mar 2022 13:16:41 -0500 Subject: [PATCH 18/19] Update cluster-overview.md --- docs/articles/clustering/cluster-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/articles/clustering/cluster-overview.md b/docs/articles/clustering/cluster-overview.md index 0b0216b12cb..d2c40929a9c 100644 --- a/docs/articles/clustering/cluster-overview.md +++ b/docs/articles/clustering/cluster-overview.md @@ -236,7 +236,7 @@ A node might also exit the cluster gracefully, preventing it from being marked a -* [Cluster Member Roles](member-roles.md) +* [Cluster Member Roles](xref:member-roles) * [How to Create Scalable Clustered Akka.NET Apps Using Akka.Cluster](https://petabridge.com/blog/intro-to-akka-cluster/) * [Video: Introduction to Akka.Cluster](https://www.youtube.com/watch?v=mUTKvGyxbOA) * [Gossip Protocol](https://en.wikipedia.org/wiki/Gossip_protocol) From 43d8791672e860b2b1716323333e1689b589218a Mon Sep 17 00:00:00 2001 From: Aaron Stannard Date: Thu, 24 Mar 2022 13:16:51 -0500 Subject: [PATCH 19/19] Update member-roles.md --- docs/articles/clustering/member-roles.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/articles/clustering/member-roles.md b/docs/articles/clustering/member-roles.md index 51fdf3287a6..80bf89785ec 100644 --- a/docs/articles/clustering/member-roles.md +++ b/docs/articles/clustering/member-roles.md @@ -12,7 +12,7 @@ When you require an application to run on a node(machine/server/vm) with certain Specifying cluster role(s) is a best practice; you don't want an application that requires less computational power running and consuming resources meant for a mission-critical and resource-intensive application. Even if you only have a single type of node in your cluster, you should still use roles for it so you can leverage this infrastructure as your cluster expands in the future; and they add zero overhead in any conceivable way. -# How To Configure Cluster Role +# How To Configure Cluster Roles Below I will show you how the cluster above can be reproduced. I will create a five-nodes(ActorSystems - all having same name, though, but living on different machine/server/vm) cluster with different roles applied: