![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后端
qq_42614414
这个作者很懒,什么都没留下…
展开
-
AES加密
`package cn.tongdun.preserver.util;/**@author gxd18@create 2022/3/7 15:02*/import java.io.UnsupportedEncodingException;import java.nio.charset.Charset;import java.security.InvalidAlgorithmParameterException;import java.security.InvalidKeyExceptio原创 2022-03-08 11:36:15 · 77 阅读 · 0 评论 -
多级缓存···
1、redis单机版哨兵:监控,主从复制,故障转移,竞选机制,缺点是不能横向拓展集群:缓存商品页实现todo先从redis取,若没有再从数据库查询,查询出来后就存入redisredis序列化问题解决2、本地热点缓存先从本地热点缓存查,若没有,再去redis查,redis也没有,再去数据库查,查询完之后,分别把缓存存入本地、redis热点脏读非常不敏感生命周期短内存可控实现guava可控大小失效时间LRU失效策略线程安全的3、nginx_proxy_原创 2021-07-02 18:11:25 · 67 阅读 · 0 评论 -
分布式会话管理
1、基于cookie传输sessionIdtodo2、基于token传输sessionIdtodo将cookie或token用redis管理起来,都可以解决分布式会话的问题,但大型企业级的项目,最好使用基于token的方式传输sessionId为什么……cookie只支持html页面,无法支持移动设备、微信小程序、微信公众号,网络的路由规则是否会被改变呢,也不是我们后端人员所能控制的...原创 2021-07-02 09:27:48 · 102 阅读 · 0 评论 -
内置Tomcat配置优化
server.tomcat.accept-count=100等待队列长度server.tomcat.max-threads=200最大线程数server.tomcat.min-spare-threads=10最小线程数server.tomcat.max-connections=10000最大连接数以上都是tomcat的默认配置默认连接数超过10000就拒绝连接默认线程数超过200+100就拒绝处理server.tomcat.accept-count=1000等待队列长度server.tomc原创 2021-07-01 18:34:16 · 280 阅读 · 0 评论 -
Java分层领域模型DO、MODEL、DO
DO(Data Object):与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。DTO(Data Transfer Object):数据传输对象,Service 和 Manager 向外传输的对象。Query:数据查询对象,各层接收上层的查询请求。注:超过 2 个参数的查询封装,禁止 使用 Map 类来传输。VO(View Object):显示层对象,通常是 Web 向模板渲染引擎层传输的对象。Model参考文章领域模型中的实体类...原创 2021-06-01 10:13:43 · 405 阅读 · 0 评论 -
如何实现秒杀令牌?
Controller @RequestMapping(value = "/generatetoken",method = RequestMethod.POST,consumes = CONTENT_TYPE_FORMED) @ResponseBody public CommonRetureType generateToken() { String killToken = promoService.generateSecondKillToken(itemId, pro原创 2021-06-18 10:29:37 · 247 阅读 · 0 评论 -
秒杀中如何限流
private RateLimiter orderCreateRateLimiter;@PostConstruct public void init(){ orderCreateRateLimiter = RateLimiter.create(300); 同一时间只能通过300个 }在下单之前先判断下,如果返回false,则报错 public CommonReturnType createOrder( { if(!orderCreateRateLimiter.tryAcqu原创 2021-06-18 10:19:00 · 69 阅读 · 0 评论 -
如何在秒杀中用验证码分流压力
为什么要用验证码?在秒杀的过程中突然跳出一个验证码,虽然给用户的体验不好,但一定程度上分散了同一时间下单压力,保持系统的可用性1、后端之Controller//生成验证码 @RequestMapping(value = "/generateverifycode",method = {RequestMethod.GET,RequestMethod.POST}) @ResponseBody public void generateverifycode(HttpServletRe原创 2021-06-18 10:15:11 · 246 阅读 · 0 评论 -
jar包部署项目
1、IDEA打成jar包mvn clean package -Dmaven.test.skip=true2、上传jar包WinSCP软件上传cmd小黑框scp 指令上传3、云端启动1、 java -jar xxx.jar --启动项目;窗口关闭,项目也就关闭了2、 nohup java -jar xxx.jar & --后台启动,窗口关闭了,项目仍然运行--------nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行-------原创 2021-06-17 14:04:10 · 463 阅读 · 0 评论