springcloud
zpf1813763637
这个作者很懒,什么都没留下…
展开
-
Seata 分布式事务的配置,和使用场景
Seate 处理分布式事务。微服务模块,连接多个数据库,多个数据源,而数据库之间的数据一致性需要被保证。使用步骤1,搭建订单模块:order2,库存存储模块:storage3,搭建用户模块:account案例:买手机,模拟全局事务,超时回滚如果不加全局事务,如果调用失败,由于fengn的重试机制,还可能余额被重复扣减//只需要在业务类的方法上加上该注解,name值自定义唯一即可。 @GlobalTransactional(name = "dkf-create-order", rollba原创 2020-11-29 17:58:44 · 1515 阅读 · 0 评论 -
SpringCloud Alibaba Sentinel整合 ribbon + open-feign + fallback 进行服务熔断。
注意,之前在降级中的配置:blockHandler = "deal_testHotKey"只是对违背了限流规则的请求设置的兜底方法。如果方法内部调用异常,还是会展现给前端页面,很不友好@SentinelResource(value = "testHotKey",blockHandler = "deal_testHotKey")因此我们可以在@SentinelResource配置fallback属性进行...原创 2020-11-29 16:34:00 · 735 阅读 · 0 评论 -
SpringCloud Alibaba Sentinel三种服务降级策略,以及热点key降级
熔断降级1, 降级-RT(平均响应时间)降级要求:每秒钟请求数大于5个,且每个请求要在0.2秒内处理完。后端代码:进行睡眠1秒钟效果:先然0.2秒内处理不了一个请求,且进行压测,每秒发送10个请求。最后导致服务降级失败2,降级-异常比例表示在一定时间内,请求的异常次数不能占总请求次数的比例,且每个时间窗口内的请求数要大于5次,最后在设定的时间窗口结束后,关闭降级后端代码:测试效果:我们手动产生异常,很明显异常率100%大于20%,且进行压测,每秒发送10个请求。最后导致服务降级失败原创 2020-11-29 11:38:31 · 1693 阅读 · 0 评论 -
SpringCloud Alibaba Sentinel服务限流-三种流控模式,和流控效果
相比于豪猪哥的优点之一:能够在后台服务不重启的情况下动态配置流量访问规则。Sentinel8080监控平台和我们的业务逻辑是分开的。一,服务限流-三种流控模式限流规则1,流控模式–直接:**限流表现:当超过阀值,就会被降级。**就是不论你点击多少次,**每秒只能由一个请求是给你通过的。**多的请求就是给你返回默认报错,默认方式为快速失败,就是返回给页面Sentinel自带的请求失败信息。原因:QPS是每秒钟的请求数量,而我们阈值为1,表明每秒请求数量最多为1,且流控模式为直接,流控效果为快速失原创 2020-11-29 10:47:00 · 1354 阅读 · 0 评论 -
Eureka注册中心工作流程总结
Eureka:就是服务注册中心(可以是一个集群),对外暴露自己的地址,防止注册中心宕机,提升容错,使用注册中心集群。服务提供者:启动后向Eureka注册自己的信息(地址,提供什么服务/ip地址和端口)服务消费者:向Eureka订阅服务,Eureka会将对应服务的所有提供者地址列表发送给消费者,并且定期更新心跳(续约):提供者定期通过http方式向Eureka刷新自己的状态1、Eureka Server是服务端,负责管理各各微服务结点的信息和状态。2、在微服务上部署Eureka Client程序(即原创 2020-11-12 16:16:58 · 626 阅读 · 0 评论 -
微服务是什么?它是怎么演变而来的,即微服务 Spring Boot Spring Cloud 三者之间的关系(纯概念,自用,嘎嘎)
微服务是什么?微服务架构是一种架构模式或者说一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行在其独立的进程中,服务之间互相协调、互相配合,为用户提供最终的价值。微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底去掉耦合,每一个微服务提供单个业务功能,一个服务只做一件事。从技术角度讲就是一种小而独立的处理过程,类似与进程的概念,能够自行单独启动或销毁,可以拥有自己独立的数据库。相当于把原来的一个大进程拆分成了多个小进程。微服务优点:1.每个服务足够内聚,足够原创 2020-11-12 15:57:39 · 318 阅读 · 1 评论 -
熔断器 Spring Cloud Hystrix的配置和使用
熔断器的核心:线程隔离和服务降级。1.线程隔离:是指Hystrix为每个依赖服务调用一个小的线程池,如果线程池用尽,调用立即被拒绝,默认不采用排队。2.服务降级(兜底方法):优先保证核心服务,而非核心服务不可用或弱可用。触发Hystrix服务降级的情况:线程池已满、请求超时。线程隔离和服务降级之后,用户请求故障时,线程不会被阻塞,更不会无休止等待或者看到系统奔溃,至少可以看到执行结果(熔断机制)。局部熔断/服务降级案例注意,前提是你已经把消费者和提供者都注册到了注册中心,没有的话:(1)引入.原创 2020-11-09 21:09:48 · 475 阅读 · 0 评论 -
模块间通信使用RestTemplate时报错java.lang.IllegalStateException: No instances available for 127.0.0.1
我在RestTemplate的配置类里使用了 @LoadBalanced再调用restTemplate时必须使用应用名代替ip+port必须使用应用名作为代替ip:端口,http://127.0.0.1:8080/msg改为:http://应用名/msg不然会报错使用RestTemplate时报错java.lang.IllegalStateException: No instances available for 127.0.0.1总结:负载均衡模式下,会有很多同名应用,但是他们的ip+原创 2020-11-09 20:50:26 · 667 阅读 · 0 评论 -
配置负载均衡 Spring Cloud Ribbon,及实现原理源码探究(一步一截图,超详细)
Ribbon是Netflix发布的负载均衡器,有助于控制HTTP客户端行为。为Ribbon配置服务提供者地址列表后,Ribbon就可基于负载均衡算法,自动帮助服务消费者请求。Ribbon默认提供的负载均衡算法:轮询(默认),随机,重试法,加权。当然,我们可用自己定义负载均衡算法负载均衡配置注意,默认已经创建了Eureka服务,并且在其中添加了提供者user-provider和消费者user-consumer。不会的同学点这里,看我上篇博客。那么让我们开始吧。(1)复制user-provider为u原创 2020-11-09 20:17:58 · 141 阅读 · 0 评论 -
Spring Cloud Eureka配置并添加消费者和生产者,并让消费者通过Eureka访问提供者
执行过程:1.Provider:服务提供者,异步将自身信息注册到Register(注册中心)2.Consumer:服务消费者,异步去Register中拉取服务数据3.Register异步推送服务数据给Consumer,如果有新的服务注册了,Consumer可以直接监控到新的服务4.Consumer同步调用Provider5.Consumer和Provider异步将调用频率信息发给Monitor监控为什么 要用注册中心?1、微服务数量众多,要进行远程调用就需要知道服务端的ip地址和端口,注册.原创 2020-11-09 19:11:58 · 1372 阅读 · 2 评论