文件名称:
基于DotnetCore的服务通讯组件SmartRoute.zip
开发工具:
文件大小: 439kb
下载次数: 0
上传时间: 2019-07-19
详细说明: SmartRoute 是基于Dotnet Core设计的可运行在linux和windows下的服务通讯组件,其设计理念是去中心化和零配置即可实现服务通讯集群。SmartRoute是通过消息订阅的机制实现服务与服务之间的通讯,它可以让广播网段内所有服务器上的应用自动构建通讯集群; 而通讯集群完全是SmartRoute自动构建并不需要进行任何配置或安装中间服务。通过这种全新的通讯开发方式可以让开发者更轻松和简单地构建基于服务的集群通讯应用。SmartRoute的发展目标 智能集成服务通讯交互 不需要具备通讯专业知识即可轻松构建 零配置、零安装引用组件即可用 可快速构建服务应用通讯,消息分发,网关集群和集群负载应用原理SmartRou te基于UDP广播的方式来发现网内相同集群名称的服务应用,当然应用是基于同一集群名称的情况下,会发起TCP连接握手并进行验证,当验证通过后节点会建立的通讯关系。在同一集群里的任意一个节点产生的订阅都会同步到所有节点上。SmartRoute的网络节点是基于网状结构,并不需要中心服务维护,而这些特性都是自动化的开发人员完全不需要了解。使用SmartRoute的使用并不会像传统网络程序那样构建服务,然后构建Client连接到相应服务那样复杂。在SmartRoute中不存在服务和客户端这一说法,任何节点即是服务的同时也是客户端;SmartRoute的消息是通过订阅来处理,只要记住对方的名称就可以向对方发送消息,你并不需要关注对方是在那个节点或服务上。构建订阅SmartRoute默认会提供一个节点,主要是可以快速地构建通讯交互(如果怕和其他集群有冲突可以在打开默认节点之前修改一下它的Cluster和TokenKey)。 public class Program { static long mCount; public static void Main(string[] args) { INode node = NodeFactory.Default; node.Loger.Type = LogType.ALL; node.AddLogHandler(new SmartRoute.ConsoleLogHandler(LogType.ALL)); node.Open(); EventSubscriber henry = node.Register("henry"); henry.Register(OnUser); henry.Register(OnEmployees); Console.Read(); } private static void OnEmployees(Message msg, Employee emp) { System.Threading.Interlocked.Increment(ref mCount); msg.Reply(Employee.GetEmployee()); } private static void OnUser(Message msg, User user) { System.Threading.Interlocked.Increment(ref mCount); msg.Reply(new User { Name = "henry" }); } }以上代码是注册一个名称为Henry的订阅,并向这个订阅注册两个消息处理方法;henry接收到相关消息会自动地把消息路由到方法上,可以通过调用Message.Reply即可以向发送者返回一个响应消息。订阅,发现和推送消息接下来就构建别一个订阅,当发现henry这个订阅后向它发送一个消息; public class Program { static long mCount; public static void Main(string[] args) { INode node = NodeFactory.Default; node.Loger.Type = LogType.ALL; node.AddLogHandler(new SmartRoute.ConsoleLogHandler(LogType.ALL)); node.Open(); EventSubscriber ken = node.Register("ken"); ken.Register(OnUser); ken.Register(OnEmployees); node.SubscriberRegisted = (n, s) => { if (s.Name == "henry") { ken.Publish("henry", Employee.GetEmployee()); } }; while (true) { Console.WriteLine(mCount); System.Threading.Thread.Sleep(1000); } Console.Read(); } private static void OnEmployees(Message msg, Employee emp) { System.Threading.Interlocked.Increment(ref mCount); msg.Reply(Employee.GetEmployee()); } private static void OnUser(Message msg, User user) { System.Threading.Interlocked.Increment(ref mCount); msg.Reply(Employee.GetEmployee()); } }订阅代码都基于一致,同样注册一个ken订阅并注册相应消息的处理方法。总结通过SmartRoute实现的通讯服务和传统的有很大差别,使用起来会变得更简单和透明。这种模式更像我们使用的MQ方式,但SmartRoute的特别之处是不需要任何中间服务支持即可以进行交互,这样可以让应用构建会更简单灵活。不过现有SmartRoute的应用局限性只适应用于内部网服务交互,订阅方式也比较单一,后期也会加入一下多路订阅功能以便更好的适应不同的应用情况。如果你对SmartRoute感兴趣可以关注这个项目https://github.com/IKende/SmartRoute 标签:SmartRoute
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
相关搜索: