Skip to content

feat!: supports multi endpoints#46

Merged
killme2008 merged 2 commits intomainfrom
feat/multi-endpoints
Apr 21, 2026
Merged

feat!: supports multi endpoints#46
killme2008 merged 2 commits intomainfrom
feat/multi-endpoints

Conversation

@killme2008
Copy link
Copy Markdown
Member

@killme2008 killme2008 commented Apr 21, 2026

As the title said.

Close #45

Breaking changes:

  • .NET 6.0 and 7.0 support removed.

Signed-off-by: Dennis Zhuang <killme2008@gmail.com>
@killme2008 killme2008 requested a review from Copilot April 21, 2026 06:43
@github-actions github-actions Bot added documentation Improvements or additions to documentation dependencies Pull requests that update a dependency file build source tests labels Apr 21, 2026
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds multi-endpoint support to the GreptimeDB .NET ingester client, enabling client-side round-robin load balancing and failover across multiple GreptimeDB endpoints (closes #45).

Changes:

  • Introduce GreptimeClientOptions.Endpoints (multi-endpoint) and deprecate the single Endpoint property with fallback behavior.
  • Build gRPC channels using Grpc.Net.Client.Balancer with a static resolver + round-robin config when multiple endpoints are provided.
  • Drop net6.0/net7.0 TFMs, update docs/examples, and add unit tests for option validation/resolution.

Reviewed changes

Copilot reviewed 18 out of 18 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tests/GreptimeDB.Ingester.Tests/GreptimeClientOptionsTests.cs Adds unit coverage for endpoint list resolution and validation rules.
tests/GreptimeDB.Ingester.IntegrationTests/StreamIngestWriterIntegrationTests.cs Updates integration setup to use Endpoints instead of deprecated Endpoint.
tests/GreptimeDB.Ingester.IntegrationTests/GreptimeClientTests.cs Updates integration setup to use Endpoints.
tests/GreptimeDB.Ingester.IntegrationTests/BulkWriterIntegrationTests.cs Updates integration setup to use Endpoints.
src/GreptimeDB.Ingester/GreptimeDB.Ingester.csproj Adds DI package needed to construct a ServiceCollection for resolver services.
src/GreptimeDB.Ingester/Client/StreamIngestWriter.cs Simplifies disposed checks now that minimum TFM is newer.
src/GreptimeDB.Ingester/Client/StaticResolverFactory.cs Adds static resolver factory to feed fixed addresses to the gRPC balancer.
src/GreptimeDB.Ingester/Client/GreptimeClientOptions.cs Adds Endpoints, deprecates Endpoint, and implements resolution/validation logic.
src/GreptimeDB.Ingester/Client/GreptimeClient.cs Creates balanced gRPC channels for multiple endpoints and disposes associated service provider.
src/GreptimeDB.Ingester/Client/BulkWriter.cs Simplifies disposed checks (min TFM update).
src/GreptimeDB.Ingester/Arrow/RecordBatchBuilder.cs Simplifies disposed checks (min TFM update).
examples/quick-test.cs Updates sample to use Endpoints.
examples/benchmark.cs Updates sample to use Endpoints.
README.md Updates documentation snippets to use Endpoints and DI examples accordingly.
Directory.Packages.props Adds centralized package version for Microsoft.Extensions.DependencyInjection.
Directory.Build.props Drops net6.0/net7.0 target frameworks.
CHANGELOG.md Adds changelog documenting multi-endpoint support + breaking TFM change + deprecation.
.github/workflows/ci.yml Removes net6/net7 compatibility job and updates integration-test job dependency chain.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/GreptimeDB.Ingester/Client/GreptimeClientOptions.cs Outdated
Comment thread src/GreptimeDB.Ingester/Client/GreptimeClientOptions.cs
Signed-off-by: Dennis Zhuang <killme2008@gmail.com>
@killme2008 killme2008 requested a review from Copilot April 21, 2026 07:04
@killme2008 killme2008 changed the title feat: supports multi endpoints feat!: supports multi endpoints Apr 21, 2026
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 19 out of 19 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/GreptimeDB.Ingester/Client/GreptimeClient.cs
Comment thread src/GreptimeDB.Ingester/Client/RandomBalancer.cs
@killme2008 killme2008 merged commit 778bb40 into main Apr 21, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation source tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support multiple endpoints

2 participants