其他
.NET Core下简单构建高可用服务集群
(给DotNet加星标,提升.Net技能)
转自:smark
cnblogs.com/smark/p/10253786.html
一说到集群服务相信对普通开发者来说肯定想到很复杂的事情,如zeekeeper ,反向代理服务网关等一系列的搭建和配置等等;
总得来说需要有一定经验和规划的团队才能应用起来。在这文章里你能看到在.NET Core 下的另一种集群构建方案,通过Beetlex即可非常便捷地构建高可用的集群服务。
简述
Beetlex的Webapi集群应用并没有依赖于第三方服务,而是由Beetlex自身完成;它主要是通过Client和策略监控服务相结合的方式来实现集群化的服务负载访问。以下是服务结构:
引用Beetlex.FastHttpApi
编写一个简单的HelloWorldwebapi服务
class Program
{
private static BeetleX.FastHttpApi.HttpApiServer mApiServer;
static void Main(string[] args)
{
mApiServer = new BeetleX.FastHttpApi.HttpApiServer();
mApiServer.Debug();
mApiServer.Register(typeof(Program).Assembly);
mApiServer.Open();
Console.Write(mApiServer.BaseServer);
Console.Read();
}
}
[Controller]
public class Home
{
/// <summary>
/// Hello Word
/// </summary>
/// <param name="name">string: you name</param>
/// <returns>string</returns>
[Get(Route = "{name}")]
[DefaultJsonResultFilter]
public object Hello(string name)
{
return new { Hello = "hello " + name, Time = DateTime.Now };
}
}
运行后浏览器访问一下
创建Client调用
同样是构建一个控制台程序,然后引用BeetleX.FastHttpApi,定义访问接口
public interface IDataService
{
[Get(Route = "hello/{name}")]
string Hello(string name);
}
创建调用接口代理
HttpClusterApi = new BeetleX.FastHttpApi.Clients.HttpClusterApi();
DataService = HttpClusterApi.Create<IDataService>();
await HttpClusterApi.LoadNodeSource("default", "http://localhost:8080");//加载配置服务中的default节点
调用服务
var result = DataService.Hello("henry");
集群中心配置
接下来需要新的节点服务来支撑并发处理,这个时候只需要新部署一份服务,在配置中心添加节点即可。
项目地址:https://github.com/IKende/FastHttpApi
集群策略管理项目地址:https://github.com/IKende/ClusterConfiguration
推荐阅读
(点击标题可跳转阅读)
看完本文有收获?请转发分享给更多人
关注「DotNet」加星标,提升.Net技能
喜欢就点一下「好看」呗~