首页 > 解决方案 > 客户端无法使用 Symmetric DS 在 AWS 上托管的服务器上注册

问题描述

我正在尝试使用 Symmetric DS 3.12 部署双向同步功能,服务器端托管在 AWS 上。显示客户端属性和服务器端属性文件。

# server-000.properties
engine.name=server-000
db.driver=org.sqlite.JDBC
db.url=jdbc:sqlite:./server1.sqlite
db.user=symmetric
db.password=
registration.url=
sync.url=http://172.31.3.23:31415/sync/server-000
group.id=server
external.id=000
job.purge.period.time.ms=7200000
job.routing.period.time.ms=5000
job.push.period.time.ms=10000
job.pull.period.time.ms=10000
auto.registration=true
initial.load.create.first=true
jobs.synchronized.enable=true
sync.triggers.thread.count.per.server=1
# client-001.properties
engine.name=client-001
db.driver=org.sqlite.JDBC
db.url=jdbc:sqlite:./client001.sqlite
db.user=symmetric
db.password=
sync.url=http://3.141.31.76:31415/sync/server-000
registration.url=http://3.141.31.76:31415/sync/server-000
group.id=client
external.id=001
job.routing.period.time.ms=5000
job.push.period.time.ms=10000
job.pull.period.time.ms=10000
jobs.synchronized.enable=true
sync.triggers.thread.count.per.server=1

我按照以下链接设置配置: https ://houseofbrick.com/replicating-from-oracle-on-premise-to-oracle-in-aws-rds-using-symmetricds/ 。最初,我尝试使用 AWS-EC2 控制台中的安全组来公开端口 31415(如以下链接中所述): https ://kerneltalks.com/virtualization/how-to-open-port-on-aws-ec2- linux服务器/ . 但它没有成功。它总是显示要关闭的端口。然后我尝试使用 Dockerfile 并暴露端口,它通过了乒乓测试。然后我尝试为客户端打开注册。它没有显示任何错误,但没有在服务器端注册。客户端的日志如下:

