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

文章详细介绍了在SpringBoot应用中使用SpringCloud和Eureka实现服务发现及负载均衡的过程,包括`@SpringBootApplication`、`@EnableDiscoveryClient`、`@LoadBalanced`和FeignClient的使用,以及如何配置实例数、服务地址列表和分区机制。
摘要由CSDN通过智能技术生成

@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中设置以逗号分隔的服务地址列表,也可以为没有服务发现机制的前一个示例配置负载平衡,如

ribon.listOfServers-localhost:8093,localhost:9093. 回到本示例应用程序,order-service 服务发送的请求将在account-service服务和product-service 服务的两个实例之间进行负载均衡。这和customer- service服务是相似的,只不过后者是在account-service服务的两个实例之间分配流量。如果开发人员已经启动了如图6.2所示的Eureka仪表板上的所有服务实例,并将一些测试请 求发送到order-service服务,则肯定会看到以下日志。在该日志中,我们以加粗形式突出显示了某些片段,它们是Ribbon客户端显示的为目标服务找到的地址列表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值