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 {@Autowiredprivate 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@LoadBalancedRestTemplate restTemplate() {return new RestTemplate();}}
这里的LoadBalanced是开启负载均衡一定要加上
然后即可调用到8083端口的接口
成功