diff --git a/spring-cloud-alibaba-coverage/pom.xml b/spring-cloud-alibaba-coverage/pom.xml
index 6a0b650b6a..8279e00417 100644
--- a/spring-cloud-alibaba-coverage/pom.xml
+++ b/spring-cloud-alibaba-coverage/pom.xml
@@ -70,6 +70,12 @@
${revision}
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-rpc
+ ${revision}
+
+
diff --git a/spring-cloud-alibaba-dependencies/pom.xml b/spring-cloud-alibaba-dependencies/pom.xml
index 432cb95a98..780e36597a 100644
--- a/spring-cloud-alibaba-dependencies/pom.xml
+++ b/spring-cloud-alibaba-dependencies/pom.xml
@@ -29,11 +29,16 @@
4.23.01.11.4
+
+ 3.3.0-beta.4
+
3.2.13.2.03.0.11.2.7
+
+
@@ -186,6 +191,12 @@
schedulerx2-worker${schedulerx.worker.version}
+
+
+ org.apache.dubbo
+ dubbo-remoting-netty4
+ ${dubbo.version}
+
@@ -265,7 +276,19 @@
spring-cloud-starter-alibaba-schedulerx${revision}
-
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-rpc
+ ${revision}
+
+
+
+
+ org.springframework.ai
+ spring-ai-test
+ ${spring.ai.version}
+ test
+
diff --git a/spring-cloud-alibaba-starters/pom.xml b/spring-cloud-alibaba-starters/pom.xml
index 3414d035e2..cc7edeb22d 100644
--- a/spring-cloud-alibaba-starters/pom.xml
+++ b/spring-cloud-alibaba-starters/pom.xml
@@ -13,7 +13,7 @@
pomSpring Cloud Alibaba StartersSpring Cloud Alibaba Starters
-
+
spring-alibaba-nacos-config
@@ -29,6 +29,7 @@
spring-cloud-alibaba-sentinel-gatewayspring-cloud-alibaba-commonsspring-cloud-starter-alibaba-schedulerx
+ spring-cloud-starter-alibaba-rpc
@@ -55,4 +56,4 @@
-
\ No newline at end of file
+
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-rpc/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-rpc/pom.xml
new file mode 100644
index 0000000000..1b3c26123a
--- /dev/null
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-rpc/pom.xml
@@ -0,0 +1,52 @@
+
+ 4.0.0
+
+ com.alibaba.cloud
+ spring-cloud-alibaba-starters
+ ${revision}
+ ../pom.xml
+
+
+ spring-cloud-starter-alibaba-rpc
+ Spring Cloud Starter Alibaba Rpc
+
+
+
+ org.springframework.boot
+ spring-boot-starter
+ true
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ org.apache.dubbo
+ dubbo-remoting-netty4
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+ org.springframework.cloud
+ spring-cloud-starter-loadbalancer
+
+
+
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-rpc/src/main/java/com/alibaba/cloud/rpc/RpcConfiguration.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-rpc/src/main/java/com/alibaba/cloud/rpc/RpcConfiguration.java
new file mode 100644
index 0000000000..bf4926ad93
--- /dev/null
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-rpc/src/main/java/com/alibaba/cloud/rpc/RpcConfiguration.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2013-2023 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.alibaba.cloud.rpc;
+
+import com.alibaba.cloud.rpc.utils.UrlResolver;
+
+import org.springframework.boot.autoconfigure.AutoConfiguration;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+
+
+/**
+ * @author :Lictory
+ * @date : 2024/09/27
+ */
+
+@AutoConfiguration
+@ConditionalOnProperty(prefix = RpcProperties.PREFIX, name = "enabled", havingValue = "true", matchIfMissing = true)
+@EnableConfigurationProperties(RpcProperties.class)
+public class RpcConfiguration {
+ @Bean
+ @ConditionalOnMissingBean
+ public RpcProperties rpcProperties() {
+ return new RpcProperties();
+ }
+
+
+ @Bean
+ @ConditionalOnMissingBean
+ public UrlResolver initUrlResolver() {
+ return new UrlResolver();
+ }
+
+}
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-rpc/src/main/java/com/alibaba/cloud/rpc/RpcProperties.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-rpc/src/main/java/com/alibaba/cloud/rpc/RpcProperties.java
new file mode 100644
index 0000000000..9d16dcfc03
--- /dev/null
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-rpc/src/main/java/com/alibaba/cloud/rpc/RpcProperties.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2013-2023 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.alibaba.cloud.rpc;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * @author :Lictory
+ * @date : 2024/09/27
+ */
+@ConfigurationProperties("spring.cloud.rpc.netty")
+public class RpcProperties {
+
+ /**
+ * config prefix.
+ */
+ public static final String PREFIX = "spring.cloud.rpc";
+
+ /**
+ * prefix of netty port.
+ */
+ public static final String NETTY_PORT_PREFIX = "spring.cloud.rpc.netty.port";
+
+ /**
+ * prefix of netty host.
+ */
+ public static final String HOST_PREFIX = "spring.cloud.rpc.netty.host";
+
+ private Integer port;
+ private String host;
+
+ public Integer getPort() {
+ return port;
+ }
+
+ public String getHost() {
+ return host;
+ }
+
+ public void setPort(Integer port) {
+ this.port = port;
+ }
+
+ public void setHost(String host) {
+ this.host = host;
+ }
+}
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-rpc/src/main/java/com/alibaba/cloud/rpc/client/FeignRpcClient.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-rpc/src/main/java/com/alibaba/cloud/rpc/client/FeignRpcClient.java
new file mode 100644
index 0000000000..50f7c3d148
--- /dev/null
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-rpc/src/main/java/com/alibaba/cloud/rpc/client/FeignRpcClient.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2013-2023 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.alibaba.cloud.rpc.client;
+
+import java.util.Collection;
+import java.util.Map;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+import com.alibaba.cloud.rpc.metadata.HttpMetadata;
+import com.alibaba.cloud.rpc.metadata.HttpRpcResponse;
+import com.alibaba.cloud.rpc.utils.UrlResolver;
+import feign.Client;
+import feign.Request;
+import feign.Response;
+import org.apache.dubbo.remoting.RemotingException;
+import org.apache.dubbo.remoting.exchange.ExchangeClient;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author :Lictory
+ * @date : 2024/08/12
+ */
+
+@Component
+public class FeignRpcClient implements Client {
+ @Autowired
+ private LoadBalancerClient loadBalancerClient;
+ private ExchangeClient client;
+
+ @Autowired
+ private UrlResolver urlResolver;
+
+ @Override
+ public Response execute(Request request, Request.Options options) {
+ String url = urlResolver.resolveOriginalUrl(loadBalancerClient, request.url());
+ this.client = urlResolver.getClient(url);
+ HttpMetadata httpMetadata = initHttpMetadata(
+ urlResolver.getPathFromUrl(request.url()),
+ request.httpMethod().name(),
+ request.headers(),
+ request.body()
+ );
+ HttpRpcResponse httpRpcResponse = null;
+ try {
+ CompletableFuture
-
\ No newline at end of file
+
diff --git a/spring-cloud-alibaba-tests/rpc-tests/pom.xml b/spring-cloud-alibaba-tests/rpc-tests/pom.xml
new file mode 100644
index 0000000000..153f44d927
--- /dev/null
+++ b/spring-cloud-alibaba-tests/rpc-tests/pom.xml
@@ -0,0 +1,19 @@
+
+
+ 4.0.0
+
+ com.alibaba.cloud
+ spring-cloud-alibaba-tests
+ ${revision}
+
+ rpc-tests
+ pom
+ RPC Tests
+
+ spring-cloud-alibaba-rpc-consumer
+ spring-cloud-alibaba-rpc-provider
+ spring-cloud-alibaba-rpc-api
+
+
diff --git a/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-api/pom.xml b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-api/pom.xml
new file mode 100644
index 0000000000..50dd0a91e7
--- /dev/null
+++ b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-api/pom.xml
@@ -0,0 +1,19 @@
+
+
+ 4.0.0
+
+ com.alibaba.cloud
+ rpc-tests
+ ${revision}
+
+
+ spring-cloud-alibaba-rpc-api
+
+
+ org.springframework.cloud
+ spring-cloud-openfeign-core
+
+
+
diff --git a/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-api/src/main/java/com/alibaba/api/ProviderService.java b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-api/src/main/java/com/alibaba/api/ProviderService.java
new file mode 100644
index 0000000000..4dc5e897c2
--- /dev/null
+++ b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-api/src/main/java/com/alibaba/api/ProviderService.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2013-2023 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.alibaba.api;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+
+/**
+ * @author :Lictory
+ */
+@FeignClient("provider")
+public interface ProviderService {
+ /**
+ * string test.
+ *
+ * @return string
+ */
+ @GetMapping("/api/get")
+ String hi();
+
+ /**
+ * post test.
+ *
+ * @param userId id
+ */
+ @PostMapping("/api/post/{userId}")
+ void post(@PathVariable("userId") Integer userId);
+}
diff --git a/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-consumer/pom.xml b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-consumer/pom.xml
new file mode 100644
index 0000000000..35bc36ae0f
--- /dev/null
+++ b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-consumer/pom.xml
@@ -0,0 +1,26 @@
+
+
+ 4.0.0
+
+ com.alibaba.cloud
+ rpc-tests
+ ${revision}
+
+
+ spring-cloud-alibaba-rpc-consumer
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-rpc
+ ${revision}
+
+
+ com.alibaba.cloud
+ spring-cloud-alibaba-rpc-api
+ ${revision}
+
+
+
+
diff --git a/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-consumer/src/main/java/com/alibaba/dubbo/consumer/ConsumerApplication.java b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-consumer/src/main/java/com/alibaba/dubbo/consumer/ConsumerApplication.java
new file mode 100644
index 0000000000..78e3ab3e4d
--- /dev/null
+++ b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-consumer/src/main/java/com/alibaba/dubbo/consumer/ConsumerApplication.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2013-2023 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.alibaba.dubbo.consumer;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+
+/**
+ * @author :Lictory
+ * @date : 2024/08/01
+ */
+
+@SpringBootApplication
+@EnableFeignClients
+@EnableDiscoveryClient
+@ComponentScan(basePackages = {"com.alibaba.api"})
+public class ConsumerApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(ConsumerApplication.class, args);
+ }
+}
diff --git a/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-consumer/src/main/java/com/alibaba/dubbo/consumer/service/TestService.java b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-consumer/src/main/java/com/alibaba/dubbo/consumer/service/TestService.java
new file mode 100644
index 0000000000..f9dbe14f92
--- /dev/null
+++ b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-consumer/src/main/java/com/alibaba/dubbo/consumer/service/TestService.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2013-2023 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.alibaba.dubbo.consumer.service;
+
+
+import com.alibaba.api.ProviderService;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author :Lictory
+ * @date : 2024/08/01
+ */
+@RestController
+public class TestService {
+ @Autowired
+ private ProviderService providerService;
+
+ @GetMapping("/test/get")
+ public String testGet() {
+ return providerService.hi();
+ }
+
+ @PostMapping("/test/post/{userId}")
+ public void testPost(@PathVariable("userId") Integer userId) {
+ providerService.post(userId);
+ }
+}
+
+
diff --git a/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-consumer/src/main/resources/application.yml b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-consumer/src/main/resources/application.yml
new file mode 100644
index 0000000000..0c5d78dc0a
--- /dev/null
+++ b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-consumer/src/main/resources/application.yml
@@ -0,0 +1,22 @@
+spring:
+ main:
+ allow-bean-definition-overriding: true
+ application:
+ name: consumer
+ cloud:
+ nacos:
+ discovery:
+ server-addr: 10.21.32.154:8848
+ rpc:
+ enabled: true
+ netty:
+ host: 127.0.0.1
+ port: 20880
+
+server:
+ port: 8081
+management:
+ endpoints:
+ web:
+ exposure:
+ include: "*"
diff --git a/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-consumer/src/main/resources/dubbo.properties b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-consumer/src/main/resources/dubbo.properties
new file mode 100644
index 0000000000..4f760cc70a
--- /dev/null
+++ b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-consumer/src/main/resources/dubbo.properties
@@ -0,0 +1,2 @@
+dubbo.application.check-serializable=false
+dubbo.application.serialize-check-status=DISABLE
diff --git a/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-consumer/src/main/resources/security/serialize.allowlist b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-consumer/src/main/resources/security/serialize.allowlist
new file mode 100644
index 0000000000..5421d68abe
--- /dev/null
+++ b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-consumer/src/main/resources/security/serialize.allowlist
@@ -0,0 +1,22 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+org.apache.dubbo.common.serialize.hessian2
+com.alibaba.cloud.rpc.metadata.HttpMetadata
+com.alibaba.cloud.rpc.metadata.HttpRpcResponse
diff --git a/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-provider/pom.xml b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-provider/pom.xml
new file mode 100644
index 0000000000..a6e0a20dc2
--- /dev/null
+++ b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-provider/pom.xml
@@ -0,0 +1,25 @@
+
+
+ 4.0.0
+
+ com.alibaba.cloud
+ rpc-tests
+ ${revision}
+
+
+ spring-cloud-alibaba-rpc-provider
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-rpc
+ ${revision}
+
+
+ com.alibaba.cloud
+ spring-cloud-alibaba-rpc-api
+ ${revision}
+
+
+
diff --git a/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-provider/src/main/java/com/alibaba/dubbo/provider/ProviderApplication.java b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-provider/src/main/java/com/alibaba/dubbo/provider/ProviderApplication.java
new file mode 100644
index 0000000000..0ef1160eda
--- /dev/null
+++ b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-provider/src/main/java/com/alibaba/dubbo/provider/ProviderApplication.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2013-2023 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.alibaba.dubbo.provider;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+/**
+ * @author :Lictory
+ * @date : 2024/08/01
+ */
+
+@SpringBootApplication
+@EnableFeignClients
+public class ProviderApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(ProviderApplication.class, args);
+ }
+}
diff --git a/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-provider/src/main/java/com/alibaba/dubbo/provider/controller/TestController.java b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-provider/src/main/java/com/alibaba/dubbo/provider/controller/TestController.java
new file mode 100644
index 0000000000..85f6ab8873
--- /dev/null
+++ b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-provider/src/main/java/com/alibaba/dubbo/provider/controller/TestController.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2013-2023 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.alibaba.dubbo.provider.controller;
+
+import com.alibaba.api.ProviderService;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * @author :Lictory
+ * @date : 2024/08/09
+ */
+
+@RestController
+@RequestMapping("/api")
+public class TestController {
+
+ @Autowired
+ private ProviderService providerService;
+
+ @GetMapping("/get")
+ public String getTest() {
+ return providerService.hi();
+ }
+
+ @PostMapping("/post/{userId}")
+ public void postTest(@PathVariable("userId") Integer userId) {
+ providerService.post(userId);
+ }
+}
diff --git a/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-provider/src/main/java/com/alibaba/dubbo/provider/service/impl/ProviderServiceImpl.java b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-provider/src/main/java/com/alibaba/dubbo/provider/service/impl/ProviderServiceImpl.java
new file mode 100644
index 0000000000..b44a60d667
--- /dev/null
+++ b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-provider/src/main/java/com/alibaba/dubbo/provider/service/impl/ProviderServiceImpl.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2013-2023 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.alibaba.dubbo.provider.service.impl;
+
+
+import com.alibaba.api.ProviderService;
+
+import org.springframework.stereotype.Service;
+
+/**
+ * @author :Lictory
+ * @date : 2024/08/01
+ */
+@Service
+public class ProviderServiceImpl implements ProviderService {
+ @Override
+ public String hi() {
+ return "Hi Spring Cloud Alibaba 测试成功";
+ }
+
+ @Override
+ public void post(Integer userId) {
+ System.out.println("sca post Test 测试" + userId);
+ }
+
+}
diff --git a/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-provider/src/main/resources/application.yml b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-provider/src/main/resources/application.yml
new file mode 100644
index 0000000000..195382710b
--- /dev/null
+++ b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-provider/src/main/resources/application.yml
@@ -0,0 +1,21 @@
+spring:
+ main:
+ allow-bean-definition-overriding: true
+ application:
+ name: provider
+ cloud:
+ nacos:
+ discovery:
+ server-addr: 10.21.32.154:8848
+ rpc:
+ enabled: true
+ netty:
+ host: 127.0.0.1
+ port: 20881
+management:
+ endpoints:
+ web:
+ exposure:
+ include: "*"
+server:
+ port: 8080
diff --git a/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-provider/src/main/resources/dubbo.properties b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-provider/src/main/resources/dubbo.properties
new file mode 100644
index 0000000000..4f760cc70a
--- /dev/null
+++ b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-provider/src/main/resources/dubbo.properties
@@ -0,0 +1,2 @@
+dubbo.application.check-serializable=false
+dubbo.application.serialize-check-status=DISABLE
diff --git a/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-provider/src/main/resources/security/serialize.allowlist b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-provider/src/main/resources/security/serialize.allowlist
new file mode 100644
index 0000000000..5421d68abe
--- /dev/null
+++ b/spring-cloud-alibaba-tests/rpc-tests/spring-cloud-alibaba-rpc-provider/src/main/resources/security/serialize.allowlist
@@ -0,0 +1,22 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+org.apache.dubbo.common.serialize.hessian2
+com.alibaba.cloud.rpc.metadata.HttpMetadata
+com.alibaba.cloud.rpc.metadata.HttpRpcResponse