Spring Cloud 系列之 Eureka 实现服务注册与发现 (2)

4、创建 spring boot 启动类

@EnableEurekaClient @SpringBootApplication public class SingleProviderApplication { public static void main(String[] args) { SpringApplication.run(SingleProviderApplication.class, args); } }

@EnableEurekaClient 修饰,表示要注册到注册中心。

5、启动项目,正常情况下就注册到了 Eureka 注册中心,打开 Eureka 控制台,会看到已经出现了这个服务

Spring Cloud 系列之 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-customer

3、开始消费提供者提供的服务接口,这里演示了两种消费方法,一种是用 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

获取源码

如果你觉得写的还可以的话,请点个「推荐」吧

欢迎关注,不定期更新本系列和其他文章
古时的风筝 ,进入公众号可以加入交流群

扫码关注

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxxzd.html