SQLite

SQLite 名称解析组件的详细信息

作为 mDNS 的替代方案,SQLite 名称解析组件可用于在单节点环境和本地开发场景中运行 Dapr。属于集群一部分的 Dapr 边车将其信息存储在本地机器上的 SQLite 数据库中。

配置格式

名称解析通过 Dapr Configuration 进行配置。

在 Configuration YAML 中,将 spec.nameResolution.component 属性设置为 "sqlite",然后在 spec.nameResolution.configuration 字典中传递配置选项。

这是 Configuration 资源的基本示例:

apiVersion: dapr.io/v1alpha1
kind: Configuration
metadata:
  name: appconfig
spec:
  nameResolution:
    component: "sqlite"
    version: "v1"
    configuration:
      connectionString: "/home/user/.dapr/nr.db"

Spec 配置字段

使用 SQLite 名称解析器组件时,spec.nameResolution.configuration 字典包含以下选项:

字段必填类型详情示例
connectionStringYstringSQLite 数据库的连接字符串。通常,这是磁盘上文件的路径,相对于当前工作目录,或绝对路径。"nr.db"(相对于工作目录),"/home/user/.dapr/nr.db"
updateIntervalNGo duration(作为 string活跃的 Dapr 边车更新其在数据库中的状态的间隔,该状态用作健康检查。
较小的间隔可降低应用程序离线时返回陈旧数据的可能性,但会增加数据库的负载。
必须至少比 timeout 大 1s。带小数秒的值会被截断(例如,1500ms 变为 1s)。默认值:5s
"2s"
timeoutNGo duration(作为 string)。
必须至少为 1s。
数据库操作的超时时间。整数被解释为秒数。默认值为 1s"2s"2
tableNameNstring存储数据的表的名称。如果表不存在,则由 Dapr 创建该表。 默认值为 hosts"hosts"
metadataTableNameNstringDapr 用于存储组件元数据的表的名称。如果表不存在,则由 Dapr 创建该表。默认值为 metadata"metadata"
cleanupIntervalNGo duration(作为 string从数据库中删除陈旧记录的间隔。默认值:1h(1 小时)"10m"
busyTimeoutNGo duration(作为 string在 SQLite 数据库当前正忙于服务另一个请求时,在返回"数据库繁忙"错误之前等待的间隔。这是一个高级设置。
busyTimeout 控制锁定在 SQLite 中如何工作。对于 SQLite,写入是独占的,因此每次任何应用程序写入时数据库都会被锁定。如果另一个应用程序尝试写入,它会等待最多 busyTimeout,然后返回"数据库繁忙"错误。但是 timeout 设置控制整个操作的超时时间。例如,如果查询在数据库获取锁定后"挂起"(因此繁忙超时被清除),那么 timeout 生效。默认值:800ms(800 毫秒)
"100ms"
disableWALNbool如果设置为 true,则禁用 SQLite 数据库日志记录的预写日志记录。这仅适用于高级场景truefalse

相关链接