云主机 怎么做网站,学校网站建设汇报ppt模板,深圳seo优化推广业务员,网站开发后台的问题介绍Orleans.MultiClient 是一个 Orleans 复合客户端#xff0c;只需要简单配置就可以简单高效连接和请求 Orleans 服务。Orleans.MultiClient 可以轻松连接多个不同服务的 Orleans 服务,在请求 Orleans 时会根据请求的接口自动寻找 Orleans 客户端#xff0c;使用者无需关心… 介绍Orleans.MultiClient 是一个 Orleans 复合客户端只需要简单配置就可以简单高效连接和请求 Orleans 服务。Orleans.MultiClient 可以轻松连接多个不同服务的 Orleans 服务,在请求 Orleans 时会根据请求的接口自动寻找 Orleans 客户端使用者无需关心底层的实现。Orleans.MultiClient 的开源地址和 Demo 可以在 GitHub 源代码下载查看。https://github.com/AClumsy/Orleans.MultiClient/使用从 NuGet 下载 Orleans.MultiClient 包。dotnet add package Orleans.MultiClient简单例子如果有一个服务需要同时调用 A 和 B 两个 Orleans 服务看一看 Orleans.MultiClient 是怎么更简单的调用 Orleans 服务的。第一步先引用 Orleans.MultiClient 包和 A、B 的接口分别为 IHelloA、 IHelloB第二步需要把 Orleans.MultiClient 注入到 DI 容器 中并且配置添加两个 Orleans Client。提示Orleans.MultiClient 暂时只支持 .NET Core 平台上面使用。services.AddOrleansMultiClient(build { build.AddClient(opt { opt.ServiceId A; opt.ClusterId AApp; opt.SetServiceAssembly(typeof(IHelloA).Assembly); opt.Configure (b { b.UseLocalhostClustering(); }); }); build.AddClient(opt { opt.ServiceId B; opt.ClusterId BApp; opt.SetServiceAssembly(typeof(IHelloB).Assembly); opt.Configure (b { b.UseLocalhostClustering(gatewayPort: 30001); }); });});第二步开始调用对应的 Orleans 服务。IOrleansClient 是 Orleans.MultiClient 的复合客户端通过 IOrleansClient 调用 Orleans 服务。var serviceA _serviceProvider.GetRequiredServiceIOrleansClient().GetGrainIHelloA(1);var resultA serviceA.SayHello(Hello World Success GrainA).GetAwaiter().GetResult();var serviceB _serviceProvider.GetRequiredServiceIOrleansClient().GetGrainIHelloB(1);var resultB serviceB.SayHello(Hello World Success GrainB).GetAwaiter().GetResult();简单吧只要配置好客户端之后在使用的过程中无需管怎么连接 Orleans 只要通过依赖注入得到 IOrleansClient 就可以轻松的请求 Orleans 服务。配置注入到 DI 容器AddOrleansMultiClient 把 Orleans.MultiClient 注入到 DI 容器 中使用时需要通过依赖注入得到 IOrleansClient 。添加多个 ClientAddClient 添加多个 Orleans 客户客户端添加客户端时需要配置 Orleans 相关选项。 Orleans.MultiClient 提供了函数和 IConfiguration 两种方式进行配置。使用 IConfiguration 进行配置时需要注意配置文件的内容必须是 IListOrleansClientOptions类型的。services.AddOrleansMultiClient(build { build.AddClient((OrleansClientOptions opt) { ... }});全局 Orleans 服务配置Configure如果所有的 Orleans 的连接配置是一样的情况下可以配置全局的 Orleans 服务配置。比如如果所有的 Orleans Silo 都是通过 Consul 进行服务发现的就可以配置一个全局配置。services.AddOrleansMultiClient(build { build.Configure(b { b.UseConsulClustering(o { o.Address new Uri(https://127.0.0.1:8500); }); });}OrleansClientOptions 配置ServiceList用于在 IOrleansClient 调用接口时和 Orleans 连接配置建立关联。ServiceList 的值时 Orleans Silo 接口的 Assembly.FullName, 由于 Orleans Silo 可能有多个接口所以 ServiceList 是一个数组集合。可以通过 SetServiceAssembly 方法来配置 ServiceList。ServiceIdOrleans Silo 的 ServiceId在连接 Orleans 时需要。ClusterIdOrleans Silo 的 ClusterId在连接 Orleans 时需要。ConfigureOrleans 服务配置如连接组件Consul、Zookeeperr、等。如果配置了 全局 Orleans 服务配置 这个选项可以不配置但是这选项配置之后会覆盖上面的 全局 Orleans 服务配置。原文地址https://www.cnblogs.com/lfzm/p/10606584.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com