提交 fc77265f 编写于 作者: 檀越@新空间's avatar 檀越@新空间 🐭

fix:远程调用问题

上级 92520f9e
...@@ -17,8 +17,8 @@ ...@@ -17,8 +17,8 @@
<java.version>1.8</java.version> <java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.3.0.RELEASE</spring-boot.version> <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
<spring-cloud-alibaba.version>2.2.1.RELEASE</spring-cloud-alibaba.version> <spring-cloud-alibaba.version>2.2.2.RELEASE</spring-cloud-alibaba.version>
</properties> </properties>
<dependencies> <dependencies>
......
...@@ -15,9 +15,9 @@ import org.springframework.web.bind.annotation.RequestMethod; ...@@ -15,9 +15,9 @@ import org.springframework.web.bind.annotation.RequestMethod;
* @date : 2023/1/10 13:45 * @date : 2023/1/10 13:45
*/ */
@FeignClient(value = "nacos-server-producer", path = "/user") @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) @RequestMapping(method = RequestMethod.GET, value = "/{id}", produces = MediaType.APPLICATION_PROBLEM_JSON_VALUE)
Result selectOne(@PathVariable Integer id); Result selectOne(@PathVariable(value = "id") Integer id);
} }
...@@ -18,8 +18,8 @@ ...@@ -18,8 +18,8 @@
<java.version>1.8</java.version> <java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.3.0.RELEASE</spring-boot.version> <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
<spring-cloud-alibaba.version>2.2.1.RELEASE</spring-cloud-alibaba.version> <spring-cloud-alibaba.version>2.2.2.RELEASE</spring-cloud-alibaba.version>
</properties> </properties>
......
...@@ -17,8 +17,8 @@ ...@@ -17,8 +17,8 @@
<java.version>1.8</java.version> <java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.3.0.RELEASE</spring-boot.version> <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
<spring-cloud-alibaba.version>2.2.1.RELEASE</spring-cloud-alibaba.version> <spring-cloud-alibaba.version>2.2.2.RELEASE</spring-cloud-alibaba.version>
</properties> </properties>
<dependencies> <dependencies>
...@@ -58,6 +58,11 @@ ...@@ -58,6 +58,11 @@
<artifactId>spring-cloud-starter-openfeign</artifactId> <artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.0.0.RELEASE</version> <version>2.0.0.RELEASE</version>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
</dependencies> </dependencies>
......
...@@ -2,12 +2,25 @@ package com.kwan.springcloudalibaba; ...@@ -2,12 +2,25 @@ package com.kwan.springcloudalibaba;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; 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 @SpringBootApplication
public class NacosConsumerApplication { public class NacosConsumerApplication {
@LoadBalanced
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(NacosConsumerApplication.class, args); SpringApplication.run(NacosConsumerApplication.class, args);
} }
......
package com.kwan.springcloudalibaba.controller; package com.kwan.springcloudalibaba.controller;
import com.kwan.springcloudalibaba.api.ComputeClient; import com.kwan.springcloudalibaba.api.FeignUserService;
import com.kwan.springcloudalibaba.common.Result; import com.kwan.springcloudalibaba.common.Result;
import org.springframework.beans.factory.annotation.Autowired; 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.cloud.context.config.annotation.RefreshScope;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
@RefreshScope @RefreshScope
...@@ -17,8 +21,29 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -17,8 +21,29 @@ import org.springframework.web.bind.annotation.RestController;
public class ConsumerUserController { public class ConsumerUserController {
@Autowired @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 * http://127.0.0.1:8085/nacos/consumer/1
......
...@@ -26,8 +26,8 @@ ...@@ -26,8 +26,8 @@
<java.version>1.8</java.version> <java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.3.0.RELEASE</spring-boot.version> <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
<spring-cloud-alibaba.version>2.2.1.RELEASE</spring-cloud-alibaba.version> <spring-cloud-alibaba.version>2.2.2.RELEASE</spring-cloud-alibaba.version>
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
......
...@@ -15,8 +15,8 @@ ...@@ -15,8 +15,8 @@
<java.version>1.8</java.version> <java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.3.0.RELEASE</spring-boot.version> <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
<spring-cloud-alibaba.version>2.2.5.RELEASE</spring-cloud-alibaba.version> <spring-cloud-alibaba.version>2.2.2.RELEASE</spring-cloud-alibaba.version>
</properties> </properties>
<modules> <modules>
...@@ -36,13 +36,7 @@ ...@@ -36,13 +36,7 @@
<type>pom</type> <type>pom</type>
<scope>import</scope> <scope>import</scope>
</dependency> </dependency>
<!-- <dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>-->
<!-- <artifactId>spring-cloud-dependencies</artifactId>-->
<!-- <version>${spring-cloud.version}</version>-->
<!-- <type>pom</type>-->
<!-- <scope>import</scope>-->
<!-- </dependency>-->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId> <artifactId>spring-boot-dependencies</artifactId>
...@@ -50,6 +44,25 @@ ...@@ -50,6 +44,25 @@
<type>pom</type> <type>pom</type>
<scope>import</scope> <scope>import</scope>
</dependency> </dependency>
<!-- <dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>-->
<!-- <artifactId>spring-cloud-dependencies</artifactId>-->
<!-- <version>Hoxton.SR3</version>-->
<!-- <type>pom</type>-->
<!-- <scope>import</scope>-->
<!-- </dependency>-->
<dependency>
<groupId>com.netflix.archaius</groupId>
<artifactId>archaius-core</artifactId>
<version>0.7.6</version>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>
<build> <build>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册