justinwwhuang commented on code in PR #10801:
URL: https://github.com/apache/inlong/pull/10801#discussion_r1740891986
##########
inlong-agent/agent-plugins/src/main/java/org/apache/inlong/agent/plugin/sources/RedisSource.java:
##########
@@ -84,6 +182,96 @@ public boolean sourceFinish() {
@Override
public boolean sourceExist() {
- return false;
+ return true;
+ }
+
+ private String getRedisUri() {
+ StringBuffer sb = new StringBuffer("redis://");
+ sb.append(hostName).append(":").append(port);
+ if (!StringUtils.isEmpty(dbNumber)) {
+ sb.append("/").append(dbNumber);
+ }
+ sb.append("?");
+ if (!StringUtils.isEmpty(authPassword)) {
+ sb.append("authPassword=").append(authPassword).append("&");
+ }
+ if (!StringUtils.isEmpty(authUser)) {
+ sb.append("authUser=").append(authUser).append("&");
+ }
+ if (!StringUtils.isEmpty(readTimeout)) {
+ sb.append("readTimeout=").append(readTimeout).append("&");
+ }
+ if (ssl) {
+ sb.append("ssl=").append("yes").append("&");
+ }
+ if (!StringUtils.isEmpty(snapShot)) {
+ sb.append("replOffset=").append(snapShot).append("&");
+ }
+ if (!StringUtils.isEmpty(replId)) {
+ sb.append("replId=").append(replId).append("&");
+ }
+ if (sb.charAt(sb.length() - 1) == '?' || sb.charAt(sb.length() - 1) ==
'&') {
+ sb.deleteCharAt(sb.length() - 1);
+ }
+ return sb.toString();
+ }
+
+ private void initReplicator() {
+ redisReplicator.addEventListener((replicator, event) -> {
Review Comment:
> > > i fix it as obtaining data by Jedis through commands first, then use
RedisReplicator to subscribe event and filtering data by command, is that
correct ?
> >
> >
> >
> > 1. We don't necessarily mean to collect all the data from the entire
Redis cluster. Your implementation here has always wanted to collect all the
data? From the earliest subscription to scanning all keys now.
> > 2. The reids command is not used as a filter, it is a different
collection method from subscription. Remember, there should be no filtering
logic.
>
> then I feel like we don't need jedis at all, we can just get the data we
need from subscribed events in redis replicator, Debezium does this for data
capture and synchronization of databases too
No, I hope to support data retrieval without subscription, only through
Redis commands.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]