4、创建 spring boot 启动类
@EnableEurekaClient @SpringBootApplication public class SingleProviderApplication { public static void main(String[] args) { SpringApplication.run(SingleProviderApplication.class, args); } }@EnableEurekaClient 修饰,表示要注册到注册中心。
5、启动项目,正常情况下就注册到了 Eureka 注册中心,打开 Eureka 控制台,会看到已经出现了这个服务
创建一个服务消费者有了服务提供者,接下来创建一个消费者来消费一下
1、引用 maven 包
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>2、配置 application.yml
server: port: 3002 eureka: client: serviceUrl: defaultZone: :3000/eureka ## 注册到 eureka instance: preferIpAddress: true spring: application: name: single-customer3、开始消费提供者提供的服务接口,这里演示了两种消费方法,一种是用 RestTemplate ,另外一种是用 FeignClient,Feign 同样是 Netflix 开源,并被 Spring Cloud 封装到 spring-cloud-starter-openfeign 包中。
创建启动类,并添加相关注解
@SpringBootApplication @EnableEurekaClient @EnableFeignClients public class SingleCustomerApplication { /** * 注入 RestTemplate * 并用 @LoadBalanced 注解,用负载均衡策略请求服务提供者 * 这是 Spring Ribbon 的提供的能力 * @return */ @LoadBalanced @Bean public RestTemplate restTemplate() { return new RestTemplate(); } public static void main(String[] args) { SpringApplication.run(SingleCustomerApplication.class, args); } }@EnableEurekaClient 声明此项目为一个 eureka 客户端,@EnableFeignClients 声明此项目可以使用 Feign。
4、创建一个服务接口类,这是 Feign 的使用方式,详细的用法可以查一下 Spring Cloud Feign 相关文档
/** * IHelloService * 配置服务提供者:single-provider 是服务提供者的 application.name */ @FeignClient("single-provider") public interface IHelloService { @RequestMapping(value = "/hello") String hello(); @RequestMapping(value = "nice") String nice(); }@FeignClient 注解的 value 为服务提供者的 appplication.name 。
5、创建一个 Controller 用于调用服务
@RestController public class ConsumerController { @Autowired private RestTemplate restTemplate; @Autowired private IHelloService helloService; private static final String applicationName = "single-provider"; @RequestMapping(value = "feignRequest") public Object feignRequest(){ String s = helloService.nice(); return s; } @RequestMapping(value = "commonRequest") public Object commonRequest(){ String url = "http://"+ applicationName +"/hello"; String s = restTemplate.getForObject(url,String.class); return s; } }其中 feignRequest 方法是使用了 Feign 的方式调用服务接口;
commonRequest 方法是用 RestTemplate 提供的方法调用服务接口;
6、最后,启动服务,访问地址::3002/commonRequest 和 :3002/feignRequest
获取源码
如果你觉得写的还可以的话,请点个「推荐」吧
欢迎关注,不定期更新本系列和其他文章
古时的风筝 ,进入公众号可以加入交流群