- 博客(28)
- 收藏
- 关注
原创 使用WebSocket、SockJS、STOMP实现消息实时通讯功能
WebSocket、SockJs、STOMP三者关系WebSocket 是底层协议,SockJS 是WebSocket 的备选方案,也是底层协议,而 STOMP 是基于 WebSocket(SockJS)的上层协议。
2023-03-07 18:00:58
1628
原创 关于Java8并行流处理丢数据和数组下标越界的问题
背景Java 8 list的并行流处理,会造成数组下标越界和数据丢失情况。如下所示:List<Integer> list = new ArrayList<>();for(int i=0;i<1000;i++){ list.add(i+1);}System.out.println("原始集合大小:"+list.size());List<Integer> newList = new ArrayList<>();list.paralle
2022-03-21 09:29:02
2066
原创 Java 字符串逻辑运算处理
背景数据库存储范围 >=0 和 <=5 需要判断变量 val 是否满足该条件解决方案可以利用Java 对js 的支持,将数据库的范围参数组合成 val >=0 && val <=5然后Java 调用执行js脚本,得出结果。 // java 调用js库 ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName(
2022-03-19 10:46:16
1091
原创 WebSocket 实战
WebSocket 实战配置 WebSocketConfig@Configurationpublic class WebSocketConfig { @Bean public ServerEndpointExporter serverEndpointExporter(){ return new ServerEndpointExporter(); }}创建 WebSocket 服务端/** * @ServerEndpoint 注解是一个类层次
2021-11-16 16:17:22
1011
原创 基于 ApplicationEvent 实现事件监听
基于 ApplicationEvent 实现事件监听1.创建 Event 监听类public class SmsNoticeEvent extends ApplicationEvent { //业务参数 private String message; public SmsNoticeEvent(Object source, String message) { super(source); this.message = message;
2021-11-16 15:37:09
542
原创 java关于Zxing 生成带Logo 二维码图片失真问题
java关于Zxing 生成带Logo 二维码图片失真问题问题点logo本身是高清图片,但是Zxing生成的二维码中,logo像素失真,感觉被严重压缩一样。排查问题是Graphics2D 绘制图片时未使用优化方案原始写法: Graphics2D g2 = matrixImage.createGraphics(); int matrixWidth = matrixImage.getWidth(); int matrixHeigh = matrixImage.getHeight();
2020-12-23 16:08:54
1206
1
原创 微信模板消息跳转小程序指定页面(非首页)的问题
需求微信公众号发送模板消息,跳转到指定小程序的页面,可携带参数问题点文档示例根据官方文档的描述和示例展示,模板消息对象只要在miniprogram 对象中设置小程序的appid 和 pagepath 即可(注:pagepath 不能“/”开头),经测试模板消息始终不能跳转至小程序的指定页面,总是跳到小程序首页。后台代码-(bug版)以上代码看似按照文档规定传参,但实际无法跳转至指定页面。微信开放社区里面,解释是模板路劲如果使用path ,就只能跳转小程序首页,必须改为pagepath
2020-11-13 17:47:35
6603
3
原创 docker搭建gitlab遇到的坑
docker搭建gitlab遇到的坑环境安装遇到的坑检查容器日志文件解决办法最终的步骤:环境CentOS 7.0Docker 1.13.1GitLab 11.0.1安装遇到的坑docker安装并启动gitLab,没报任何错误。进入GitLab容器的时候报如下错误:提示gitLab 一直在尝试重启,无法进入容器。检查容器日志文件docker logs gitlab发现是没有权限创建“/etc/gitlab/gitlab.rb”文件,导致gitlab 容器一直在重启尝试创建它。解决
2020-11-09 16:12:25
1031
原创 SpringCloud基于nacos注册中心的三种本地负载均衡实现方式
第一种:采用 RestTemplate + @LoadBalanced注解 // 1. 编写配置类将RestTemplate 注册到spring容器中 @Bean @LoadBalanced public RestTemplate restTemplate() { return new RestTemplate(); } // 2.消费者调用 @GetMapping(...
2020-01-10 15:54:21
4284
1
原创 RabbitMQ重试机制与死信队列触发的条件
RabbitMQ重试机制触发的条件:1. 消费者程序出现异常 例如: throw new RuntimeException("测试重试消息"); 此时mq会根据配置文件设定的重试策略进行重试。2. 手动告诉mq签收失败 例如: channel.basicNack(message.getMessageProperties().getDeliveryTag(), false...
2019-12-23 13:51:14
2293
原创 Chrome浏览器页面崩溃怎么办
问题如下图默认打开Chrome浏览器就崩溃:解决办法:鼠标右击“Chrome浏览器”快捷键 ----> 属性 ----> 快捷方式 ----> 目标(T): ----> 末尾增加 “ --no-sandbox ” (前面有空格) ----> 确定双击Chrome浏览器,再次打开就好了,只是会提示”您使用的是不受支持的命令行标记 -no-sandbox“,不影...
2019-12-18 11:54:47
723
原创 影响文件上传Waiting(TTFB)时间长的因素以及解决办法
背景前端时间前端同事在调后台文件上传结构的时候反应文件上传接口很慢。通过查看后台日志,发现文件上传接口的实际请求与响应在1秒以内,但是前端调用接口的请求与响应在5秒以上,通过Chrome调试,返现问题出在Waiting(TTFB)时间过长。什么是 Waiting (TTFB)TTFB: 是“最初的网络请求被发起”到“从服务器接收到第一个字节前”所花费的毫秒数。影响的因素服务器阻塞浏览...
2019-10-09 12:14:02
4073
原创 Java 模板方法设计模式 实战 ——获取腾讯视频真实地址
背景:最近想做一个资讯发布的小功能,涉及图文,视频和音频三种类型,由于各大视频平台的接口都是需要vip资格,非rmb不能玩,所以尝试着爬取网页视频信息。说明:本示例采用模板方法设计模式,利用抽象接口,模板方法,模板实现,将各大平台的视频信息抓取方式进行整合。本示例只实现了腾讯视频的获取,其他的等以后再完善吧。代码示例:抽象接口/** * 在线视频真实地址解析接口 */public...
2019-09-29 18:17:06
1181
1
原创 启动、停止Nginx的方式以及日志分割
方式一:进入nginx 的安装目录:$ cd /usr/local/application/nginxnginx 启动命令: $ ./sbin/nginxnginx 停止命令: $ ./sbin/nginx -s stopnginx 退出命令: $ ./sbin/nginx -s quitnginx 重启命令: $ ./sbin/nginx -s reopennginx 重新加载配置...
2019-09-16 15:12:37
410
原创 Linux(Centos7) 如何安装 nginx
第一步 Nginx 安装依赖的库:$ yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel gd gd-devel说明:必须项: gcc gcc-c++ ———— 编译用的;非必需:(可根据实际需求来配置)pcre pcre-deve ———— rewrite模块需要;zl...
2019-09-16 14:51:56
139
原创 经典数据结构之红黑树
什么是红黑树?红黑树是一种自平衡二叉查找树,和AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。特性根节点是黑色。节点是红色或黑色。每个叶子节点都是黑色的空节点(NIL节点)。每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)。从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。默认新增的...
2019-08-28 17:17:11
165
原创 平衡二叉树与B树的区别
什么是平衡二叉树?详见平衡二叉树什么是B树?详见B树区别:B树是平衡多路查找树,它每个节点包含的关键字增多了,在应用时可利用磁盘块的原理把结点大小限制在磁盘大小范围内从而优化读写速度,同时树的关键字增多后层级比原理的二叉树少量,减少了数据查找次数和复杂度。示例:数据项:【1,2,3,5,6,8,9,11,12,13,15】二叉树结构B树结构1.树结构的层级,也就是高度,...
2019-08-27 18:04:50
4072
原创 B树与B+树区别
什么是B树?B树是一种平衡多路查找树,它的每一个节点最多包含K个孩子,K被称作为B树的阶,K的大小取决于磁盘页的大小。定义一棵m阶B树(balanced tree of order m)是一棵平衡的m路搜索树。它或者是空树,或者是满足下列性质的树:根结点至少有两个子女;每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m每一个叶子节点都包含k-1个元...
2019-08-27 16:43:16
570
原创 二叉查找树与平衡二叉树的区别
二叉查找树二叉查找树又名二叉排序树,亦称二叉搜索树。是每个结点最多有两个子树的树结构。通常子树被称作“左子树”和“右子树”。定义若左子树不空,则左子树上所有节点的值均小于它的根节点的值;若右子树不空,则右子树上所有节点的值均大于它的根节点的值;左、右子树也分别为二叉排序树;没有键值相等的节点。示例图看起来二叉树的结构是很均匀的排列的,别急,当依次插入13,14数据后,如下图:...
2019-08-27 14:36:28
8820
原创 微信H5分享、复制链接遇到的坑
背景:项目基于微信H5开发,微信内嵌浏览器在访问项目时,可以分享和复制链接,因为连接中携带了openId,导致系统权限失效,相当于别人拿着你家的钥匙进你家门一样。解决思路:在微信H5的入口请求中,增加携带openId 的cookie,前端全局js在页面加载时获取cookie ,如果没有,或者 cookie中的openId 与 URL携带的openId不一致,说明是分享或者复制的连接,直接跳转...
2019-08-15 16:54:10
6105
原创 后端程序猿必备的linux命令(二)—— top 命令的使用
top 命令: 用于动态展示系统进程信息,默认每三秒刷新一次!可以按 [Enter] 键可即时刷新,需要注意的是top命令的每次刷新是消耗cpu性能的,如果服务器本事已近处于高负载运行状态下,会加剧服务器的压力,需谨慎使用!初识 top[root@aid03 ~]# top第一部分: 系统整体使用信息统计top 显示:21:27:34 — 当前时间175 days,5...
2019-08-15 16:25:28
403
原创 后端程序猿必备的linux命令(一)—— ps 命令的使用
ps 命令: 用于展示当前时刻的系统进程信息,是静态的!查看所有进程信息ps aux进程列表代表的含义:USER : 进程运行的所有者PID :进程编号%CPU :进程占用cpu时间的百分比%MEM :进程占内存的百分比VSZ : 所占虚拟内存大小RSS : 驻留内存 ----- 通常看这个指标TTY : 进程运行的终端STAT : 进程状态一级状态:R 运行...
2019-08-15 15:41:48
303
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人