9.Spring-Cloud-Hystrix之请求缓存(踩坑)
Posted 盲目的拾荒者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了9.Spring-Cloud-Hystrix之请求缓存(踩坑)相关的知识,希望对你有一定的参考价值。
当系统的用户不断增长时, 每个微服务需要承受的并发压力越来越大。在分布式环境下,通常压力来自于对依赖服务的调用,因为请求依赖服务的资源需要通过通信来实现,这样的依赖方式比起进程内的调用方式引起一部分的性能损失,同时HTTP相比于其他高性能的通信协议在速度上没有任何优势,所以它有些类似于对数据库这样的外部资源进行读写操作,在高并发的情况下可能会成为系统的瓶颈。
在高并发的场景之下,Hystrix中提供了请求缓存的功能,可以很方便的开启和使用请求缓存来优化系统,达到减轻高并发时的请求线程消耗、降低请求响应时间的效果。
具体如下:
一:服务消费者
1.pom.xml
2.启动类
3.controller
4.service
5.config 存放配置文件的包
package com.niugang.config; import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.context.annotation.Configuration; /** * * @author niugang 扫描过滤器 * */ @ServletComponentScan(basePackages="com.niugang.filter") @Configuration public class FilterCompentConfig { }
6.entity
package com.niugang.entity; import java.io.Serializable; /** * 用户实体 * * @author niugang * */ public class User implements Serializable { private static final long serialVersionUID = 1L; private Integer id; private String username; private String phone; private int randNum; // public User() { super(); } public User(Integer id, String username, String phone) { super(); this.id = id; this.username = username; this.phone = phone; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public int getRandNum() { return randNum; } public void setRandNum(int randNum) { this.randNum = randNum; }
二.服务提供者改动controller
启动高可能注册中心(之前博客中有),启动服务提供者(之前博客中有),启动消费者。
一次浏览器请求,在controller中调用两次服务,randNum数据一样,说明第二次是从缓存中拿的数据。
微信公众号:
JAVA程序猿成长之路
分享资源,记录程序猿成长点滴。专注于Java,Spring,SpringBoot,SpringCloud,分布式,微服务。
以上是关于9.Spring-Cloud-Hystrix之请求缓存(踩坑)的主要内容,如果未能解决你的问题,请参考以下文章