技术选型
springboot + dubboX +zookeeper +mybatis-plus
架构
出现的问题:
2023-08-16 20:58:22.986 ERROR 25472 --- [ main] o.a.d.c.deploy.DefaultModuleDeployer : [DUBBO] Model start failed: Dubbo Module[1.1.1] start failed: java.lang.StackOverflowError, dubbo version: 3.2.0-beta.4, current host: 26.147.92.46, error code: 5-14. This may be caused by , go to https://dubbo.apache.org/faq/5/14 to find instructions.
java.lang.StackOverflowError: null
at java.util.HashMap.hash(HashMap.java:340) ~[na:1.8.0_362]
at java.util.HashMap.containsKey(HashMap.java:597) ~[na:1.8.0_362]
at java.util.HashSet.contains(HashSet.java:204) ~[na:1.8.0_362]
at org.apache.dubbo.common.utils.SerializeSecurityManager.checkClass(SerializeSecurityManager.java:153) ~[dubbo-3.2.0-beta.4.jar:3.2.0-beta.4]
at org.apache.dubbo.common.utils.SerializeSecurityManager.checkType(SerializeSecurityManager.java:126) ~[dubbo-3.2.0-beta.4.jar:3.2.0-beta.4]
at org.apache.dubbo.common.utils.SerializeSecurityManager.checkType(SerializeSecurityManager.java:139) ~[dubbo-3.2.0-beta.4.jar:3.2.0-beta.4]
at org.apache.dubbo.common.utils.SerializeSecurityManager.checkType(SerializeSecurityManager.java:131) ~[dubbo-3.2.0-beta.4.jar:3.2.0-beta.4]
at org.apache.dubbo.common.utils.SerializeSecurityManager.checkType(SerializeSecurityManager.java:139) ~[dubbo-3.2.0-beta.4.jar:3.2.0-beta.4]
at org.apache.dubbo.common.utils.SerializeSecurityManager.checkType(SerializeSecurityManager.java:131) ~[dubbo-3.2.0-beta.4.jar:3.2.0-beta.4]
at org.apache.dubbo.common.utils.SerializeSecurityManager.checkType(SerializeSecurityManager.java:139) ~[dubbo-3.2.0-beta.4.jar:3.2.0-beta.4]
at org.apache.dubbo.common.utils.SerializeSecurityManager.checkType(SerializeSecurityManager.java:131) ~[dubbo-3.2.0-beta.4.jar:3.2.0-beta.4]
at org.apache.dubbo.common.utils.SerializeSecurityManager.checkType(SerializeSecurityManager.java:139) ~[dubbo-3.2.0-beta.4.jar:3.2.0-beta.4]
at org.apache.dubbo.common.utils.SerializeSecurityManager.checkType(Serializ
java.lang.StackOverflowError: null
at java.util.HashMap.hash(HashMap.java:340) ~[na:1.8.0_362]
at java.util.HashMap.containsKey(HashMap.java:597) ~[na:1.8.0_362]
at java.util.HashSet.contains(HashSet.java:204) ~[na:1.8.0_362]
at org.apache.dubbo.common.utils.SerializeSecurityManager.checkClass(SerializeSecurityManager.java:153) ~[dubbo-3.2.0-beta.4.jar:3.2.0-beta.4]
at
思考
依赖问题:
技术选型:dubbo+zookeeper为3.0版本以上也就是DubboX
父类依赖
<properties>
<dubbo.version>3.2.0-beta.4</dubbo.version>
<spring-boot.version>2.3.4.RELEASE</spring-boot.version>
</properties>
<dependencyManagement>
<dependencies>
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Dubbo -->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-bom</artifactId>
<version>${dubbo.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
<version>${dubbo.version}</version>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
生产者provide
<dependencies>
<dependency>
<groupId>com.atdession</groupId>
<artifactId>dubbo-springboot-demo-interface</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- dubbo -->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
<type>pom</type>
<exclusions>
<exclusion>
<artifactId>slf4j-reload4j</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
<exclusion>
<artifactId>slf4j-log4j12</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- spring boot starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>
消费者
<dependencies>
<dependency>
<groupId>com.atdession</groupId>
<artifactId>dubbo-springboot-demo-interface</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- dubbo -->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
<type>pom</type>
<exclusions>
<exclusion>
<artifactId>slf4j-reload4j</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
<exclusion>
<artifactId>slf4j-log4j12</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- spring boot starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>
以上是3.0版本的dubboX,思考是否是依赖过于新颖,所以,我就将dubbo+zookeeper改为了2.7
解决
生产者
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper</artifactId>
<version>2.7.4.1</version>
<type>pom</type>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- dubbo 2.7.x引入-->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.4.1</version>
</dependency>
消费者
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper</artifactId>
<version>2.7.4.1</version>
<type>pom</type>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- dubbo 2.7.x引入-->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.4.1</version>
</dependency>
发现问题被解决!!!!!!
总结
因为我使用的DubboX+zookeeper组合。也就是所使用的Dubbo3.0版本的,所以出现的上面的问题,因为dubbo3.0以上的版本还不稳定,出现了很多bug,所以我将技术选型的Dubbo+zookeeper 换到了2.7.4.1版本问题就被解决了,就是因为版本过高出现的jar包依赖问题。所以还是尽量使用低版本吧。
扫描二维码关注公众号,回复:
16977860 查看本文章