查看原文
其他

.NET Core下简单构建高可用服务集群

DotNet 2019-08-03

(给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


推荐阅读

(点击标题可跳转阅读)

.NET Core下去中心化访问HTTP服务集群

部署ASP.NET Core应用到k8s集群

Linux+.NET Core+Nginx搭建集群


看完本文有收获?请转发分享给更多人

关注「DotNet」加星标,提升.Net技能 

喜欢就点一下「好看」呗~

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存