我正在尝试使用以下docker-compose堆栈部署weaviate docker容器。cotainner已部署,但我收到如下所示的存储引擎的日志消息连接被拒绝。救命啊!
{"action":"extensions_retrieve_all","error":"Get http://weaviate:8080/v1/modules/text2vec-contextionary/extensions-storage/: dial tcp 172.19.0.2:8080: connect: connection refused","level":"error","msg":"","time":"2021-09-07T06:42:31Z"}version: '2'
services:
weaviate:
image: semitechnologies/weaviate:1.2.1
ports:
- 8080:8080
restart: on-failure:0
environment:
CONTEXTIONARY_URL: contextionary:9999
QUERY_DEFAULTS_LIMIT: 25
AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true'
PERSISTENCE_DATA_PATH: '/var/lib/weaviate'
DEFAULT_VECTORIZER_MODULE: 'text2vec-contextionary'
ENABLE_MODULES: text2vec-contextionary
contextionary:
environment:
OCCURRENCE_WEIGHT_LINEAR_FACTOR: 0.75
EXTENSIONS_STORAGE_MODE: weaviate
EXTENSIONS_STORAGE_ORIGIN: http://weaviate:8080
NEIGHBOR_OCCURRENCE_IGNORE_PERCENTILE: 5
ENABLE_COMPOUND_SPLITTING: 'false'
image: semitechnologies/contextionary:en0.16.0-v1.0.2发布于 2021-09-07 11:08:51
Short answer
这只是启动过程中的一个临时计时问题,没有什么好担心的,只要在所有组件都准备就绪后错误不会重复出现。
注:您正在使用的v1.7.0__版本非常旧,在撰写本文时最新的版本是Weaviate __。您可以使用生成最新版本的所需配置。
Long answer
您正在使用的Weaviate设置由两个组件组成,Weaviate核心数据库和由text2vec-contextionary模块提供的contextionary推理容器。
weaviate容器是有状态的(因为它是数据库),模块容器通常是无状态的,以便更容易扩展。但是,text2vec-contextionary模块有一个特性,它可以使用新概念进行扩展,并且这些概念需要存储在某个地方。如果模块需要第三方存储,可以使用内部模块API持久化函数。text2vec-contextionary模块利用该功能,并将其存储的扩展公开给此内部API (GET /v1/modules/text2vec-contextionary/extensions-storage)上的推理容器。这允许推理容器通过在该URL上访问Weaviate来将Weaviate用作持久数据库。
您在启动过程中看到的是两个容器独立启动。如果contextionary推理容器比Weaviate Core数据库稍微快一点,它会立即尝试联系Weaviate,而Weaviate在前三秒钟还没有准备好。
如果您查看以下日志(取自您在上面发布的docker-compose.yml ),您可以看到两件事:

第一个红色箭头表示contextionary容器开始尝试访问
weaviate容器完全启动的时间点。请注意,此时错误不再出现。这意味着将状态从持久数据库同步到contextionary容器的3个请求都失败了,但是所有后续请求(因为在第二个红色箭头之后看不到错误)都成功了,现在一切都是完全可用的。
https://stackoverflow.com/questions/69086427
复制相似问题