icore-rtdb(com.steerinfo.rtdb)无内置连接池:
ClientImpl:单 TCP socket + 请求多路复用TestClient2 使用单例 DbConstants.client高并发写入场景下,单连接仍可能成为瓶颈或故障单点,因此自建 多 Client 池。
类包:com.steerinfo.meterwork.rtdb
| 类 | 职责 |
|---|---|
RtdbPoolProperties |
配置绑定 |
RtdbClientPool |
固定大小 ArrayBlockingQueue<Client>,borrow / release,ping 失败重建 |
RtdbClientConfiguration |
Spring Bean,destroyMethod 关闭全部 Client |
borrow(timeout) → Client
try: 业务 call / replace
catch: invalidate(client) // close + 新建放回
finally: release(client) // 正常归还
client.syncOps().call("db.space.METER_WORK_MONITOR:replace", tuple);
client.syncOps().call("db.space.METER_WORK_MONITOR:get", pointNo);
client.syncOps().call("db.space.METER_WORK_MONITOR:update", key, ops);
client.syncOps().call("db.space.METER_WORK_MONITOR:select"); // 全表 / dirty 扫描
| Key | 默认 | 说明 |
|---|---|---|
rtdb.host |
172.22.42.3 |
Tarantool 主机 |
rtdb.port |
2101 |
端口 |
rtdb.username |
guest |
用户 |
rtdb.password |
空 | 密码 |
rtdb.pool.size |
8 |
池内 Client 数 |
rtdb.pool.borrow-timeout-ms |
3000 |
借用超时 |
rtdb.monitor.enabled |
true |
是否启用 Monitor RTDB 写入 |
Monitor 写入走本池;DbConstants.client 仍供其它读路径使用。