Orleans 应用程序

正如前面的主题所述,典型的Orleans应用程序由一组服务器进程(孤岛)组成,其中包含Grainlive和一组客户端进程(通常是web服务器),它们接收外部请求,将它们转换为Grain方法调用并返回结果。因此,运行Orleans应用程序需要做的第一件事就是启动一个群集Silo。出于测试目的,群集可以由单个组成Silo。为了实现可靠的生产部署,我们显然希望Silo集群中有不止一个用于容错和扩展。

一旦群集运行,我们就可以启动一个或多个连接到群集的客户端进程,并向该群集发送请求Grain。客户端连接到Silo网关上的特殊TCP端点。默认情况下,Silo集群中的每个客户端都启用了客户端网关。因此,客户可以Silo并行连接所有设备,以获得更好的性能和弹性。

配置和启动Silo

Silo通过一个ClusterConfiguration对象以编程方式进行配置。它可以被直接实例化和填充,从一个文件加载设置,或者为不同的部署环境使用几种可用的帮助器方法创建。对于本地测试,最简单的方法是使用ClusterConfiguration.LocalhostPrimarySilo()助手方法。然后将配置对象传递给一个新的SiloHost类实例,可以在此之后进行初始化和启动。

您可以创建一个空的控制台应用程序项目,以.NET Framework 4.6.1或更高版本为主机Silo。将NuGet元软件包添加到项目中。Microsoft.Orleans.Server

PM> Install-Package Microsoft.Orleans.Server

这是一个如何Silo启动本地的例子:

var siloConfig = ClusterConfiguration.LocalhostPrimarySilo();
var silo = new SiloHost("Test Silo", siloConfig);
silo.InitializeOrleansSilo();
silo.StartOrleansSilo();Console.WriteLine("Press Enter to close.");
// wait here
Console.ReadLine(); // shut the silo down after we are done.
silo.ShutdownOrleansSilo();

配置和连接客户端

用于连接到群集Silo并发送请求的客户端Grain通过ClientConfiguration对象和a 以编程方式进行配置ClientBuilder。 ClientConfiguration对象可以实例化并直接填充,可以从文件加载设置,也可以为不同的部署环境使用几种可用的帮助程序方法创建。对于本地测试,最简单的方法是使用ClientConfiguration.LocalhostSilo()助手方法。然后将配置对象传递给一个新的ClientBuilder类实例。

ClientBuilder公开更多配置其他客户端功能的方法。之后调用BuildClientBuilder对象的方法来获取IClusterClient接口的实现。最后,我们调用Connect()返回对象的方法来连接到集群。

您可以创建一个空的控制台应用程序项目,以.NET Framework 4.6.1或更高版本为目标,以运行客户端或重新使用您创建的托管应用程序项目Silo。将NuGet元软件包添加到项目中。Microsoft.Orleans.Client

PM> Install-Package Microsoft.Orleans.Client

以下是客户端如何连接到本地的示例Silo

var config = ClientConfiguration.LocalhostSilo();
var builder = new ClientBuilder().UseConfiguration(config).
var client = builder.Build();
await client.Connect();

生产配置

我们在这里使用的配置示例用于测试Silo和客户端运行在同一台机器上localhost。在生产中,Silo客户端通常运行在不同的服务器上,并且配置有可靠的群集配置选项之一。您可以在“ 配置指南”和“ 群集管理”的描述中找到更多相关信息。

下一个

调试

