From fc77265f11b1c83f871713de95bccef0f2e85c45 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=A7=A6=E8=8B=B1=E6=9D=B0?= <327782001@qq.com>
Date: Sun, 12 Feb 2023 00:56:52 +0800
Subject: [PATCH] =?UTF-8?q?fix:=E8=BF=9C=E7=A8=8B=E8=B0=83=E7=94=A8?=
=?UTF-8?q?=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
nacos-feign-api/pom.xml | 4 +--
...mputeClient.java => FeignUserService.java} | 4 +--
nacos-server-common/pom.xml | 4 +--
nacos-server-consumer/pom.xml | 9 ++++--
.../NacosConsumerApplication.java | 15 ++++++++-
.../controller/ConsumerUserController.java | 29 +++++++++++++++--
nacos-server-producer/pom.xml | 4 +--
pom.xml | 31 +++++++++++++------
8 files changed, 78 insertions(+), 22 deletions(-)
rename nacos-feign-api/src/main/java/com/kwan/springcloudalibaba/api/{ComputeClient.java => FeignUserService.java} (87%)
diff --git a/nacos-feign-api/pom.xml b/nacos-feign-api/pom.xml
index c4d582e..7b5a941 100644
--- a/nacos-feign-api/pom.xml
+++ b/nacos-feign-api/pom.xml
@@ -17,8 +17,8 @@
1.8
UTF-8
UTF-8
- 2.3.0.RELEASE
- 2.2.1.RELEASE
+ 2.3.7.RELEASE
+ 2.2.2.RELEASE
diff --git a/nacos-feign-api/src/main/java/com/kwan/springcloudalibaba/api/ComputeClient.java b/nacos-feign-api/src/main/java/com/kwan/springcloudalibaba/api/FeignUserService.java
similarity index 87%
rename from nacos-feign-api/src/main/java/com/kwan/springcloudalibaba/api/ComputeClient.java
rename to nacos-feign-api/src/main/java/com/kwan/springcloudalibaba/api/FeignUserService.java
index bb76de4..8d2d3c9 100644
--- a/nacos-feign-api/src/main/java/com/kwan/springcloudalibaba/api/ComputeClient.java
+++ b/nacos-feign-api/src/main/java/com/kwan/springcloudalibaba/api/FeignUserService.java
@@ -15,9 +15,9 @@ import org.springframework.web.bind.annotation.RequestMethod;
* @date : 2023/1/10 13:45
*/
@FeignClient(value = "nacos-server-producer", path = "/user")
-public interface ComputeClient {
+public interface FeignUserService {
@RequestMapping(method = RequestMethod.GET, value = "/{id}", produces = MediaType.APPLICATION_PROBLEM_JSON_VALUE)
- Result selectOne(@PathVariable Integer id);
+ Result selectOne(@PathVariable(value = "id") Integer id);
}
diff --git a/nacos-server-common/pom.xml b/nacos-server-common/pom.xml
index b2a73b5..e1ec470 100644
--- a/nacos-server-common/pom.xml
+++ b/nacos-server-common/pom.xml
@@ -18,8 +18,8 @@
1.8
UTF-8
UTF-8
- 2.3.0.RELEASE
- 2.2.1.RELEASE
+ 2.3.7.RELEASE
+ 2.2.2.RELEASE
diff --git a/nacos-server-consumer/pom.xml b/nacos-server-consumer/pom.xml
index ec261b2..bee0936 100644
--- a/nacos-server-consumer/pom.xml
+++ b/nacos-server-consumer/pom.xml
@@ -17,8 +17,8 @@
1.8
UTF-8
UTF-8
- 2.3.0.RELEASE
- 2.2.1.RELEASE
+ 2.3.7.RELEASE
+ 2.2.2.RELEASE
@@ -58,6 +58,11 @@
spring-cloud-starter-openfeign
2.0.0.RELEASE
+
+ org.springframework.cloud
+ spring-cloud-starter-netflix-ribbon
+ 2.0.0.RELEASE
+
diff --git a/nacos-server-consumer/src/main/java/com/kwan/springcloudalibaba/NacosConsumerApplication.java b/nacos-server-consumer/src/main/java/com/kwan/springcloudalibaba/NacosConsumerApplication.java
index 6615e96..743d7be 100644
--- a/nacos-server-consumer/src/main/java/com/kwan/springcloudalibaba/NacosConsumerApplication.java
+++ b/nacos-server-consumer/src/main/java/com/kwan/springcloudalibaba/NacosConsumerApplication.java
@@ -2,12 +2,25 @@ package com.kwan.springcloudalibaba;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.client.loadbalancer.LoadBalanced;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.Bean;
+import org.springframework.web.client.RestTemplate;
-//@EnableFeignClients
+@EnableFeignClients
+@EnableDiscoveryClient
@SpringBootApplication
public class NacosConsumerApplication {
+ @LoadBalanced
+ @Bean
+ public RestTemplate restTemplate() {
+ return new RestTemplate();
+ }
+
+
public static void main(String[] args) {
SpringApplication.run(NacosConsumerApplication.class, args);
}
diff --git a/nacos-server-consumer/src/main/java/com/kwan/springcloudalibaba/controller/ConsumerUserController.java b/nacos-server-consumer/src/main/java/com/kwan/springcloudalibaba/controller/ConsumerUserController.java
index 2bbfd3f..451ee81 100644
--- a/nacos-server-consumer/src/main/java/com/kwan/springcloudalibaba/controller/ConsumerUserController.java
+++ b/nacos-server-consumer/src/main/java/com/kwan/springcloudalibaba/controller/ConsumerUserController.java
@@ -1,14 +1,18 @@
package com.kwan.springcloudalibaba.controller;
-import com.kwan.springcloudalibaba.api.ComputeClient;
+import com.kwan.springcloudalibaba.api.FeignUserService;
import com.kwan.springcloudalibaba.common.Result;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.client.ServiceInstance;
+import org.springframework.cloud.client.discovery.DiscoveryClient;
+import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestTemplate;
@RefreshScope
@@ -17,8 +21,29 @@ import org.springframework.web.bind.annotation.RestController;
public class ConsumerUserController {
@Autowired
- private ComputeClient computeClient;
+ private LoadBalancerClient loadBalancerClient;
+ @Autowired
+ private RestTemplate restTemplate;
+
+ /**
+ * feign方式调用
+ */
+ @Autowired
+ private FeignUserService computeClient;
+
+
+ @Autowired
+ private DiscoveryClient discoveryClient;
+
+ @GetMapping(value = "/loadBalancerClient/{id}", produces = MediaType.APPLICATION_PROBLEM_JSON_VALUE)
+ public Result loadBalancerClient(@PathVariable("id") Integer id) {
+ //使用LoadBalanceClient和RestTemplate结合的方式来访问
+ ServiceInstance serviceInstance = loadBalancerClient.choose("nacos-server-producer");
+ String url = String.format("http://%s:%s/user/%s", "nacos-server-producer", serviceInstance.getPort(), id);
+ System.out.println("request url:" + url);
+ return Result.ok(restTemplate.getForObject(url, Object.class));
+ }
/**
* http://127.0.0.1:8085/nacos/consumer/1
diff --git a/nacos-server-producer/pom.xml b/nacos-server-producer/pom.xml
index 4e4a1fe..60d53f4 100644
--- a/nacos-server-producer/pom.xml
+++ b/nacos-server-producer/pom.xml
@@ -26,8 +26,8 @@
1.8
UTF-8
UTF-8
- 2.3.0.RELEASE
- 2.2.1.RELEASE
+ 2.3.7.RELEASE
+ 2.2.2.RELEASE
diff --git a/pom.xml b/pom.xml
index 3099742..f5dbcb9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -15,8 +15,8 @@
1.8
UTF-8
UTF-8
- 2.3.0.RELEASE
- 2.2.5.RELEASE
+ 2.3.7.RELEASE
+ 2.2.2.RELEASE
@@ -36,13 +36,7 @@
pom
import
-
-
-
-
-
-
-
+
org.springframework.boot
spring-boot-dependencies
@@ -50,6 +44,25 @@
pom
import
+
+
+
+
+
+
+
+
+ com.netflix.archaius
+ archaius-core
+ 0.7.6
+
+
+ com.google.guava
+ guava
+
+
+
+
--
GitLab