20190127-Orleans与SF小伙伴的部分问答
Orleans
- 怎么部署到服务器?
- 方式1:Orleans 服务端寄宿在Web应用中,将Web应用部署到服务器
- 方式2:通过SF/K8s部署到服务器
- 不同服务器上的谷仓和谷如何调配?
- 由Orleans框架调度。当部署到有一组节点的集群时,Orleans在内部实现了一组协议,来发现和维护集群中Orleans silo的成员身份,包括检测节点故障和自动重新配置。
- 谷和谷仓如何连接
var silo = new SiloHostBuilder()
[...]
// Endpoints
.ConfigureEndpoints(siloPort: 11111, gatewayPort: 30000)
[...]
Orleans silo有两种典型类型的端点配置:
- silo-to-silo端点(siloPort),用于同一集群中的silo之间的通信
- client-to-silo端点(gatewayPort),用于同一集群中的客户端和silo之间的通信
在示例中,我们使用帮助方法.ConfigureEndpoints(siloPort: 11111, gatewayPort: 30000),将用于silo-to-silo通信的端口设置为11111和用于网关的端口设置为30000。
- 接口、服务、actor概念的边界
- 结合OrleansSample.zip示例程序理解接口、服务、actor的概念
- 明确谷仓的含义
- Grain的集合
- 结合OrleansSample.zip示例程序理解
Actor
- 无状态的Actor上数据如何处理
- 通过调用actor的方法,对actor的字段数据CRUD
示例:
Grain:
public class HelloGrain : Orleans.Grain, IHello
{
private readonly ILogger logger;
private string tempData;
public HelloGrain(ILogger<HelloGrain> logger)
{
this.logger = logger;
}
Task<string> IHello.SayHello(string greeting)
{
var result = string.IsNullOrEmpty(tempData) ? $"You said: '{greeting}', I say: Hello!" : $"You said:'{tempData}-{greeting}'";
return Task.FromResult(result);
}
public Task SetValue(string temp)
{
tempData = temp;
return Task.CompletedTask;
}
}`
调用:
public class HomeController : Controller
{
private IClientFactory clientFactory;
public HomeController(IClientFactory clientFactory)
{
this.clientFactory = clientFactory;
}
public async Task<IActionResult> Index()
{
var client = clientFactory.GetClient();
var actor = client.GetGrain<IHello>(0);
var r = await actor.SayHello("Kiwi");
return Content(r);
}
public async Task SetValue(string str)
{
var client = clientFactory.GetClient();
var actor = client.GetGrain<IHello>(0);
await actor.SetValue(str);
}
}
- Actor持续化的过程怎么实现
- 多个物理分离的服务如何连接在一起
- 通过
orleansmembershiptable表和Orleans框架维护的协调方式。 - 相关回答 Orleans问题 3
- Orleans+Actor 怎么部署 实际使用
- 相关回答 Orleans 问题 1
SF
- SF与IIS的区别是什么?
- Internet Information Service(IIS)是windows开设web网页服务的组件,提供Web、FTP、SMTP等服务,是用来搭载
网站运行程序的平台。 - Service Fabric 是一款分布式系统平台,可方便用户轻松打包、部署和管理可缩放的可靠微服务和容器。
- Service Fabric 可帮助你构建使用微服务方法的应用程序,它提供:
- 提供系统服务的平台,用于部署、升级、检测和重启失败的服务、发现服务、路由消息、管理状态和监视运行状况。
- 能够部署在容器中运行或作为进程运行的应用程序。 Service Fabric 是容器和进程 Orchestrator。
- 有助于以微服务形式生成应用程序的编程模型,如:ASP.NET Core、Reliable Actors。
- SF的节点之间如何保证同步(例:一个节点死掉之后,再复原的时候依据的数据是怎么获得的)
- 可靠性子系统通过使用复制器、故障转移管理器和资源平衡器提供一种机制,使得 Service Fabric 服务的状态高度可用。
复制器确保主服务副本中的状态更改会自动复制到辅助副本,从而维护服务副本集中主副本和辅助副本之间的一致性。 复制器负责副本集中副本间的仲裁管理。 它与故障转移单元进行交互以获取要复制的操作列表,重新配置代理为其提供副本集的配置。 该配置指示操作需要复制到哪些副本。 Service Fabric 提供名为 Fabric Replicator 的默认复制器,编程模型 API 可使用它来使服务状态高度可用和高度可靠。
故障转移管理器确保向群集添加节点或从群集中删除节点时,会自动在可用节点间重新分发负载。 如果群集中的节点失败,群集会自动重新配置服务副本以维持可用性。
Resource Manager 在群集中的失败域之间放置服务副本,并确保所有故障转移单元正常运行。 Resource Manager 还会平衡群集节点基础共享池中的服务资源,从而获得最佳的统一负载分布。 - SF中的微服务支持备份还原、容错域等概念实现高可用
- 相关参考Reliable Services 概述
- SF与docker的关系
- SF是否可以做到负载均衡
- 一般sf上的微服务之前,会配置专门的负载均衡器。
- 支持。
- 在SF中,是否一个node对应多个服务器
- Service Fabric 群集是一组通过网络连接在一起的虚拟机或物理计算机,微服务会在其中部署和管理。
- 群集可以扩展到成千上万台计算机。
- 属于群集一部分的计算机或 VM 称为节点。需为每个节点分配节点名称(字符串)。 节点具有各种特征,如放置属性。 每个计算机或 VM 都有一个自动启动 Windows 服务 FabricHost.exe,此服务在引导时开始运行,并启动两个可执行文件:Fabric.exe 和 FabricGateway.exe。 这两个可执行文件构成了节点。在开发或测试方案中,可以通过运行 Fabric.exe 和 FabricGateway.exe 的多个实例,在单台计算机或 VM 上托管多个节点。
总结:
上面表述摘自官方文档,可以理解为:生产环境,一个node对应一个服务器(一台物理机或一个VM);测试开发环境,单台计算机或VM可以托管多个node
- actor如何跨服务器通信
- Silo对消息进行路由的过程分为以下3步
- 查找本地的Actor Activation数据字典,如果找到了,直接路由到本地的Actor Activation进行消息处理
- 如果本地的Actor Activation数据字典中没有这个Grain,则查找缓存字典,找到后根据字典中的Silo地址,然后将消息路由到对应的Silo
- 如果缓存中也没找到,会根据GrainId,通过Consistent Hash来获得目标Silo,进行远程的Silo查找GrainId对应的激活,然后保存到本地的缓存字典中
- 相关参考 Orleans问题3和Actor问题3
- 如果SF部署两个cloud,是两个不同进程吗?
- Service Fabric 是容器和进程Orchestrator。能够部署在容器中运行或作为进程运行的应用程序。
- sf集群中的协调器,帮助运行其他进程。协调器的数量和机制没有看到相关文档。
- 如果Cloud_A下有一个应用程序项目;Cloud_B下有一个应用程序项目,是两个进程。
20190127-Orleans与SF小伙伴的部分问答的更多相关文章
- maven常见问题问答
1.前言 Maven,发音是[`meivin],"专家"的意思.它是一个很好的项目管理工具,很早就进入了我的必备工具行列,但是这次为了把project1项目完全迁移并应用maven ...
- linux一句话问答(网络无关篇+网络相关篇+程序开发篇+经典图书)
一句话问答(网络无关篇+网络相关篇+程序开发篇+经典图书) --------------------------目录-网络无关篇-目录-------------------------- 0001 修 ...
- maven常见问题问答(转)
转自:http://www.oschina.net/question/158170_29368 1.前言 Maven,发音是[`meivin],"专家"的 意思.它是一个很好的项目 ...
- 【转】maven常见问题问答
转自:http://www.iteye.com/topic/973166 前言 Maven,发音是[`meivin],"专家"的意思.它是一个很好的项目管理工具,很早就进入了我的必 ...
- 新手必看】Highcharts的100个基础问答
新手必看]Highcharts的100个基础问答 2014-12-2 10:59| 发布者: Mr.Zhang| 查看: 2749| 评论: 3|来自: Highcharts中文论坛 摘要: 1. ...
- Django高级实战 开发企业级问答网站
Django高级实战 开发企业级问答网站 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大家看的 ...
- python3爬取百度知道的问答并存入数据库(MySQL)
一.链接分析: 以"Linux"为搜索的关键字为例: 首页的链接为:https://zhidao.baidu.com/search?lm=0&rn=10&pn=0& ...
- 用卷积神经网络和自注意力机制实现QANet(问答网络)
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/ ,学习更多的机器学习.深度学习的知识! 在这篇文章中,我们将解决自然语言处理(具体是指问答)中最具挑战性 ...
- Ext JS - 问答
Ext JS - 问答 在下面你将可以找到关于Ext JS 的最常见问题的答复.如果没有找到您所需的答复,请访问 Ext JS 论坛或者提交一个支持申请. 如果你确信你的问题可以对本页有补充,请让我们 ...
随机推荐
- tensorflow 1.0 学习:模型的保存与恢复
将训练好的模型参数保存起来,以便以后进行验证或测试,这是我们经常要做的事情.tf里面提供模型保存的是tf.train.Saver()模块. 模型保存,先要创建一个Saver对象:如 saver=tf. ...
- RDLC报表 分组排序设置
原文:RDLC分组排序设置 RDLC中反复设置表的排序字段,设置数据源排序后绑定均无效. 需要在分组字段右击组属性中,修改对应的排序字段,即可.
- Qt Widget 利用 Qt4.5 实现酷炫透明窗体
本文讲述的是Qt Widget 利用 Qt4.5 实现酷炫透明窗体,QWidget类中的每一个窗口部件都是矩形,并且它们按Z轴顺序排列的.一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分 ...
- Spring MVC的工作原理,我们来看看其源码实现
前言 开心一刻 晚上陪老丈人吃饭,突然手机响了,我手贱按了免提……哥们:快出来喝酒!哥几个都在呢!我:今天不行,我现在陪老丈人吃饭呢.哥们:那你抓紧喝,我三杯白酒,把我岳父放倒了才出来的,你也快点.看 ...
- jQuery简明教程
本文参考w3cshool中文教程,网址:http://www.w3school.com.cn/jquery/index.asp 简介 jQuery是一个Javascript库,使用其的主要目的是简化J ...
- Unity开发概览(HoloLens开发系列)
本文翻译自:Unity development overview 要开始使用Unity创建全息应用,点此安装包含Unity HoloLens技术预览的开发工具.Unity HoloLens技术预览基于 ...
- Delphi xe5 StyleBook的用法(待续)
首先要在FORM里拖进来一个StyleBook1,然后在Form里设置属性,记住一定要在单击form,在OBject Inspector里设置StyleBook [StyleBook1]. 下一个属 ...
- 设置windows2008系统缓存大小限制,解决服务器运行久了因物理内存耗尽出僵死(提升权限后,使用SetSystemFileCacheSize API函数,并将此做成了一个Service)
声明: 找到服务器僵死的原因了,原因是虚拟内存设置小于物理内存. 只要虚拟内存设置为系统默认大小就不会出生僵死的现象了. 当时因为服务器内存48G,系统默认虚拟内存大小也是48G, 觉得太占硬盘空间, ...
- WPF与WinForm的抉择
微软曾经对WPF(代号Avalon)抱很大的期望——新一代的华丽用户界面平台,一统Web应用和桌面应用,Flash杀手,尽管微软口头上不承认.几年下来,WPF确实实现了当初的预期的大部分功能,但离称霸 ...
- 小抄:选择 Unity 的对象生命周期管理员
Unity 框架提供了数种生命周期管理员,各有相同和相异之处.刚开始接触时,难免头昏. 制作这张小抄,只是为了要帮助自己理解和记忆.如果你也用 Untiy,或可参考看看. 文字說明: Transien ...