精通springcloud:将RestTemplate与服务发现结合使用

本文详细介绍了如何在SpringCloud中将RestTemplate与服务发现结合使用,通过Eureka实现微服务间的负载均衡。示例中展示了如何启用@EnableDiscoveryClient,调整配置以利用Eureka服务器地址,并移除Ribbon相关配置。文中还提到了Feign客户端的使用,作为与RestTemplate类似但更为优雅的HTTP客户端绑定器,以及如何启用Feign、构建Feign接口。此外,文章还探讨了对不同区域的支持和分区机制在服务通信中的作用。
摘要由CSDN通过智能技术生成

将RestTemplate与服务发现结合使用

实际上,与服务发现的集成是Ribbon客户端的默认行为。细心的读者可能还记得,我们可以通过设置ribbon.eureka. enabled属性为false禁用Eureka作为客户端均衡器的功能。在本节示例中开发人员将看到,服务发现的存在简化了对于服务之间通信的SpringCloud组件的配置任务。

本示例的系统架构与前一个示例相同。要查看当前练习的源代码,必须切换到ribbon_ with_ discovery 分支
ttp://github.com/piomin/shown here-spring-cloud-comm/tree/ribbon_ with. _discovery) 。在这里,开发人员将看到的第一件 事是新模块,即discovery-service (发现服务)。本书第4章“服务发现”详细讨论了与Eureka 相关的几乎所有方面,因而启动它时不应该有任何问题。我们需要运行一个具有真正基本设置的独立Eureka服务器,它在默认端口8761上可用。

精通springcloud:将RestTemplate与服务发现结合使用

 

与前面的示例相比,我们应该删除与Ribbon客户端严格相关的所有配置和注解。取而代之的是,Eureka 发现客户端必须使用@EnableDiscoveryClient启用,并且必须在applicationyml文件中提供Eureka服务器地址。现在,order-service 的main类看起来应该如下所示。

@SpringBootApplication

@EnableDiscoveryClient

public class OrderApplication {

QLoadBalanced

@Bean

RestTemplate restTemplate() (

return new RestTemplate() ;

public static void main (Stringl] args)1

new

SpringApplicationBuilder (OrderApplication.class) .web(true) .run (args);

}

//...

}

以下是当前的配置文件。可以使用spring, application.name属性来设置服务的名称。

spring:

application:

name: order-service

server:

port: ${PORT:8090}

eureka:

client:

serviceUrl:

defaultZone: $(EUREKA URL:http://localhost:8761/eureka/}

这里的设置和以前是一样的。我们还启动了所有的微服务。但是,这一次account-service服务和product-service服务的实例数将乘以2。启动每个服务的第二个实例时,可以使用-DPORT或-Dserver.port参数覆盖默认服务器端口,如java -jar -DPORT-9093product- srvice-1.0-SNAPSHOTjar.所有实例都已在Eureka 服务器中注册,这可以使用其UI仪表板轻松查看,如图6.2所示。

精通springcloud:将RestTemplate与服务发现结合使用

 

这是本书第一次看到负载均衡的实际示例。默认情况下,Ribbon 客户端将在微服务的所有已注册实例之间平均分配流量。该算法称为轮询调度(Round Robin)。实际上,这意味着客户端会记住它转发的最后一个请求的位置,然后将当前请求发送到该行中的下一个服务。这个方法可能会被本书第7章所介绍的其他规则覆盖。通过在ribbon.listOfServers中设置以逗号分隔的服务地址列表,也可以为没有服务发现机制的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值