【问题标题】:Entities in FIWARE orion disappear after some time passesFIWARE orion 中的实体在一段时间后消失
【发布时间】:2022-08-23 02:29:40
【问题描述】:

我从https://fiware-tutorials.readthedocs.io/en/latest/time-series-data.html 教程创建了一个项目,只是更改了实体名称和类型,一切正常。但是一段时间后(通常是一天),Orion 中的所有实体都消失了(尽管 Quantumleap 中的数据仍然存在),我无法使用以下命令获取实体属性:

curl -X GET \\
  --url \'http://localhost:1026/v2/entities?type=Temp\'

.问题是什么?教程项目有什么限制吗?

    标签: fiware fiware-orion fiware-cygnus


    【解决方案1】:

    这些教程是作为 NGSI 的介绍而编写的,而不是作为一个健壮的架构解决方案。这个想法只是为了得到一些东西“又快又脏”在开发人员的机器上启动并运行,并采用了各种快捷方式。事实上,docker-compose 文件都包含以下免责声明:

    警告:不要将此教程配置直接部署到生产环境

    教程 docker-compose 文件尚未针对生产部署编写,因此不会 规模。牺牲了适当的架构以使叙述集中在学习上 目标,它们只是用于将所有内容部署到单个 Docker 机器上。所有 FIWARE 组件 正在以完全调试的方式运行,并且已经公开了额外的端口以允许直接调用服务。 它们还包含各种明显的安全漏洞——纯文本密码、没有负载平衡、 没有使用HTTPS等等。

    这一切都是为了避免需要多台机器,生成证书,加密秘密 依此类推,纯粹是为了让单个 docker-compose 文件可以作为示例来构建, 不直接使用。

    部署到生产环境时,请参考 Helm Repository 对于 FIWARE 组件,以便扩展到适当的架构:

    见:https://github.com/FIWARE/helm-charts/

    也许是这里回答您的问题最相关的因素,通常没有Volume Persistence - 教程会在可能的情况下自行清理,以避免将数据不必要地留在用户的机器上。

    如果您在连接到 Orion 时丢失了所有实体数据,我的猜测是 MongoDB 数据库由于某种原因已退出并重新启动。由于故意没有设置持久卷,这意味着所有以前的实体在重新启动时都会丢失。

    可以在another question on this site 的答案中找到有关如何保留卷和修复此行为的解决方案 - 例如:

        version: "3.9"
        services:
          mongodb:
          image: mongo:4.4
          ports:
            - 27017:27017
          volumes:
            - type: volume
              source: mongodb_data_volume
              target: /data/db
        volumes:
          mongodb_data_volume:
            external: true
    
    

    【讨论】:

    • 我做了外部音量,但它不起作用。我还检查了容器,它们都运行良好,没有重新启动,因为它们已经启动。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多