Spring Cloud(二):Eureka 服务注册中心 (3)

搭建完多节点服务注册中心之后,服务提供者也需要做一些简单的配置,以上面的服务提供者为例,修改如下:

eureka.client.serviceUrl.defaultZone=http://nodea:9991/eureka/,:9992/eureka/

启动项目后,访问两个服务注册中心,我们看到服务被注册到这两个节点内。

Spring Cloud(二):Eureka 服务注册中心

这时我们关闭服务注册中心节点 A,我们可以看到服务注册中心节点 B 依然可以提供服务,而节点 A 从 available-replicas(可以分片) 变为 unavailable-replicas(不可用分片)。

Spring Cloud(二):Eureka 服务注册中心

服务消费者(Service Consumer) 使用 Ribbon 调用服务 1. pom 相关依赖配置 <properties> <java.version>1.8</java.version> <spring-cloud.version>Hoxton.RELEASE</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> 2. 配置文件 application.properties spring.application.name=spring-cloud-ribbon-consumer server.port=8081 eureka.client.serviceUrl.defaultZone=http://nodea:9991/eureka/,:9992/eureka/ 3. 启动类配置

通过 @EnableDiscoveryClient 注解将应用注册为 Eureka 客户端,获得服务发现能力。

创建 RestTemplate 的 Spring Bean 实例用来调用服务。

通过 @LoadBalanced 注解来开启客户端的负载均衡。

@SpringBootApplication @EnableDiscoveryClient public class SpringCloudRibbonConsumerApplication { @Bean @LoadBalanced RestTemplate restTemplate(){ return new RestTemplate(); } public static void main(String[] args) { SpringApplication.run(SpringCloudRibbonConsumerApplication.class, args); } } 4. ConsumerController 来实现服务调用 @RestController public class ConsumerController { @Autowired RestTemplate restTemplate; @RequestMapping("/test") public String test() { return restTemplate.getForEntity("http://spring-cloud-eureka-service/test", String.class).getBody(); } }

spring-cloud-eureka-service 为服务注册中心的应用名称,大小写均可。

使用 Feign 调用服务 1. pom 相关依赖配置 <properties> <java.version>1.8</java.version> <spring-cloud.version>Hoxton.RELEASE</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> 2. 配置文件 application.properties spring.application.name=spring-cloud-feign-consumer server.port=8080 eureka.client.serviceUrl.defaultZone=http://nodea:9991/eureka/,:9992/eureka/ 3. 启动类配置

通过 @EnableDiscoveryClient 注解将应用注册为 Eureka 客户端,获得服务发现能力。

通过 @EnableFeignClients 注解来启用feign进行远程调用。

@SpringBootApplication @EnableDiscoveryClient//启用服务注册与发现 @EnableFeignClients//启用feign进行远程调用 public class SpringCloudFeignConsumerApplication { public static void main(String[] args) { SpringApplication.run(SpringCloudFeignConsumerApplication.class, args); } } 4. 实现服务调用接口 @FeignClient(name = "spring-cloud-eureka-service") public interface TestService { @RequestMapping("/test") public String test(); }

spring-cloud-eureka-service 为服务注册中心的应用名称,大小写均可。

此接口中的方法和远程服务中contoller中的方法名和参数需保持一致。

5. ConsumerController 来实现服务调用 @RestController public class ConsumerController { @Autowired private TestService testService; @RequestMapping("/test") public String test() { return testService.test(); } } 示例代码

github

码云

非特殊说明,本文版权归 朝雾轻寒 所有,转载请注明出处.

原文标题:Spring Cloud(二):Eureka 服务注册中心

原文地址:https://www.zwqh.top/article/info/28

如果文章有不足的地方,欢迎提点建议,后续会完善~

如果文章对您有帮助,请给我点个赞哦~

关注下我的公众号,文章持续更新中...

Spring Cloud(二):Eureka 服务注册中心

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

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