Orlens入门概念(4)Orleans 服务进程Silo相关推荐

  1. C功底挑战Java菜鸟入门概念干货(一)

    一.认识Java 1.Java 程序比较特殊,它必须先经过编译,然后再利用解释的方式来运行.  2.Byte-codes 最大的好处是--可越平台运行,可让"一次编写,处处运行"成 ...

  2. CCNA-第一篇-基础入门概念

    ** 基础入门概念 **前言 没有什么学习是简单的.任何东西,包括你打游戏(除非是弱智的单机游戏)搞IT,一个月熬熬夜 月薪过X-W的大有人在,早9晚5一个月3K,自己选择.所以看你怎么学,每个人都很 ...

  3. 大数据入门概念及应用场景

    参考内容: [知乎]深入浅出大数据:到底什么是Hadoop? [知乎]五万字 | Hive知识体系保姆级教程​ 大数据入门概念及应用场景 一.入门概念 1.1 大数据的4V 1.2 大数据处理的最佳工 ...

  4. 一、 网络安全基础入门-概念名词

    目录 网络安全学习(2022.10.23) 一.基础入门--概念名词 DNS 脚本语言 后门(2022.11.06) WEB WEB相关安全漏洞 演示案例 网络安全学习(2022.10.23) 一.基 ...

  5. python中pyplot是什么意思_pyplot 入门概念小结

    pyplot 入门概念小结 知乎的markdown支持实在是太差了,我就不在这里一个一个代码显示样式了,详情看我在简书发的文章.也希望高手指点一下怎么在知乎里面用好Markdown.也可以移步我的微信 ...

  6. 对计算机文件概念的理解,入门概念之三: 什么是文件 - 电脑知识学习网

    入门概念之三: 什么是文件 12-05  电脑知识学习网   来源: 网络 文件在我们在电脑学习中用得最多的一个词.  那什么是文件呢? 文件是如何保存在电脑中的? 文件有那些类型? 文件有那些属性? ...

  7. 大白话ElasticSearch入门概念,看不懂找我!

    点击上方蓝色"胖滚猪学编程",选择"设为星标" 跟着胖滚猪学编程!好玩!有趣! 这是胖滚猪ES系列博文第三篇,大白话ElasticSearch入门概念. 阅读本 ...

  8. java web入门——概念理解、名词解释

    引言:当你想入门java web后,一定会查阅到很多相关的名词:Servlet,HTML,Spring...等等之类的,但是对于他们之间的关系总是比较混乱的,这篇文章就是理清这些名词的关系. 什么是w ...

  9. 8002.ros2入门概念

    2 ros2 入门基本概念 # 创客智造网站. https://www.ncnynl.com/archives/201801/2251.html 基本概念: ROS是一个用于在不同进程间匿名的发布.订 ...

最新文章

  1. python需要php吗-PHP会被Python取代吗?
  2. Oracle就业课第四课之子程序
  3. 洛谷 P2756 飞行员配对方案问题 (二分图/网络流,最佳匹配方案)
  4. 【UOJ188】 Sanrd【类min_25筛】
  5. 2011股市大方向随想
  6. python的ctypes模块详解数组_python ctypes结构数组
  7. java 用户名不为空_[Java教程]【关于JavaScript】常见表单用户名、密码不能为空
  8. 解决 github clone慢
  9. jQuery 学习-样式篇(六):jQuery 获取和设置表单元素的值
  10. Asp.Net SignalR 集群会遇到的问题
  11. 顺序查找、折半查找、索引查找
  12. 动手设计 CPU(一)—— 各类元件功能表
  13. 媲美Teamviewer的远程桌面软件推荐 总有一款适合你
  14. 改变学习方式,改变一生-陈光超强逻辑记忆法笔记
  15. SpringBoot 使用freemarker 处理文档,找不到文件位置(报错:basePackagePath=““ /* relatively to resourceLoaderClass pkg)
  16. Mongoose操作mongoDB的详细步骤
  17. 语句摘抄——第26周
  18. 为啥是SoA?(SoA化的挑战)
  19. 提升方法(Boosting)
  20. 切比雪夫不等式例题讲解_「高中数学」柯西不等式,最全解析,高考必备,搞定最后十分...

热门文章

  1. 韩国EN电源维修EnerStream20直流电源维修详解
  2. 学习资料|常用的一些CMD运行命令,整理的比较齐全
  3. linux 端口带宽,Linux中最简单的总带宽限制
  4. mim install mmdetection不成功的解决办法
  5. WPF中GDI+图形图像的绘制:(一)绘制文本——动态设置字体、大小、颜色
  6. mysql命令行操作大全
  7. 下载excel文件,360浏览器下载成了json文件,谷歌正常
  8. 英语总结系列(二十八):改变自己
  9. error: reference to ‘XXX’ is ambiguous
  10. MACOS10.15使用CrossOver安装Enterprise Achitect