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 )客户端配置
Orleans[NET Core 3.1] 学习笔记(三)( 1 )本地开发配置的更多相关文章
- Orleans[NET Core 3.1] 学习笔记(三)( 3 )服务端配置
服务端配置 Silo通过SiloHostBuilder和许多补充选项类以编程方式进行配置. Silo配置有几个关键方面: Orleans集群信息 集群提供程序(不知道咋翻译) Silo到Silo和Cl ...
- Orleans[NET Core 3.1] 学习笔记(三)( 2 )客户端配置
客户端配置 通过一个ClientBuilder和多个补充选项类,以编程方式配置一个用于连接Silo集群并将请求发送至Grain的客户端. 客户端配置示例: var client = new Clien ...
- Orleans[NET Core 3.1] 学习笔记(四)( 1 )创建项目
ClassRoom ClassRoom是一个练手demo,目的是为了能熟悉掌握Orleans的基本知识和使用方法,我会尽量在这个项目中加入更多的知识点,一边学一边练避免我看完文档就忘掉 创建项目 依旧 ...
- Orleans[NET Core 3.1] 学习笔记(二)Hello World
项目结构 开始Orleans之前,我们都知道Orleans主要可以分为俩部分,Host和Client. 所以我们可以创建如下的项目结构: IGrain 一个包含Grain接口的库(.NET Stand ...
- Orleans[NET Core 3.1] 学习笔记(一).NET环境下的分布式应用程序
前言 Orleans是一个跨平台的框架,用于搭建可扩展的分布式应用程序 第一次接触Orleans还是两年前做游戏服务器的时候,用SignalR+Orleans的组合,写起代码来不要太爽. 即将进入20 ...
- Orleans[NET Core 3.1] 学习笔记(四)( 2 )获取Grain的方式
简介 在这一节,我们将介绍如何在Silo和Client中获取Grain及调用Grain Grain获取方式 从Grain内部获取: //根据特定的Key值创建或获取指定的Grain IStudent ...
- Orleans[NET Core 3.1] 学习笔记(四)( 3 )监控Orleans Silo的方式 OrleansDashboard
简介 Orleans用起来的确很爽,更爽的是咱们有能监控它的工具. OrleansDashboard 这个工具是一个可视化的Silo监控工具,Silo和Grain的活跃状态一目了然,各个接口的响应速度 ...
- CAS学习笔记三:SpringBoot自动配置与手动配置过滤器方式集成CAS客户端
本文目标 基于SpringBoot + Maven 分别使用自动配置与手动配置过滤器方式集成CAS客户端. 需要提前搭建 CAS 服务端,参考 https://www.cnblogs.com/hell ...
- StackExchange.Redis学习笔记(三) 数据库及密码配置 GetServer函数
这一章主要写一些StackExchange.Redis的配置及不太经常用到的函数 数据库连接 下面是我的连接字符串,里面指定了地址,密码,及默认的数据库 Redis启动后默认会分成0-15个数据库,不 ...
随机推荐
- pat 1035 Password(20 分)
1035 Password(20 分) To prepare for PAT, the judge sometimes has to generate random passwords for the ...
- 使用C#+FFmpeg+DirectX+dxva2硬件解码播放h264流
本文门槛较高,因此行文看起来会乱一些,如果你看到某处能会心一笑请马上联系我开始摆龙门阵 如果你跟随这篇文章实现了播放器,那你会得到一个高效率,低cpu占用(单路720p视频解码播放占用1%左右cpu) ...
- 工作日志,error parsing query: unable to find time zone
工作日志,error parsing query: unable to find time zone 坑 Windows 系统使用influxdb数据库,在执行查询语句时提示 ERR: error p ...
- 数据库05 使用percona软件来进行数据备份
1.为什么要与用percona来备份 常见的MySQL备份工具 —跨平台性差 —备份时间长.冗余备份.浪费存储空间 mysqldump备份缺点: —效率较低.备份与还原速度慢,锁表(即备份数据库中的一 ...
- 菜鸟系列Fabric源码学习—orderer服务启动
Fabric 1.4 orderer 服务启动流程 1.提要 orderer提供broadcast和deliver两个服务接口.orderer节点与各个peer节点通过grpc连接,orderer将所 ...
- 【Luogu P3388】割点模板
Luogu P3388 在一个无向图中,如果有一个顶点集合,删除这个顶点集合以及这个集合中所有顶点相关联的边以后,图的连通分量增多,就称这个点集为割点集合. 如果某个割点集合只含有一个顶点X(也即{X ...
- Java入门系列之集合HashMap源码分析(十四)
前言 我们知道在Java 8中对于HashMap引入了红黑树从而提高操作性能,由于在上一节我们已经通过图解方式分析了红黑树原理,所以在接下来我们将更多精力投入到解析原理而不是算法本身,HashMap在 ...
- linux网络配置(ifcfg)
将linux主机接入到网络需要配置哪些配置项? IP/NETMASK:本地通信. 路由(网管):跨网络通信. DNS服务器地址:基于主机名通信. DNS服务器有三种:主/备用DNS服务器/第三备份dn ...
- 实战webpack系列01
01. 采坑webpack 一.webpack初章 // 一个常见的`webpack`配置文件 const webpack = require('webpack'); const HtmlWebpac ...
- CSS新特性之2D转换transform
transform是css3中具有颠覆性特征之一,可以实现元素的位移.旋转.缩放等效果 1.位移translate 1.1语法 transform: translate(x,y);//x,y分别表示x ...