APP下载

Swift释出并行运算丛集函式库Distributed Actors

消息来源:baojiabao.com 作者: 发布时间:2024-05-14

报价宝综合消息Swift释出并行运算丛集函式库Distributed Actors

程式语言Swift官方宣布释出分散式演员(Distributed Actors)套件,这是一个服务器面向的丛集函式库,提供分散式演员语言功能,该函式库在服务器使用案例中,针对分散式演员提供完整的解决方案,官方提到,他们希望透过开源该函式库,来收集更多的相关的回馈。

演员模型(Actor Model)是一种并行运算模型,而演员则是一种抽象概念,为并行运算的基本单元,作为运算实体,演员可以传送讯息给其他演员,并且建立新演员等动作,演员之间的动作,不包含顺序执行的假设,因此可以并列进行。

官方提到,分散式演员是Swift并行模型演进的下一步,透过语言内建的演员,Swift提供开发者一个安全且直观的并行模型,适用于许多应用程序。与其他并行模型不同的地方在于,演员模型适用于分散式系统,开发者可以使用熟悉的演员概念,开发分散式系统应用程序,并且将其移动到诸如丛集等分散式环境中。官方想要透过分散式演员,简化和推动分散式系统程式开发。

不过,分散式演员套件的抽象,并不打算完全隐藏分散式跨网络呼叫的事实,官方解释,在某种程度来说,他们正在进行相反的事情,他们假设呼叫可能是远端的。套件可主要用于建构分散式系统,但是也支援在本地测试丛集中进行测试,并且有效地模拟各种错误情境。

分散式演员概念类似本地端演员,因为都仅透过异步呼叫,将状态和通讯封装在一起,分散式的部分则是增加了额外的隔离、类型系统和执行时的注意项目,但以功能表面来说,跟本地端演员非常相似,官方提到,分散式演员减少了许多一般远端程序呼叫系统,所需要建构和撰写的样板程式码,因为开发者不用关心程式码片段中切确序列化和网络细节,开发者就仅需要宣告来完成配置,并且跨网络传送工作请求。

要在分散式系统中加入分散式演员,开发者必须为其提供ActorTransport,这是一个可由用户实作的函式库元件,负责执行远端函式呼叫所需要的网络工作。而在Swift标准函式库中,不提供任何特定的传输方法,仅定义语言模型和扩充性,让传输实作可以使用这些模型语言和扩充性,替分散式演员实作特定的传输功能。

标准函式库定义了ActorTransport协定,让任何人都可以实现该协定,将分散式演员应用在特殊的用例中,官方提到,传输实作案例不只限于丛集系统,还可包括基于Web-socket的讯息传递,或是分散式演员的内部处理通讯。

而官方所发布的Swift Distributed Actors函式库,则是用来建构分散式系统的全功能框架,是一个ActorTransport协定的实作,可作为其他传输功能开发者的实作参考。这个函式库利用Swift高效能服务器端网络函式库SwiftNIO,实现丛集的网络层,同时丛集函式库还提供基于Swift Cluster Membership函式库的成员服务,这代表使用者可以在独立模式下运作丛集,而不需要额外启动服务探索和数据库服务,因此可简化在裸机中的部署工作。

丛集被设计具有高可扩展性,分散式演员系统让演员们可以组成一个丛集,相互探索沟通,开发者不需要开发低阶网络程式。分散式演员目前为一个早期的实验性语言功能,目标是要简化和推动Swift中的分散式系统程式开发技术,但因为现在仍在早期预览阶段,因此API可能任意的变动。

2021-10-31 16:48:00

相关文章