由于RPC调用需要使用注册中心,所以首先需要创建eureka服务,创建SpringBoot项目后导入spring-cloud-starter-netflix-eureka-server,注意SpringBoot和SpringCloud版本一致性,然后进行配置,启动类添加注解@EnableEurekaServer < dependency> < groupId> </ groupId> < artifactId> </ artifactId> </ dependency> server : port :  8761 spring : application : name :  eurekaeureka : client : register-with-eureka :  false  fetch-registry :  false        service-url : defaultZone :  http: //localhost: 8761/eureka/
@SpringBootApplication 
@EnableEurekaServer 
public  class  EurekaApplication  { public  static  void  main ( String [ ]  args)  { SpringApplication . run ( EurekaApplication . class ,  args) ; } } 
创建服务提供者SpringBoot应用,关键是导入spring-cloud-starter-netflix-eureka-client依赖,进行eureka的配置,编写controller接入层代码,启动类不需要加@EnableEurekaClient注解,因为在新版本中已经被移除 < dependency> < groupId> </ groupId> < artifactId> </ artifactId> </ dependency> < dependency> < groupId> </ groupId> < artifactId> </ artifactId> </ dependency> server : port :  8082 spring : application : name :  producereureka : client : register-with-eureka :  true fetch-registry :  true service-url : defaultZone :  http: //localhost: 8761/eureka/
@RestController 
@RequestMapping ( "/api" ) 
public  class  DataController  { @GetMapping ( "/data" ) public  String  getData ( )  { System . out. println ( "服务提供者被调用" ) ; return  "Hello from Producer!" ; } 
} 
创建服务消费者SpringBoot应用,引入如下三个关键依赖,进行eureka配置,编写接口,编写接入层代码调用该接口,启动类需要加上@EnableFeignClients < dependency> < groupId> </ groupId> < artifactId> </ artifactId> </ dependency> < dependency> < groupId> </ groupId> < artifactId> </ artifactId> </ dependency> < dependency> < groupId> </ groupId> < artifactId> </ artifactId> </ dependency> server : port :  8083 spring : application : name :  consumereureka : client : register-with-eureka :  true fetch-registry :  true service-url : defaultZone :  http: //localhost: 8761/eureka/
@FeignClient ( name =  "producer" )  
public  interface  ProducerClient  { @GetMapping ( "/api/data" ) String  getData ( ) ; 
} 
@RestController 
@RequestMapping ( "/consumer" ) 
public  class  ConsumerController  { @Autowired private  ProducerClient  producerClient; @GetMapping ( "/data" ) public  String  getDataFromProducer ( )  { return  producerClient. getData ( ) ; } 
} 
@SpringBootApplication 
@EnableFeignClients 
public  class  ConsumerApplication  { public  static  void  main ( String [ ]  args)  { SpringApplication . run ( ConsumerApplication . class ,  args) ; } } 
总结 通过引入eureka注册中心后,如果服务提供者有多个节点,那么请求就会被发送到存活的节点上,实现了动态路由,避免因为固定写url但是该节点宕机导致调用失败的问题