zoukankan      html  css  js  c++  java
  • Orleans[NET Core 3.1] 学习笔记(三)( 1 )本地开发配置

    本地开发配置

    本地开发和调试的时候,我们可能不需要去关注集群和网络ip端口。所以对于本地开发模式,Orleans给了我们比较简单的配置方式。

    Silo配置

    在本地开发的配置模式下,Orleans会默认使用本地11111和30000作为Silo和网管的监听端口

    此时我们需要ClusterOptions通过ISiloBuilder.Configure方法进行配置。

    ConfigureApplicationParts用于将带有Grain类的程序集显式添加到应用程序设置中。由于WithReferences扩展,它还会添加由程序集引用的所有程序集。完成这些步骤后,将建立Silo主机并启动Silo。

    下面是启动本地Silo的示例:

    public class Program
    {
        public static async Task Main(string[] args)
        {
            try
            {
                var host = await StartSilo();
                Console.WriteLine("按回车键停止...");
                Console.ReadLine();
    
                await host.StopAsync();
    
                return;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                return;
            }
        }
    
       private static async Task<ISiloHost> StartSilo()
        {
            var builder = new SiloHostBuilder()
                // 配置Silo只使用开发集群,并监听本地主机。
                .UseLocalhostClustering()
                // 配置ClusterId和ServiceId
                .Configure<ClusterOptions>(options =>
                {
                    options.ClusterId = "dev";
                    options.ServiceId = "MyAwesomeService";
                })
                // 配置连接
                .Configure<EndpointOptions>(options => options.AdvertisedIPAddress = IPAddress.Loopback)
                // 使用任何支持Microsoft.Extensions.logging的日志框架配置日志记录
                // 在本例中,使用Microsoft.Extensions.Logging.Console包进行日志记录.
                .ConfigureLogging(logging => logging.AddConsole());
    
            var host = builder.Build();//运行给定的配置来初始化主机。只能调用一次。
            await host.StartAsync();//启动当前Silo并等待
            return host;
        }
    }
    

    客户端配置

    现在我们需要配置ClientBuilder与本地Silo指定的群集ID相匹配的群集ID,并将静态群集指定为指向Silo的网关端口的群集

    完成之后,我们可以使用Connect()让客户端连接到集群

    下面是启动客户端连接到本地Silo的示例:

    client = new ClientBuilder()
        // 配置客户端以连接到本地主机上的Silo
        .UseLocalhostClustering()
        // 配置ClusterId和ServiceId
        .Configure<ClusterOptions>(options =>
        {
            options.ClusterId = "dev";
            options.ServiceId = "MyAwesomeService";
        })
        .ConfigureLogging(logging => logging.AddConsole())
    var client = builder.Build();
    await client.Connect();
    

    便捷路由

    目录Orleans[NET Core 3.1] 学习笔记(一).NET环境下的分布式应用程序

    上一节Orleans[NET Core 3.1] 学习笔记(二)Hello World

    下一节Orleans[NET Core 3.1] 学习笔记(三)( 2 )客户端配置

  • 相关阅读:
    获取Tekla属性方式
    基于C# 百度AI和科大汛飞语音合成SDK
    BIM工程信息管理系统-EF实体框架数据操作基类
    BIM工程信息管理新系统- 系统管理模块
    EChart绘制风速风向曲线分析图
    BIM工程信息管理系统-详细设计
    BIM工程信息管理系统搭建-系统功能需求
    基于C# 调用百度AI 人脸识别
    mago3DJS 应用
    Bitnami redmine windows环境下升级
  • 原文地址:https://www.cnblogs.com/amber-L/p/12027849.html
Copyright © 2011-2022 走看看