You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by aa...@apache.org on 2023/03/06 04:54:44 UTC
[rocketmq-clients] 03/05: Allow user to disable TLS
This is an automated email from the ASF dual-hosted git repository.
aaronai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/rocketmq-clients.git
commit 0a02f18a7d7da2f27c8a0ca3e8ad131fade5dfb1
Author: Aaron Ai <ya...@gmail.com>
AuthorDate: Mon Mar 6 10:53:18 2023 +0800
Allow user to disable TLS
---
csharp/README.md | 2 +-
csharp/examples/ProducerBenchmark.cs | 2 +-
csharp/examples/ProducerNormalMessageExample.cs | 10 +++++++--
csharp/examples/QuickStart.cs | 6 +++---
csharp/rocketmq-client-csharp/ClientConfig.cs | 15 ++++++++++++--
csharp/rocketmq-client-csharp/ClientManager.cs | 4 ++--
.../rocketmq-client-csharp/ClientMeterManager.cs | 2 +-
csharp/rocketmq-client-csharp/Endpoints.cs | 23 ++++++++++++---------
csharp/rocketmq-client-csharp/RpcClient.cs | 4 ++--
csharp/rocketmq-client-csharp/logo.png | Bin 0 -> 83556 bytes
.../rocketmq-client-csharp.csproj | 7 ++++++-
11 files changed, 50 insertions(+), 25 deletions(-)
diff --git a/csharp/README.md b/csharp/README.md
index 3de6bc65..d536cfb8 100644
--- a/csharp/README.md
+++ b/csharp/README.md
@@ -18,7 +18,7 @@ The client would be developed using the protocols outlined in [rocketmq-apis](ht
dotnet add package RocketMQ.Client
```
-You can obtain the latest version of `RocketMQ.Client` from [NuGet Gallery](https://www.nuget.org/packages/RocketMQ.Client). To assist with getting started quickly and working with various message types and clients, we offer examples [here](./examples) here.
+You can obtain the latest version of `RocketMQ.Client` from [NuGet Gallery](https://www.nuget.org/packages/RocketMQ.Client). To assist with getting started quickly and working with various message types and clients, we offer examples [here](./examples).
## Build
diff --git a/csharp/examples/ProducerBenchmark.cs b/csharp/examples/ProducerBenchmark.cs
index 50559e31..fc8d3b98 100644
--- a/csharp/examples/ProducerBenchmark.cs
+++ b/csharp/examples/ProducerBenchmark.cs
@@ -91,7 +91,7 @@ namespace examples
var tasks = new List<Task>();
while (true)
{
- Semaphore.Wait();
+ await Semaphore.WaitAsync();
Interlocked.Increment(ref _counter);
var task = producer.Send(message);
tasks.Add(task);
diff --git a/csharp/examples/ProducerNormalMessageExample.cs b/csharp/examples/ProducerNormalMessageExample.cs
index aad9fc56..7cd3fabb 100644
--- a/csharp/examples/ProducerNormalMessageExample.cs
+++ b/csharp/examples/ProducerNormalMessageExample.cs
@@ -15,6 +15,7 @@
* limitations under the License.
*/
+using System;
using System.Text;
using System.Threading.Tasks;
using NLog;
@@ -60,8 +61,13 @@ namespace examples
.SetKeys("yourMessageKey-7044358f98fc")
.Build();
- var sendReceipt = await producer.Send(message);
- Logger.Info($"Send message successfully, sendReceipt={sendReceipt}");
+ for (int i = 0; i < 99999999; i++)
+ {
+ var sendReceipt = await producer.Send(message);
+ Logger.Info($"Send message successfully, sendReceipt={sendReceipt}");
+ await Task.Delay(TimeSpan.FromSeconds(1));
+ }
+
// Or you could close the producer manually.
// await producer.DisposeAsync();
}
diff --git a/csharp/examples/QuickStart.cs b/csharp/examples/QuickStart.cs
index 174fccd2..d9730cff 100644
--- a/csharp/examples/QuickStart.cs
+++ b/csharp/examples/QuickStart.cs
@@ -22,9 +22,9 @@ namespace examples
public static void Main()
{
ProducerNormalMessageExample.QuickStart().Wait();
- // await ProducerFifoMessageExample.QuickStart();
- // await ProducerDelayMessageExample.QuickStart();
- // await SimpleConsumerExample.QuickStart();
+ // ProducerFifoMessageExample.QuickStart().Wait();
+ // ProducerDelayMessageExample.QuickStart().Wait();
+ // SimpleConsumerExample.QuickStart().Wait();
// ProducerBenchmark.QuickStart().Wait();
}
}
diff --git a/csharp/rocketmq-client-csharp/ClientConfig.cs b/csharp/rocketmq-client-csharp/ClientConfig.cs
index dc73b2da..609ad1d7 100644
--- a/csharp/rocketmq-client-csharp/ClientConfig.cs
+++ b/csharp/rocketmq-client-csharp/ClientConfig.cs
@@ -21,11 +21,13 @@ namespace Org.Apache.Rocketmq
{
public class ClientConfig : IClientConfig
{
- private ClientConfig(ISessionCredentialsProvider sessionCredentialsProvider, TimeSpan requestTimeout, string endpoints)
+ private ClientConfig(ISessionCredentialsProvider sessionCredentialsProvider, TimeSpan requestTimeout,
+ string endpoints, bool sslEnabled)
{
SessionCredentialsProvider = sessionCredentialsProvider;
RequestTimeout = requestTimeout;
Endpoints = endpoints;
+ SslEnabled = sslEnabled;
}
public ISessionCredentialsProvider SessionCredentialsProvider { get; }
@@ -34,11 +36,14 @@ namespace Org.Apache.Rocketmq
public string Endpoints { get; }
+ public bool SslEnabled { get; }
+
public class Builder
{
private ISessionCredentialsProvider _sessionCredentialsProvider;
private TimeSpan _requestTimeout = TimeSpan.FromSeconds(3);
private string _endpoints;
+ private bool _sslEnabled;
public Builder SetCredentialsProvider(ISessionCredentialsProvider sessionCredentialsProvider)
{
@@ -58,9 +63,15 @@ namespace Org.Apache.Rocketmq
return this;
}
+ public Builder EnableSsl(bool sslEnabled)
+ {
+ _sslEnabled = sslEnabled;
+ return this;
+ }
+
public ClientConfig Build()
{
- return new ClientConfig(_sessionCredentialsProvider, _requestTimeout, _endpoints);
+ return new ClientConfig(_sessionCredentialsProvider, _requestTimeout, _endpoints, _sslEnabled);
}
}
}
diff --git a/csharp/rocketmq-client-csharp/ClientManager.cs b/csharp/rocketmq-client-csharp/ClientManager.cs
index da46af30..498beef8 100644
--- a/csharp/rocketmq-client-csharp/ClientManager.cs
+++ b/csharp/rocketmq-client-csharp/ClientManager.cs
@@ -20,7 +20,7 @@ using System;
using System.Threading;
using System.Threading.Tasks;
using grpc = Grpc.Core;
-using System.Collections.Generic;
+using System.Collections.Generic;
namespace Org.Apache.Rocketmq
{
@@ -63,7 +63,7 @@ namespace Org.Apache.Rocketmq
}
// client does not exist, generate a new one
- var client = new RpcClient(endpoints);
+ var client = new RpcClient(endpoints, _client.GetClientConfig().SslEnabled);
_rpcClients.Add(endpoints, client);
return client;
}
diff --git a/csharp/rocketmq-client-csharp/ClientMeterManager.cs b/csharp/rocketmq-client-csharp/ClientMeterManager.cs
index 67801335..e8eed8d8 100644
--- a/csharp/rocketmq-client-csharp/ClientMeterManager.cs
+++ b/csharp/rocketmq-client-csharp/ClientMeterManager.cs
@@ -80,7 +80,7 @@ namespace Org.Apache.Rocketmq
.AddOtlpExporter(delegate(OtlpExporterOptions options, MetricReaderOptions readerOptions)
{
options.Protocol = OtlpExportProtocol.Grpc;
- options.Endpoint = new Uri(metric.Endpoints.GrpcTarget);
+ options.Endpoint = new Uri(metric.Endpoints.GrpcTarget(_client.GetClientConfig().SslEnabled));
options.TimeoutMilliseconds = (int)_client.GetClientConfig().RequestTimeout.TotalMilliseconds;
options.HttpClientFactory = () => _httpClient;
readerOptions.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds =
diff --git a/csharp/rocketmq-client-csharp/Endpoints.cs b/csharp/rocketmq-client-csharp/Endpoints.cs
index 27130a33..8d560494 100644
--- a/csharp/rocketmq-client-csharp/Endpoints.cs
+++ b/csharp/rocketmq-client-csharp/Endpoints.cs
@@ -118,21 +118,24 @@ namespace Org.Apache.Rocketmq
public override string ToString()
{
- return GrpcTarget;
+ foreach (var address in Addresses)
+ {
+ return address.Host + EndpointSeparator + address.Port;
+ }
+
+ throw new ArgumentException("No available address");
}
- // TODO: Support non-TLS and multiple addresses.
- public string GrpcTarget
+ // TODO: Support multiple addresses.
+ public string GrpcTarget(bool sslEnabled)
{
- get
+ var prefix = sslEnabled ? HttpsPrefix : HttpPrefix;
+ foreach (var address in Addresses)
{
- foreach (var address in Addresses)
- {
- return HttpsPrefix + address.Host + EndpointSeparator + address.Port;
- }
-
- return "";
+ return prefix + address.Host + EndpointSeparator + address.Port;
}
+
+ throw new ArgumentException("No available address");
}
public bool Equals(Endpoints other)
diff --git a/csharp/rocketmq-client-csharp/RpcClient.cs b/csharp/rocketmq-client-csharp/RpcClient.cs
index 47db6830..e4c230b2 100644
--- a/csharp/rocketmq-client-csharp/RpcClient.cs
+++ b/csharp/rocketmq-client-csharp/RpcClient.cs
@@ -36,9 +36,9 @@ namespace Org.Apache.Rocketmq
private readonly GrpcChannel _channel;
private readonly string _target;
- public RpcClient(Endpoints endpoints)
+ public RpcClient(Endpoints endpoints, bool sslEnabled)
{
- _target = endpoints.GrpcTarget;
+ _target = endpoints.GrpcTarget(sslEnabled);
_channel = GrpcChannel.ForAddress(_target, new GrpcChannelOptions
{
HttpHandler = CreateHttpHandler()
diff --git a/csharp/rocketmq-client-csharp/logo.png b/csharp/rocketmq-client-csharp/logo.png
new file mode 100644
index 00000000..9ba4581d
Binary files /dev/null and b/csharp/rocketmq-client-csharp/logo.png differ
diff --git a/csharp/rocketmq-client-csharp/rocketmq-client-csharp.csproj b/csharp/rocketmq-client-csharp/rocketmq-client-csharp.csproj
index ab50f685..94c2d718 100644
--- a/csharp/rocketmq-client-csharp/rocketmq-client-csharp.csproj
+++ b/csharp/rocketmq-client-csharp/rocketmq-client-csharp.csproj
@@ -14,7 +14,8 @@
<Description>.NET Client for Apache RocketMQ</Description>
<PackageProjectUrl>https://github.com/apache/rocketmq-clients</PackageProjectUrl>
<RepositoryUrl>https://github.com/apache/rocketmq-clients</RepositoryUrl>
- <PackageVersion>0.0.3-SNAPSHOT</PackageVersion>
+ <PackageVersion>0.0.6-SNAPSHOT</PackageVersion>
+ <PackageIcon>logo.png</PackageIcon>
</PropertyGroup>
<ItemGroup>
@@ -40,6 +41,10 @@
<Link>Protos\google\rpc\status.proto</Link>
<Link>Protos\google\rpc\error_details.proto</Link>
</Protobuf>
+ <None Update="logo.png">
+ <Pack>True</Pack>
+ <PackagePath></PackagePath>
+ </None>
</ItemGroup>
<ItemGroup>