美文网首页
170205 hashicorp/go-plugin

170205 hashicorp/go-plugin

作者: zmlcc | 来源:发表于2017-02-05 20:14 被阅读0次

    实现

    在子进程中启动plugin服务,并通过net/rpc与之通信。Plugin与主进程之间的连接是复用的

    用法

    1. 定义plugin暴露的接口
    2. 完成通过*rpc.Client调用实现以上接口的struct(client端),并完成对应的rpc server端struct(注意需要满足golang rpc方法规则)
    3. 实现Plugin接口,包含以上两种struct
    4. 在插件服务进程中调用plugin.Serve完成插件服务(注意plugin.ServeConfig的配置)
    5. 在主进程中调用plugin.NewClient定义插件实例(注意plugin.ClientConfig的配置,Cmd指向插件服务启动命令)
    6. 在主进程中client.Client()启动插件服务,Dispense方法获得实际的插件接口,再类型转换后即可使用

    架构图

    一些细节

    MuxBroker的用法

    hashicorp/terraform里有用到

    相关文章

      网友评论

          本文标题:170205 hashicorp/go-plugin

          本文链接:https://www.haomeiwen.com/subject/oyueittx.html