当前位置:主页 > 资料 >

Orleans解决并发之痛:Web API
栏目分类:资料   发布日期:2017-10-22   浏览次数:

导读:本文为去找网小编(www.7zhao.net)为您推荐的Orleans解决并发之痛:Web API,希望对您有所帮助,谢谢! 这篇文章将会介绍基于Web API的方式调用Grain,但相比Web API,我可能更倾向于gRPC,Web

本文为去找网小编(www.7zhao.net)为您推荐的Orleans解决并发之痛:Web API,希望对您有所帮助,谢谢!

本文来自去找www.7zhao.net



这篇文章将会介绍基于Web API的方式调用Grain,但相比Web API,我可能更倾向于gRPC,Web API基于Http,相比RPC性能上会弱一些,RPC方式接口调用上也会更方便,不过这次还是希望装逼的方式可以简单点。有兴趣可以看看这篇文章 。

欢迎访问www.7zhao.net

内容来自www.7zhao.net

我们可以基于 来调整代码:

内容来自www.7zhao.net

  1. 将Client控制台程序删除;
  2. 新建解决方案文件夹 Orleans,并将Grains、Interfaces、Silo 程序集移到文件夹内,这样看上去清晰一点;
  3. 创建类库 Business,普通的业务逻辑代码;
  4. 创建空的Web API项目;

注意:Silo目前依然是控制台应用程序。 copyright www.7zhao.net

如果项目是基于.Net Framework,之后可以将Silo使用 以Windows服务方式部署;如果是基于.Net Core,可以使用Docker来部署;据官方提供的Sample ,Orleans 2.0.0将支持.Net Core,目前是1.5.0。

本文来自去找www.7zhao.net

项目结构:

内容来自www.7zhao.net

依赖引用:

程序集名称 类型

Nuget依赖包

去找(www.7zhao.net欢迎您

Microsoft.Orleans.

本文来自去找www.7zhao.net

引用
Business 类库 Core Interfaces
WebAPI Web API Core
OrleansCodeGenerator
Business

copyright www.7zhao.net

配置连接Silo:

WebAPI项目在启动的时候,需要同时连接上Silo,才能调用Grain里面的方法。ClientConfiguration.xml和之前的控制台程序一样即可,在Global.asax的Application_Start修改代码如下:

www.7zhao.net

protected void Application_Start()
{
	var config = ClientConfiguration.LoadFromFile(Server.MapPath(@"~/ClientConfiguration.xml"));
	GrainClient.Initialize(config);
	System.Web.Http.GlobalConfiguration.Configure(WebApiConfig.Register);
}
 

欢迎访问www.7zhao.net

Business调用Grain:

public class Persion
{
	public string SayHello(string name)
	{
		var grain = GrainClient.GrainFactory.GetGrain<IPersonGrain>(name);
		grain.SayHelloAsync();
		return "success";
	}
}
 欢迎访问www.7zhao.net 

WebAPI调用Business层方法:

public class PersonController : ApiController
{
	[HttpGet]
	public string SayHello(string name)
	{
		return new Business.Persion().SayHello(name);
	}
}
 内容来自www.7zhao.net 

根据实际接口定义规范,修改WebApiConfig.cs,假设routeTemplate配置如下:

欢迎访问www.7zhao.net

routeTemplate: "api/{controller}/{action}"
 

copyright www.7zhao.net

测试:

启动 Silo和WebAPI后,在浏览器内数据地址:

内容来自www.7zhao.net

http://localhost:{WebAPI启动的端口号}/api/person/sayHello?name=beck
 去找(www.7zhao.net欢迎您 

www.7zhao.net

本文来自去找www.7zhao.net


本文原文地址:http://beckjin.com/2017/08/19/actor-orleans-webapi/

以上为Orleans解决并发之痛:Web API文章的全部内容,若您也有好的文章,欢迎与我们分享!

本文来自去找www.7zhao.net

Copyright ©2008-2017去找网版权所有   皖ICP备12002049号-2 皖公网安备 34088102000435号   关于我们|联系我们| 免责声明|友情链接|网站地图|手机版