You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by di...@apache.org on 2022/08/01 07:46:57 UTC

[rocketmq-mqtt] branch main updated: use openssl provider instead of jdk provider to improve performance (#123)

This is an automated email from the ASF dual-hosted git repository.

dinglei pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/rocketmq-mqtt.git


The following commit(s) were added to refs/heads/main by this push:
     new 070554f  use openssl provider instead of jdk provider to improve performance (#123)
070554f is described below

commit 070554f25640b456a719d242d72c456a627b69c8
Author: ChangingFond <fa...@xiaomi.com>
AuthorDate: Mon Aug 1 15:46:52 2022 +0800

    use openssl provider instead of jdk provider to improve performance (#123)
    
    * use openssl provider instead of jdk provider to improve performance
    
    * judge openssl if avaliable & remove inessential netty dependency
---
 .../java/org/apache/rocketmq/mqtt/cs/protocol/ssl/SslFactory.java    | 3 ++-
 pom.xml                                                              | 5 +++++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/mqtt-cs/src/main/java/org/apache/rocketmq/mqtt/cs/protocol/ssl/SslFactory.java b/mqtt-cs/src/main/java/org/apache/rocketmq/mqtt/cs/protocol/ssl/SslFactory.java
index c869acf..2d9a315 100644
--- a/mqtt-cs/src/main/java/org/apache/rocketmq/mqtt/cs/protocol/ssl/SslFactory.java
+++ b/mqtt-cs/src/main/java/org/apache/rocketmq/mqtt/cs/protocol/ssl/SslFactory.java
@@ -19,6 +19,7 @@ package org.apache.rocketmq.mqtt.cs.protocol.ssl;
 
 import io.netty.channel.socket.SocketChannel;
 import io.netty.handler.ssl.ClientAuth;
+import io.netty.handler.ssl.OpenSsl;
 import io.netty.handler.ssl.SslContext;
 import io.netty.handler.ssl.SslContextBuilder;
 import io.netty.handler.ssl.SslProvider;
@@ -59,7 +60,7 @@ public class SslFactory {
             InputStream keyStream = new ClassPathResource(KEY_FILE_NAME).getInputStream();
             SslContextBuilder contextBuilder = SslContextBuilder.forServer(certStream, keyStream);
             contextBuilder.clientAuth(ClientAuth.OPTIONAL);
-            contextBuilder.sslProvider(SslProvider.JDK);
+            contextBuilder.sslProvider(OpenSsl.isAvailable() ? SslProvider.OPENSSL : SslProvider.JDK);
             if (connectConf.isNeedClientAuth()) {
                 LOG.info("client tls authentication is required.");
                 contextBuilder.clientAuth(ClientAuth.REQUIRE);
diff --git a/pom.xml b/pom.xml
index 7f02c00..71809d7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -60,6 +60,11 @@
                 <artifactId>netty-all</artifactId>
                 <version>4.1.43.Final</version>
             </dependency>
+            <dependency>
+                <groupId>io.netty</groupId>
+                <artifactId>netty-tcnative-boringssl-static</artifactId>
+                <version>2.0.26.Final</version>
+            </dependency>
             <dependency>
                 <groupId>org.springframework</groupId>
                 <artifactId>spring-core</artifactId>