2021-02-20 15:49:36,330 INFO [startup] [SymmetricWebServer] [main] About to start SymmetricDS web server on 0.0.0.0:31415:HTTP/1.1
2021-02-20 15:49:37,331 INFO [startup] [SymmetricEngineHolder] [main] Current directory is /home/ysharshit/Documents/TE/KrishnaIkaP/bws-app-v2/server_sync
2021-02-20 15:49:37,331 INFO [startup] [SymmetricEngineHolder] [main] Starting in single-server mode
2021-02-20 15:49:38,321 INFO [client-001] [AbstractSymmetricEngine] [symmetric-engine-startup-1] Initializing connection to database
2021-02-20 15:49:39,051 INFO [client-001] [JdbcDatabasePlatformFactory] [symmetric-engine-startup-1] Detected database 'SQLite', version '3', protocol 'sqlite'
2021-02-20 15:49:39,096 INFO [client-001] [JdbcDatabasePlatformFactory] [symmetric-engine-startup-1] The IDatabasePlatform being used is org.jumpmind.db.platform.sqlite.SqliteDatabasePlatform
2021-02-20 15:49:39,732 INFO [client-001] [SqliteJdbcSymmetricDialect] [symmetric-engine-startup-1] The DbDialect being used is org.jumpmind.symmetric.db.sqlite.SqliteJdbcSymmetricDialect
2021-02-20 15:49:39,963 INFO [client-001] [ExtensionService] [symmetric-engine-startup-1] Found 0 extension points from the database that will be registered
2021-02-20 15:49:40,200 INFO [client-001] [StagingManager] [symmetric-engine-startup-1] The staging directory was initialized at the following location: /home/ysharshit/Documents/TE/KrishnaIkaP/bws-app-v2/server_sync/tmp/client-001
2021-02-20 15:49:45,462 INFO [client-001] [ExtensionService] [symmetric-engine-startup-1] Found 0 extension points from the database that will be registered
2021-02-20 15:49:45,463 INFO [client-001] [ClientExtensionService] [symmetric-engine-startup-1] Found 8 extension points from spring that will be registered
2021-02-20 15:49:45,497 INFO [client-001] [AbstractSymmetricEngine] [symmetric-engine-startup-1] Initializing SymmetricDS database
2021-02-20 15:49:45,497 INFO [client-001] [SqliteJdbcSymmetricDialect] [symmetric-engine-startup-1] Checking if SymmetricDS tables need created or altered
2021-02-20 15:49:45,657 INFO [startup] [SymmetricWebServer] [main] Joining the web server main thread
2021-02-20 15:49:45,932 INFO [client-001] [AbstractSymmetricEngine] [symmetric-engine-startup-1] Done initializing SymmetricDS database
2021-02-20 15:49:45,932 INFO [client-001] [AbstractSymmetricEngine] [symmetric-engine-startup-1] SymmetricDS database version : 3.12.6
2021-02-20 15:49:45,933 INFO [client-001] [AbstractSymmetricEngine] [symmetric-engine-startup-1] SymmetricDS software version : 3.12.6
2021-02-20 15:49:45,935 INFO [client-001] [AbstractSymmetricEngine] [symmetric-engine-startup-1] Starting registered node [group=client, id=001, nodeId=001]
2021-02-20 15:49:45,956 INFO [client-001] [ClusterService] [symmetric-engine-startup-1] This node picked a server id of ysharshit-X550LD
2021-02-20 15:49:45,957 INFO [client-001] [TriggerRouterService] [symmetric-engine-startup-1] Synchronizing triggers
2021-02-20 15:49:45,965 INFO [client-001] [TriggerRouterService] [symmetric-engine-startup-1] Done synchronizing triggers
2021-02-20 15:49:45,978 INFO [client-001] [RouterJob] [symmetric-engine-startup-1] Starting Routing on periodic schedule: every 5000ms with the first run at 2021-02-20T15:49:53.344+0530
2021-02-20 15:49:46,014 INFO [client-001] [PushJob] [symmetric-engine-startup-1] Starting Push on periodic schedule: every 10000ms with the first run at 2021-02-20T15:49:53.379+0530
2021-02-20 15:49:46,014 INFO [client-001] [PullJob] [symmetric-engine-startup-1] Starting Pull on periodic schedule: every 10000ms with the first run at 2021-02-20T15:49:53.380+0530
2021-02-20 15:49:46,015 INFO [client-001] [JobManager] [symmetric-engine-startup-1] Job Offline Push not configured for auto start
2021-02-20 15:49:46,015 INFO [client-001] [JobManager] [symmetric-engine-startup-1] Job Offline Pull not configured for auto start
2021-02-20 15:49:46,017 INFO [client-001] [OutgoingPurgeJob] [symmetric-engine-startup-1] Starting job 'Purge Outgoing' with cron expression: '0 0 */4 * * *'
2021-02-20 15:49:46,019 INFO [client-001] [IncomingPurgeJob] [symmetric-engine-startup-1] Starting job 'Purge Incoming' with cron expression: '0 0 */4 * * *'
2021-02-20 15:49:46,019 INFO [client-001] [StatisticFlushJob] [symmetric-engine-startup-1] Starting job 'Stat Flush' with cron expression: '0 0/5 * * * *'
2021-02-20 15:49:46,020 INFO [client-001] [SyncTriggersJob] [symmetric-engine-startup-1] Starting job 'SyncTriggers' with cron expression: '0 0 0 * * *'
2021-02-20 15:49:46,021 INFO [client-001] [HeartbeatJob] [symmetric-engine-startup-1] Starting Heartbeat on periodic schedule: every 900000ms with the first run at 2021-02-20T15:49:53.387+0530
2021-02-20 15:49:46,021 INFO [client-001] [WatchdogJob] [symmetric-engine-startup-1] Starting Watchdog on periodic schedule: every 3600000ms with the first run at 2021-02-20T15:49:53.387+0530
2021-02-20 15:49:46,022 INFO [client-001] [StageManagementJob] [symmetric-engine-startup-1] Starting job 'Stage Management' with cron expression: '0 0 * * * *'
2021-02-20 15:49:46,023 INFO [client-001] [JobManager] [symmetric-engine-startup-1] Job Refresh Cache not configured for auto start
2021-02-20 15:49:46,023 INFO [client-001] [JobManager] [symmetric-engine-startup-1] Job File Sync Tracker not configured for auto start
2021-02-20 15:49:46,023 INFO [client-001] [JobManager] [symmetric-engine-startup-1] Job File Sync Pull not configured for auto start
2021-02-20 15:49:46,023 INFO [client-001] [JobManager] [symmetric-engine-startup-1] Job File Sync Push not configured for auto start
2021-02-20 15:49:46,023 INFO [client-001] [InitialLoadExtractorJob] [symmetric-engine-startup-1] Starting Initial Load Extract on periodic schedule: every 10000ms with the first run at 2021-02-20T15:49:53.389+0530
2021-02-20 15:49:46,024 INFO [client-001] [MonitorJob] [symmetric-engine-startup-1] Starting Monitor on periodic schedule: every 60000ms with the first run at 2021-02-20T15:49:53.390+0530
2021-02-20 15:49:46,024 INFO [client-001] [JobManager] [symmetric-engine-startup-1] Job Report Status not configured for auto start
2021-02-20 15:49:46,024 INFO [client-001] [JobManager] [symmetric-engine-startup-1] Job Log Miner not configured for auto start
2021-02-20 15:49:46,025 INFO [client-001] [InitialLoadJob] [symmetric-engine-startup-1] Starting Initial Load Queue on periodic schedule: every 10000ms with the first run at 2021-02-20T15:49:53.391+0530
2021-02-20 15:49:46,030 INFO [client-001] [AbstractSymmetricEngine] [symmetric-engine-startup-1] SymmetricDS Node STARTED:
     nodeId=001
     groupId=client
     type=server
     subType=null
     name=client-001
     softwareVersion=3.12.6
     databaseName=SQLite
     databaseVersion=3.32
     driverName=SQLite JDBC
     driverVersion=3.32.3.2
     uptime=0 sec.
