5.Spring-Cloud中服务的提供者和服务的消费者
Posted 盲目的拾荒者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5.Spring-Cloud中服务的提供者和服务的消费者相关的知识,希望对你有一定的参考价值。
注意:请使用官方建议的springboot和springcloud对应的版本
在之间的博客中已经写到如何建立高可用的注册中心,地址见高可用注册中心
现在我们来创建服务治理体系下的一个服务(即服务的提供者)
1.pom.xml
2.application.properties
3.springboot启动类
4.演示controller
java -jar service-provide-0.0.1-SNAPSHOT.jar --server.port=8081打成jar文件,服务提供者,通过不同端口启动,做到负载均衡,(启动之前要启动,注册中心)
java -jar service-provide-0.0.1-SNAPSHOT.jar --server.port=8082
注册中心分别启动,为了高可用
java -jar spring-cloud-0.0.1-SNAPSHOT.jar --spring.profiles.active=testhost
java -jar spring-cloud-0.0.1-SNAPSHOT.jar --spring.profiles.active=testhost2
上面都启动完成之后,通过http://testhost:8000访问
,通过http://testhost2:8001访问访问的结果和上面截图一样。
现在注册中心和服务提供者都已经有了,接下来需要来构建服务的消费者,它主要来完成发现服务和消费服务。服务的发现由Eureka客户端完成,而服务的消费者任务由Ribbon完成。Ribbon是一个基于HTTP和TCP的客户端负载均衡,它可以在通过客户端配置ribbonServerList的服务列表去轮训访问以达到负载均衡的作用。
第一种方式:构建服务的发现和服务的消费
1.pom.xl
2.application.properties
3.启动类
4.controller演示
启动服务消费者,访问注册中心:
通过浏览器访问,消费者,http://localhost:9001/ribbon-consumer
看控制台打印的日志:已经做负载均衡了
第二种方式:
pom.xml文件不变和application.properties修改访问端口为9002
启动类:
演示controller
配置多个RestTemplate(以下来自官方文档)通过查看service-provide控制台信息,可以看到ribbon通过轮训的方式访问了,不同端口的服务。
如果你想要一个没有负载平衡的RestTemplate
,创建一个RestTemplate
bean并注入它。要创建@Bean
时,使用@LoadBalanced
限定符来访问负载平衡RestTemplate
。
重要 |
请注意下面示例中的普通RestTemplate 声明的@Primary 注释,以消除不合格的@Autowired 注入。 |
提示 |
如果您看到错误java.lang.IllegalArgumentException: Can not set org.springframework.web.client.RestTemplate field com.my.app.Foo.restTemplate to com.sun.proxy.$Proxy89 ,请尝试注入RestOperations 或设置spring.aop.proxyTargetClass=true |
微信公众号:
JAVA程序猿成长之路
分享资源,记录程序猿成长点滴。专注于Java,Spring,SpringBoot,SpringCloud,分布式,微服务。
以上是关于5.Spring-Cloud中服务的提供者和服务的消费者的主要内容,如果未能解决你的问题,请参考以下文章