[英]Fiware Orion Context Broker-Send notifications after a period of time
[英]Entities in FIWARE orion disappear after some time passes
我从https://fiware-tutorials.readthedocs.io/en/latest/time-series-data.html教程创建了一个项目,只是更改了实体名称和类型,一切正常。 但是一段时间后(通常是一天),Orion 中的所有实体都消失了(尽管 Quantumleap 中的数据仍然存在),我无法使用以下命令获取实体属性:
curl -X GET \
--url 'http://localhost:1026/v2/entities?type=Temp'
问题是什么? 教程项目有什么限制吗?
这些教程是作为 NGSI 的介绍而编写的,而不是作为一个健壮的架构解决方案。 这个想法只是为了让一些“快速而肮脏”的东西在开发人员的机器上运行起来,并且已经采用了各种捷径。 事实上, docker-compose
文件都包含以下免责声明:
警告:不要将此教程配置直接部署到生产环境
教程 docker-compose 文件尚未针对生产部署编写,因此无法扩展。 牺牲了适当的架构以使叙述集中在学习目标上,它们仅用于将所有内容部署到单个 Docker 机器上。 所有 FIWARE 组件都在完全调试下运行,并且已经公开了额外的端口以允许直接调用服务。 它们还包含各种明显的安全漏洞——明文密码、没有负载平衡、没有使用 HTTPS 等等。
这一切都是为了避免需要多台机器,生成证书,加密机密等,纯粹是为了可以读取单个 docker-compose 文件作为示例进行构建,而不是直接使用。
部署到生产环境时,请参阅 FIWARE 组件的 Helm 存储库,以便扩展到适当的架构:
也许这里回答您的问题最相关的因素是,通常没有卷持久性- 教程在可能的情况下自行清理,以避免不必要地将数据留在用户的机器上。
如果您在连接到 Orion 时丢失了所有实体数据,我的猜测是 MongoDB 数据库由于某种原因已退出并重新启动。 由于故意没有设置持久卷,这意味着所有以前的实体在重新启动时都会丢失。
关于如何保持卷和修复此行为的解决方案可以在本网站上另一个问题的答案中找到 - 例如:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.