2021-02-20 15:49:53,412 INFO [client-001] [DataGapFastDetector] [client-001-job-1] Full gap analysis is running
2021-02-20 15:49:53,415 INFO [client-001] [DataGapFastDetector] [client-001-job-1] Querying data in gaps from database took 2 ms
2021-02-20 15:49:53,415 INFO [client-001] [DataGapFastDetector] [client-001-job-1] Full gap analysis is done after 2 ms

服务器端的日志:

s with the first run at 2021-02-20T10:48:27.841+0000
2021-02-20 10:48:18,101 INFO [server-000] [MonitorJob] [symmetric-engine-startup-1] Starting Monitor on periodic schedule: every 60000ms with the first run at 2021-02-20T10:48:27.842+0000
2021-02-20 10:48:18,101 INFO [server-000] [JobManager] [symmetric-engine-startup-1] Job Report Status not configured for auto start
2021-02-20 10:48:18,102 INFO [server-000] [JobManager] [symmetric-engine-startup-1] Job Log Miner not configured for auto start
2021-02-20 10:48:18,102 INFO [server-000] [InitialLoadJob] [symmetric-engine-startup-1] Starting Initial Load Queue on periodic schedule: every 10000ms with the first run at 2021-02-20T10:48:27.843+0000
2021-02-20 10:48:18,104 INFO [server-000] [AbstractSymmetricEngine] [symmetric-engine-startup-1] SymmetricDS Node STARTED:
     nodeId=000
     groupId=server
     type=server
     subType=null
     name=server-000
     softwareVersion=3.12.6
     databaseName=SQLite
     databaseVersion=3.32
     driverName=SQLite JDBC
     driverVersion=3.32.3.2
     uptime=0 sec.
2021-02-20 10:48:27,824 INFO [server-000] [DataService] [server-000-job-1] Inserting missing last data gap: { startId: 1, endId: 50000001, createTime: "Sat Feb 20 10:48:27 UTC 2021" }
2021-02-20 10:48:27,836 INFO [server-000] [DataGapFastDetector] [server-000-job-1] Full gap analysis is running
2021-02-20 10:48:27,837 INFO [server-000] [DataGapFastDetector] [server-000-job-1] Querying data in gaps from database took 0 ms
2021-02-20 10:48:27,838 INFO [server-000] [DataGapFastDetector] [server-000-job-1] Full gap analysis is done after 2 ms
2021-02-20 10:48:27,839 INFO [server-000] [PushHeartbeatListener] [server-000-job-4] Some attribute(s) of node changed.  Recording changes
2021-02-20 10:48:27,840 INFO [server-000] [PushHeartbeatListener] [server-000-job-4] Updating my node configuration info according to the symmetric properties
2021-02-20 10:48:27,858 INFO [server-000] [NodeCommunicationService] [server-000-job-3] pull will use 10 threads
2021-02-20 10:48:33,007 INFO [server-000] [ConfigurationChangedDataRouter] [server-000-job-9] About to refresh the cache of nodes because new configuration came through the data router

为什么客户端没有在服务器端注册?我已经处理了 AWS 提供的公共和私有 IP。理想情况下,使用 AWS 公开端口应该使用安全组本身来完成 - 它没有成功。我错过了什么?

如果我能得到这方面的帮助,我将不胜感激。谢谢你。

标签: amazon-web-servicesdockersqlitesymmetricds

解决方案


服务器端的同步 URL 应与客户端的注册 URL 相同。客户端的两个 URL 似乎具有相同的 IP 地址和端口


推荐阅读