Composer 中的 ThingWorx 模型定义 > 数据存储 > 持久化方案提供工具 > 使用 PostgreSQL 作为持久化方案提供工具
使用 PostgreSQL 作为持久化方案提供工具
PostgreSQL 为开源的对象关系数据库系统。PostgreSQL 持久化方案提供工具支持模型和数据提供工具。
* 
PostgreSQL 入门需要进行注册、安装和配置。这个过程大部分是独立于 ThingWorx 执行的,并记载在安装 ThingWorx 中。
PostgreSQL HA
您还可以使用 PostgreSQL 高可用性 (HA) 作为数据解决方案的一部分。HA 提供了设置单独服务器的选项,以便在主数据库服务器出现故障时捕获数据的读取和写入。HA 属于 PostgreSQL 实现的一部分时,有关建议安装和部署的详细信息,请参阅指南中的相应部分。
PostgreSQL 实现的高级处理
1. 确定 PostgreSQL 是否为适用于您的数据的解决方案。有关其他信息,请参阅大小设定和计划部分。
2. 下载并安装 PostgreSQL。此过程独立于 ThingWorx 执行。本指南中提供了一个部署示例。
* 
标准的 PostgreSQL 实现包括一个不能在 ThingWorx 中进行编辑的持久化方案提供工具。但是,您可以通过 platform-settings.json 或服务对其进行编辑。
3. 如果您希望在 ThingWorx 中创建其他能够连接 PostgreSQL 数据存储的持久化方案提供工具实例,请转至“数据存储” > “持久化方案提供工具”,然后单击绿色加号 (+)。
4. “常规信息”屏幕上,为持久化方案提供工具输入一个名称。
5. “持久化方案提供工具包”字段中,使用魔术拾取器选择 PostgreSQL 持久化方案提供工具包。
6. 单击“配置”并配置下列设置:
您可以编辑以下流和值流队列设置,且这些设置将应用至所有流和值流。对于特定流或值流,这些设置将无法更改。
流处理器设置
基本类型
默认值
注解
队列大小上限
数量
250000
队列中流条目的最大数量。达到指定的值后,以下条目将被拒绝。
清空流缓冲区之前的最长等待时间 (毫秒)
数量
2000
清空流缓冲区之前系统将等待的毫秒数
处理线程数目
数量
5
分配给流的处理线程数量
清空流缓冲区之前项的最大数量
数量
500
清空流缓冲区之前可累积的项的最大数量
处理块中流写入的最大次数
数量
2500
可在单个块中处理的最大流写入次数
缓冲区状况扫描频率 (毫秒)
数量
5
检查指定速率值 (以毫秒为单位) 的缓冲区状态
查询超时
数量
600000
查询在取消前等待完成所需的时间 (以毫秒为单位)。
网络超时
数量
900000
线程等待数据库响应所需的时间 (以毫秒为单位)。
如果在此配置时间内未得到响应,则平台将关闭基础连接并释放等待响应的线程。
创建者超时
数量
3000
此设置适用于流条目处理器,且当前仅对持久化属性处理器有效。
如果队列已满且无空间接纳新条目,则此为创建者等待向队列中添加条目所需的最长时间 (以毫秒为单位)。此等待时间结束后,若队列仍处于满溢状态且无可用空间,则条目将无法添加至队列。
值流处理器设置
基本类型
默认值
注解
队列大小上限
数量
250000
队列中值流条目的最大数量。达到指定的值后,以下条目将被拒绝。
清空值流缓冲区之前的最长等待时间 (毫秒)
数量
2000
清空值流缓冲区之前系统等待的毫秒数
处理线程数目
数量
5
分配给值流的处理线程数量
清空值流缓冲区之前项的最大数量
数量
500
清空值流缓冲区之前可累积的项的最大数量
处理块中值流写入的最大次数
数量
2500
可在单个块中处理的最大值流写入次数
缓冲区状况扫描频率 (毫秒)
数量
5
检查指定速率值 (以毫秒为单位) 的缓冲区状态
创建者超时
数量
3000
此设置适用于流条目处理器,且当前仅对持久化属性处理器有效。
如果队列已满且无空间接纳新条目,则此为创建者等待向队列中添加条目所需的最长时间 (以毫秒为单位)。此等待时间结束后,若队列仍处于满溢状态且无可用空间,则条目将无法添加至队列。
数据库连接栈追踪设置
默认值
注解
触发栈追踪的数据库连接池饱和度阈值 (百分比)
90
数据库连接池触发堆栈追踪所需达到的饱和度阈值。
触发后记录的栈追踪集合计数
5
触发堆栈追踪设置后记录的堆栈追踪集合计数
记录栈追踪的间隔时间 (秒)
10
记录堆栈追踪的时间间隔。
再次触发栈追踪记录的最短用时 (分钟)
60
再次触发堆栈追踪记录前的最短用时。
为记录栈追踪而保持连接的持续时间 (毫秒)
1000
为记录堆栈追踪而保持连接的持续时间。
连接 PostgreSQL 所需的连接信息
名称
默认值
注解
JDBC URL
jdbc:postgresql://localhost:5432/thingworx
数据库的 JDBC URL,您可从该数据库中获取连接。可以在此 URL 中指定多个架构。
Username
thingworx
用于获取数据库连接的用户名
密码
不适用
用于获取数据库连接的密码
初始连接池大小
5
连接池启动时尝试获取的连接数
建立连接增量
5
确定在连接池耗尽时将获得的连接数
连接池大小上限
100
连接池在任何给定时间保持的最大连接数
连接池大小下限
5
连接池在任何给定时间保持的最小连接数
缓存语句最大数目
100
全局 PreparedStatement 缓存大小
驱动类
org.postgresql.Driver
数据库 JDBC 驱动类
建立连接重试次数
3
定义连接池将尝试获取新连接的次数
建立连接重试延迟
10000
连接池在两次获取连接尝试之间等待的时间 (以毫秒为单位)
退出重试超时
1000000
当连接池耗尽时,调用 getConnection 的客户端等待检入或获取连接的毫秒数
最大空闲时间
0
连接被放弃之前,连接池中存在但未使用的连接秒数零表示空闲连接从不过期。
连接最大时长
0
一旦超出这个时长 (以秒为单位),连接将会被销毁并从连接池中清除。零表示无强制的最大连接时长。
Helper 线程数目
8
通常,速度较慢的 JDBC 操作将由未持有竞争锁的 helper 线程执行。将这些操作分散到多个线程中,可以同时执行多个操作,从而显著提高性能。
未返回连接超时
0
如果应用程序获取了连接但在指定的时间段 (以秒为单位) 内未能关闭连接,则连接池会销毁连接。零表示无超时,并且应用程序会关闭其连接。
过量连接最大空闲时间
300
在超过 minPoolSize 的连接允许销毁之前,在连接池中保持空闲的秒数。零表示无强制,多余连接不会被销毁。
7. 如有必要,请迁移实体和数据。
8. 监控和维护 PostgreSQL 实现。本指南将介绍创建成功维护计划的最佳业务实践。
这对您有帮助吗?