网站首页 > 博客文章 正文
本文介绍了eureka和ribbon,feign的简单使用教程。
一、配置服务注册中心:
1、Eureka是Netflix开发的服务注册中心,使用eureka作为服务发现中心,需要单独启动一个spring boot服务作为服务发现中心,该服务需要引入eureka的服务端依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
2、然后在spring boot的启动类上面加上注解@EnableEurekaServer;
3、最后在配置文件Application.yml中配置eureka
eureka:
instance:
hostname: localhost #实例的主机名称
client:
registerWithEureka: false #本身就是服务器,所以无需注册到服务器
fetchRegistry: false #无需获取服务器的注册信息
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:server.port/eureka/ #指定服务注册中心地址
spring:
application:
name: eureka-server
二、使用服务发现客户端注册微服务
1、引入服务发现中心客户端依赖
<dependency>
<groupId>org.springframework.cloud</goupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</aritfactId>
</dependency>
2、在spring boot的启动类上面加上注解@EnableEurekaClient
3、配置文件中配置服务名和服务发现中心的地址
spring:
application:
name: product-data-service
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/ #对应服务发现中心中的配置
三、使用客户端负载均衡调用服务实例
springcloud提供了两种方式访问服务实例:一种是Ribbon,另一种是Feign;Ribbon使用RestTemplate调用,并进行客户端负载均衡。Feign是对Ribbon的封装。
(1)、Ribbon实现负载均衡调用微服务
1、需要在启动类上增加一个@EnableDiscoveryClient,表示启动服务发现客户端,该注解用于从服务发现中心发现服务,而@EnableEurekaClient表示将该服务注册到服务发现中心
2、可以直接使用Ribbon提供的LoadBalancerClinet实现负载均衡获得一个可用的服务实例,或者在注入RestTemplate类的时候使用@LoadBalanced注解开启负载均衡。
①@Autowired LoadBalancerClient loadBalancerClient;
ServiceInstance serviceInstance =ladBalancerClient.choose("服务实例名");
String uri = serviceInstance.getUri().toString;
restTemplate.getForObject(uri+"/...",String.class);
②:
@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate;
}
(2)、Feign实现负载均衡调用微服务
1、使用引入openfeign依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2、启动类上添加@EnableFeignClients
3、创建FeignClient
@FeignClient(value="注册到服务发现中心的服务名")
public interface ProductClientFeign{
@GetMapping("/products")
public List<Product> listProducts();
}
4、Feign使用动态代理的方式创建相应接口的实现类并注入到spring容器中,所以使用的时候只需要自动注入,然后调用接口方法就可以了。
@Autowired
ProductClientFeign productClientFeign;
List<Product> products = productClientFeign.listProducts();
猜你喜欢
- 2024-09-20 Spring cloud Ribbon 客户端负载均衡详解(二)负载均衡器
- 2024-09-20 springcloud(十三):注册中心 Consul 使用详解
- 2024-09-20 SpringCloud系列——11Spring Cloud 源码分析之Gateway网关
- 2024-09-20 FeignClient注解配置url属性实现指定服务方
- 2024-09-20 SpringCloud升级之路2020.0.x版-34.验证重试配置正确性(2)
- 2024-09-20 我放弃了okhttp、httpClient,选了这个神仙工具
- 2024-09-20 还没有秃头吗?你真的需要大牛来教你如何深入解析Ribbon源码了
- 2024-09-20 Spring GateWay : 网关的转发细节
- 2024-09-20 深入理解SpringCloud之Gateway,小白都能看懂的保姆级教学
- 2024-09-20 微服务架构进阶:Hystrix 如何解决灾难性雪崩及隔离问题
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)