常用代码解决方案
文章平均质量分 80
主要收集能解决或实现各种问题的方法,包含JAVA、SQL、JS等等
熊崽_张
这个作者很懒,什么都没留下…
展开
-
WebSocket 的 6 种集成方式
和 WebMVC 中的 WebSocketClient 一样,Reactive 包中的 WebSocketClient 也有很多实现类,比如 ReactorNettyWebSocketClient,JettyWebSocketClient,UndertowWebSocketClient,TomcatWebSocketClient 等等,也是需要大家基于自身项目的容器使用不同的实现类。通过我的测试发现基本上所有的 WebSocket 包括前端 js 自带的,都实现了自动回复;转载 2024-07-19 09:49:17 · 103 阅读 · 1 评论 -
Spring Boot 实现微信点餐系统
插入过程:通过一个 hash 函数确定 Entry 的插入位置 index=hash(key),但是数组的长度有限,可能会发生 index 冲突,当发生了冲突时,会使用头插法,即为新来的 Entry 指向旧的 Entry,成为一个链表。之后,让这个被关注的节点删除,则客户端的 Watcher 会收到相应通知,此时再次判断自己创建的节点是否是 locker 子节点中序号最小的,如果是则获取到了锁,如果不是则重复以上步骤继续获取到比自己小的一个节点并注册监听。如 synchronized。...转载 2022-08-04 20:35:51 · 293 阅读 · 0 评论 -
高并发场景下 RabbitMQ 消费端服务限流实践
限流在我们的实际工作中还是很有意义的,在使用上生产端没有变化,重点在消费端,着重看以下两点:增加限流参数设置限流情况 ack 设置为手动签收。转载 2022-08-04 20:30:39 · 563 阅读 · 0 评论 -
GO-大型高并发系统架构设计
怎样保证高并发下,正确的扣库存,还能快速的响应用户请求?在本地减库存以后,如果本地有订单,我们再去请求 Redis 远程减库存,本地减库存和远程减库存都成功了,才返回给用户抢票成功的提示,这样也能有效的保证订单不会超卖。完整的订单系统还有订单进度的查看,每台服务器上都有一个任务,定时的从总库存同步余票和库存信息展示给用户,还有用户在订单有效期内不支付,释放订单,补充到库存等等。从上面的介绍我们知道用户秒杀流量通过层层的负载均衡,均匀到了不同的服务器上,即使如此,集群中的单机所承受的 QPS 也是非常高的。.转载 2022-08-04 20:29:27 · 1667 阅读 · 0 评论 -
springboot-分布式日志链路跟踪解决方案
作者:朱乐陶,软件架构师,具备多年 Java 开发及架构设计经验,擅长微服务领域作者博客:https://blog.csdn.net/zlt2000背景开发排查系统问题用得最多的手段就是查看系统日志,在分布式环境中一般使用 ELK 来统一收集日志,但是在并发大时使用日志定位问题还是比较麻烦,由于大量的其他用户 / 其他线程的日志也一起输出穿行其中导致很难筛选出指定请求的全部相关日志,以及下游线程 / 服务对应的日志。解决思路每个请求都使用一个唯一标识来追踪全部的链路显示在日志中,并且不修改原.转载 2022-05-14 10:58:09 · 4079 阅读 · 0 评论 -
单点登录原理与简单实现
作者:凌承一www.cnblogs.com/ywlaker/p/6113927.html一、单系统登录机制1、http 无状态协议web 应用采用 browser/server 架构,http 作为通信协议。http 是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求 / 响应对之间没有任何联系但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器请求,必须鉴别浏览器请求.转载 2022-05-12 20:26:31 · 341 阅读 · 0 评论 -
代码优化-减少if else
写在前面不知大家有没遇到过像 “横放着的金字塔” 一样的 if else 嵌套:我并没夸大其词,我是真的遇到过了!嵌套 6、7 层,一个函数几百行,简!直!看!死!人!if else 作为每种编程语言都不可或缺的条件语句,我们在编程时会大量的用到。但 if else 一般不建议嵌套超过三层,如果一段代码存在过多的 if else 嵌套,代码的可读性就会急速下降,后期维护难度也大大提高。所以,我们程序员都应该尽量避免过多的 if else 嵌套。下面将会谈谈我在工作中如何减少 if else.转载 2022-02-28 16:20:06 · 2271 阅读 · 0 评论 -
七大排序详解
原文地址 mp.weixin.qq.com注:lgN 在这里为 1og2N 简写为了方便描述, 本文默认用 int 类型比较,从小到大排序本文排序算法以 java 语言实现本文的排序都是比较排序比较次数和赋值和交换次数有的排序不好分析,可能不准确一. 插入排序对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入从第一个元素开始,该元素认为已经被排序;取出下一个元素,在已排序的元素序列中从后向前扫描;如果已排序元素大于新元素,新元素继续比.转载 2022-02-28 16:10:42 · 75 阅读 · 0 评论 -
分布式ID详解
1. 背景在我们的业务需求中通常有需要一些唯一的 ID,来记录我们某个数据的标识:某个用户的 ID某个订单的单号某个信息的 ID通常我们会调研各种各样的生成策略,根据不同的业务,采取最合适的策略,下面我会讨论一下各种策略 / 算法,以及他们的一些优劣点。2.UUIDUUID 是通用唯一识别码(Universally Unique Identifier)的缩写,开放软件基金会 (OSF) 规范定义了包括网卡 MAC 地址、时间戳、名字空间(Namespace)、随机或伪随机数、时转载 2022-02-27 09:52:43 · 349 阅读 · 0 评论 -
JS延迟处理方法
setTimeout 函数内部效果,在Vue事件中没有执行1、定义一个 that 暂存 this2、再改变变量的值,就会生效。必须为JavaScript代码串格式/*定义一个暂存的this,用于延迟操作*/let _this = this; setTimeout(() => { _this.downloadFile(downloadKey, num);}, 500);//或者setTimeout(function () { _this.downloadF原创 2022-01-29 15:58:52 · 5752 阅读 · 0 评论 -
BigDecimal常用方法
比较//前提为a、b均不能为nullif(a.compareTo(b) == -1){ System.out.println("a小于b");} if(a.compareTo(b) == 0){ System.out.println("a等于b");} if(a.compareTo(b) == 1){ System.out.println("a大于b");} if(a.compareTo(b) > -1){ System.out.println(".原创 2022-01-29 15:49:59 · 461 阅读 · 0 评论 -
JAVA:JSON转List、集合非空判断
/** * 是否所有集合都为空 */ public static boolean allEmpty(List<?>... lists) { for (List<?> list : lists) { if (list != null && !list.isEmpty()) { return false; } } re原创 2022-01-29 15:48:43 · 745 阅读 · 0 评论 -
文件压缩、下载方法
文件下载方法 @RequestMapping(value = "/download", method = RequestMethod.GET) @ResponseBody public ResponseEntity<InputStreamResource> download(){ ResponseEntity<InputStreamResource> responseEntity = ResponseEntity.status(HttpStatus.原创 2022-01-29 15:45:14 · 1538 阅读 · 0 评论