skynet(skynet终结者)

skynet教程(3)--服务的别名

skynet是由服务组成的,为了解决服务间调用时,服务地址的获取问题,skynet可以给服务起一个别名,这个别名是字符串。并提供了queryservice函数,queryservice可以根据名字查询到服务,获取服务的地址。服务的名字必须是唯一的,不可重复的。服务的地址是运行时唯一的,但名字是永远唯一的。这样也能解决集群通信时,有多台机器,每台机器跑不同的服务,但有一台机器上的服务宕机了,重启以后,服务的地址发生变化,其它机器调用也不受影响。

以下是几个写服务时经常要用到的函数。

newservice可以在一个进程里启动多个服务,这适用于无状态的服务。

uniqueservice则是类似于设计模式中的单件(singleton),这适用于需要唯一性的服务。举个例子,比如写日志,只想写一份。或者是全局共享的数据。

服务的别名在第1篇里其实已经用到过了,就是用register函数注册服务的名字。下一篇将会有一个例子演示这些函数的使用。

如果觉得这篇文章对您有所帮助,请点赞或者赏杯咖啡吧。

skyet是什么意思

Skynet 是一个基于 Actor 模式的开源并发框架。

skynet 节点,通过 master ,认识网络中所有其它 skynet 节点。它们相互一一建立单向通讯通道。也就是说,如果一共有 100 个 skynet 节点,在它们启动完毕后,会建立起 1 万条通讯通道。这个系统是单进程多线程模型。每个内部服务的实现,放在独立的动态库中。由动态库导出的三个接口 create init release 来创建出服务的实例。init 可以传递字符串参数来初始化实例。比如用 lua 实现的服务(这里叫 snlua ),可以在初始化时传递启动代码的 lua 文件名。每个服务都是严格的被动的消息驱动的,以一个统一的 callback 函数的形式交给框架。框架从消息队列里取到消息,调度出接收的服务模块,找到 callback 函数入口,调用它。服务本身在没有被调度时,是不占用任何 CPU 的。框架做两个必要的保证。

Skynet特点:

⑴一个服务的 callback 函数永远不会被并发。

⑵一个服务向两一个服务发送的消息的次序是严格保证的。

skynet快递国内转什么

Skynet是一个国际快递公司,主要提供国际快递服务,而不是国内转运服务。如果需要寄送国内包裹,建议选择国内的快递公司,例如顺丰,圆通,中通等。这些公司在国内拥有广泛的物流网络,并提供快捷可靠的服务。