【问题标题】:How to implement CLI client to golang daemon?如何实现 CLI 客户端到 golang 守护进程?
【发布时间】:2014-11-09 15:18:29
【问题描述】:

我有一个带有 http api 的 linux 守护程序,它是我在 golang 上编写的。在开始时,他初始化变量,并且一直在我问 api 时——他就是答案。初始化是硬操作:读取许多配置,添加许多对象等。

我的问题是,如果主进程死了,我就不能使用 http api ;)。我的代码并不完美,有时他会堆叠或死亡,或者用户禁用 linux 服务。但我仍然需要一些低级功能才能工作。

如果我尝试在 cli 中实现 web api 的所有功能:他的启动将非常缓慢并且对系统来说很难。但是如果实现将在 CLI 和 web api 之间分离,我会遇到更多问题:inconsistent. 例如:我可以在 CLI 中同时在 web api 中创建 && - 全部删除。我必须实现锁定功能来防止这种情况。 (我觉得这边写代码不好)

我不使用数据库服务器(也不需要)。也许我可以存储内部文件或使用一些共享内存?

我的问题是如何在 golang 守护程序和 CLI 客户端之间共享对象的数据?

【问题讨论】:

  • 不要那样做。要么让 CLI 应用程序与你的 API 对话,要么让它们都使用一个公共数据库。您可以为此创建各种 IPC 同步,但您走错了路。
  • 我想与不是来自网络的守护进程 api 交谈。但我不知道怎么做。

标签: algorithm design-patterns go


【解决方案1】:

Go 有一个内置的 RPC system 用于 Go 进程之间的轻松通信。您也可以查看0mq,或使用D-Bus

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-22
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 2018-06-11
    • 2012-08-10
    • 1970-01-01
    • 2019-04-15
    相关资源
    最近更新 更多