-
Notifications
You must be signed in to change notification settings - Fork 5
add kafka connectiviy guide #360
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
gangtao
wants to merge
1
commit into
main
Choose a base branch
from
doc/kafka-external-stream-connectivity
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
# Kafka External Stream Troubleshooting Guide | ||
|
||
## FAQ: Common Kafka External Stream Issues | ||
|
||
### Q: Why can I list topics but get "Failed to query watermark offsets" when creating external streams? | ||
|
||
**A:** This is typically a network connectivity issue that occurs during external stream creation. While you can list topics (metadata requests), the stream creation process fails when trying to query watermark offsets from partition leaders. | ||
|
||
**Key difference:** | ||
- **Metadata requests** (listing topics): Can be answered by any broker in the cluster | ||
- **Watermark offset queries** (during stream creation): Must connect to the broker that is currently acting as the leader for each partition | ||
|
||
**Example error:** | ||
``` | ||
Failed to create stream 'default.MV_SITE_TELEMETRY_KEYLESS', | ||
error= Code: 1002. DB::Exception: Failed to query watermark offsets | ||
topic=dcentriq.site.telemetry partition=0 error=Local: Timed out in queue. | ||
``` | ||
|
||
**Common scenarios:** | ||
- Private Link configuration issues | ||
- VPN peering problems | ||
- Incorrect port configurations | ||
- Firewall restrictions blocking access to partition leader brokers | ||
- DNS resolution issues for advertised listener addresses | ||
|
||
--- | ||
|
||
### Q: How do I debug Kafka external stream connectivity issues? | ||
|
||
**A:** Follow this step-by-step debugging process: | ||
|
||
#### Step 1: Verify Basic Connectivity | ||
1. **Test topic listing** (metadata request): | ||
- If this works, you can connect to at least one broker in the cluster | ||
- Any Kafka broker can answer metadata requests about cluster state | ||
- If this fails, check basic network connectivity and authentication | ||
|
||
**Using kcat:** | ||
```bash | ||
# List topics | ||
kcat -L -b <your-kafka-broker> | ||
``` | ||
|
||
**Using rpk for RedPanda clusters:** | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. use official product name |
||
```bash | ||
# List topics | ||
rpk topic list --brokers <broker-address> | ||
``` | ||
|
||
#### Step 2: Test Consumer Connectivity | ||
2. **Use kcat for debugging**: | ||
```bash | ||
# Test consuming from the topic | ||
kcat -C -b <your-kafka-broker> -t <topic-name> -p 0 -o beginning -e | ||
``` | ||
|
||
3. **Use rpk for RedPanda clusters**: | ||
```bash | ||
# Test topic consumption | ||
rpk topic consume <topic-name> --brokers <broker-address> | ||
``` | ||
|
||
#### Step 3: Check Multi-Broker Connectivity | ||
4. **Verify access to partition leaders**: | ||
- Kafka clients need to maintain connections to multiple brokers | ||
- Data is partitioned, so clients must talk to the broker hosting their data | ||
- Check that you can reach all brokers that host partitions for your topics | ||
|
||
#### Step 4: Common Network Issues to Check | ||
- **Private Link vs VPN Peering**: Ensure consistent network routing | ||
- **Port access**: Verify all required Kafka ports are accessible | ||
- **Security groups/firewalls**: Check both source and destination rules | ||
- **DNS resolution**: Ensure broker hostnames resolve correctly | ||
|
||
--- | ||
|
||
## Keywords | ||
`kafka external stream`, `network connectivity`, `watermark offsets`, `troubleshooting` |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
use
{#name}
syntax to create more readable section name. Same suggestion for rest of the h2/h3 headers