springclould与eureka

本文介绍了一种基于Eureka的服务注册与发现机制,并讨论了如何利用Ribbon和Hystrix实现服务间的调用与断路器保护。同时,还介绍了如何通过Feign进一步简化客户端的服务调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.服务(提供者)注册中心(多个,相互注册为服务)和发现(eureka)多个进行服务发现
eureka注册中心:提供服务的注册与查询(发现轮询server),Ribbon会从Eureka注册中心去获取服务端列表
多server1:服务提供者:服务的提供方,提供服务的一方。
多client2:服务消费者:服务的消费方,使用服务的一方。
服务提供者与服务消费者同样可以调用,通过spring中的RestTemplate

断路器hystrix:保证在一台服务提供者崩溃时,轮询到服务崩溃的服务器就会去提示对应的错误信息。需在消费者中配置@EnableCircuitBreaker。

//自定义命令:使用restTemplate注入

//使用对象控制请求返回
//同步
//Book book1 = bookCommand.execute();
//异步调用,较慢,或使用注解@HystrixCommand
Future queue = bookCommand.queue();
Book book = queue.get();

//服务降级
注解@HystrixCommand(fallbackMethod = “方法名”)

//异常处理,可以使用在方法参数加入Throwable对象这样可以直接自动服务降级

//请求缓存,通过Service注解@CacheResult、@CacheKey、@CacheRemove或restTemplate中方法getCacheKey开启某参数请求后缓存数据,然后都要在控制器对断路器请求内容进行初始化
protected String getCacheKey() {
return String.valueOf(id);
}

//请求合并
1.注解合并请求
初始化HystrixRequestContext
@HystrixCollapser(batchMethod = “方法名”,collapserProperties = {@HystrixProperty(name =“timerDelayInMilliseconds”,value = “100”)})
以及使用@HystrixCommand注解service层合并请求的方法
2.初始化HystrixRequestContext,创建类使用批量处理继承HystrixCommand和创建类合并处理继承HystrixCollapser和service使用restTemplate进行调用提供者的服务

turbine集群监控:必须Hystrix Dashboard
①注解式:
@EnableHystrixDashboard
spring.application.name=turbine
server.port=2002
management.port=2003
eureka.client.service-url.defaultZone=http://localhost:1111/eureka/
turbine.app-config=ribbon-consumer
turbine.cluster-name-expression=“default”
turbine.combine-host-port=true
http://localhost:9000/hystrix

开启Feign简化了我们的封装操作
注解@EnableFeignClients/@FeignClient注解在service中绑定服务
spring.application.name=feign-consumer
server.port=2005
eureka.client.service-url.defaultZone=http://localhost:1111/eureka/

Spring MVC、Spring Boot和Spring Cloud是Spring Framework下的三个重要项目,它们各自有不同的用途和功能。 1. Spring MVC: - Spring MVC是基于Spring Framework的一个MVC(Model-View-Controller)框架,用于构建Web应用程序。 - 它提供了一个灵活的、可扩展的架构,用于处理用户请求和生成响应。 - Spring MVC提供了很多用于处理请求映射、数据绑定、视图渲染等的注解和类。 2. Spring Boot: - Spring Boot是用于简化Spring应用程序开发的框架。 - 它提供了自动配置、快速启动和约定优于配置的特性,使得开发人员能够快速搭建和部署基于Spring的应用程序。 - Spring Boot还集成了嵌入式Web服务器(如Tomcat、Jetty),简化了Web应用程序的部署过程。 - 它还提供了诸如安全性、监控、健康检查等常见功能的开箱即用解决方案。 3. Spring Cloud: - Spring Cloud是用于构建分布式系统和微服务架构的框架。 - 它基于Spring Boot,提供了一系列工具和库,用于解决分布式系统中的常见问题,如服务注册发现、负载均衡、服务调用、配置管理等。 - Spring Cloud还集成了一些流行的分布式系统组件,如Netflix的Eureka、Ribbon、Hystrix等。 总结: Spring MVC用于构建Web应用程序,Spring Boot用于简化Spring应用程序的开发和部署,Spring Cloud用于构建分布式系统和微服务架构。它们各自有不同的定位和功能,但可以相互配合使用,提供更强大的开发能力和更高效的系统架构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值