springcloud 如果想要从注册中心中调用已经注册的接口,需要用如下方法。
我们现在已经将一个微服务注册到了注册中心。端口是8083的那个
并且里面有个member的RequestMapping
首先,创建一个微服务,将需要的依赖放入pom.xml和配置好appplication.yml
然后我们就要在一个controller中用rpc通过注册中心调用接口
创建一个ordercontroller.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
@RestController
public class ordercontroller {
@Autowired
private RestTemplate restTemplate;
@RequestMapping("getorder")
public String getorder() {
// order 使用rpc 远程调用技术
String memberUrl = "http://app-itmayiedu-member/member";
String result = restTemplate.getForObject(memberUrl, String.class);
System.out.println(result);
return result;
}
}
并且创建一个启动文件,我创的是app.java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication
@EnableEurekaClient
public class app {
public static void main(String[] args) {
SpringApplication.run(app.class, args);
}
@Bean
@LoadBalanced
RestTemplate restTemplate() {
return new RestTemplate();
}
}
这里的LoadBalanced是开启负载均衡一定要加上
然后即可调用到8083端口的接口
成功