-
使用RedisAtomicInteger计数出现少计问题及解决
发布时间:2022-11-23
最近工作中遇到了这样一个场景,同一个外部单号生成了多张出库单,等待所有相关的出库单都出库成功后回复成功消息外部系统调用方。因为是分布式布系统,我使用了RedisAtomicInteger计数器来判断出库单是否全部完成,数量达成时回复成功消息给外部系统调用方。在本地测试和测试环境测试时都没有发现问题,到了生产环境后,发现偶尔出现所有出库单都已经出库,但没有回复消息给调用方,如:出库单15张,但计数器只有14。分析开始以为是有单据漏计算了,通过日志分析,发现所有的出库单都统计进去了。然后通过增加打开
-
Spring AOP有多少个通知以及它们的执行顺序介绍
发布时间:2022-11-17
这篇文章主要介绍了Spring AOP有多少个通知以及它们的执行顺序,具有很好的参考价值,希望对大家有所帮助。Spring AOP有多少个通知以及它们的执行顺序Spring AOP有多少个通知①前置通知(Before):在连接点执行前执行该通知②正常返回通知(AfterReturning):在连接点正常执行完后执行该通知,若目标方法执行异常则不会执行该通知③异常通知(AfterThrowing):在连接点执行抛出异常时执行该通知④后置通知(after/finally):在连接点执行完成后(不管成
-
python字符串中两个大括号{{}}的使用及说明
发布时间:2022-11-16
这篇文章主要介绍了python字符串中两个大括号{{}}的使用及说明,具有很好的参考价值,希望对大家有所帮助。python字符串中两个大括号{{}}的解读解答在使用'hello {name}.format(name='world')'的时候大括号是特殊字符,如果需要显示大括号,用{{代替{, 用}}代替}如下:>>> 'hello {{worlds in braces!}}, {name}
-
Go模块在下游服务抖动恢复后CPU占用无法恢复原因
发布时间:2022-11-14
某团圆节日公司服务到达历史峰值 10w+ QPS,而之前没有预料到营销系统又在峰值期间搞事情,雪上加霜,流量增长到 11w+ QPS,本组服务差点被打挂(汗所幸命大虽然 CPU idle 一度跌至 30 以下,最终还是幸存下来,没有背上过节大锅。与我们的服务代码写的好不无关系(拍飞事后回顾现场,发现服务恢复之后整体的 CPU idle 和正常情况下比多消耗了几个百分点,感觉十分惊诧。恰好又祸不单行,工作日午后碰到下游系统抖动,虽然短时间恢复,我们的系统相比恢复前还是多消耗了两个百分点。如下图:确
-
shell脚本实现Hbase服务的监控报警和自动拉起问题
发布时间:2022-11-10
期初是我们的物理机上安装了Hbase,由于物理机硬件配置还可以,1T内存,64核。只有4台机器,我们装完Hbase后,发现应用请求比较多,导致RegionServer经常挂掉。但是机器本身资源使用率并不高,因此我们希望在一个节点上启用多个RegionServer服务。如果一个节点启动2个RegionServe服务,那么通过服务名称方式就无法监控每个服务,所以改用了端口监控的方式。当服务出现异常挂掉后,可以自动报警,并自动拉起该服务。1. 通过服务名监控monitor_regionserver.s
-
org.apache.tomcat.util.http.fileupload.IOUtils报错对应jar问题
发布时间:2022-11-08
org.apache.tomcat.util.http.fileupload.IOUtils是tomcat中自带的tomca-coyote.jar中的类。如下图:jar位置为tomcat8.0 引入lib下的jar包:tomcat-coyote.jar。jdk11,jdk12,没有jre的解决方法jdk11和jdk12在以前版本基础上,改动有点大,安装后默认是没有jre的。【解决方法】:使用bin\jlink.exe --module-path jmods --add-modules java.
-
解决mysql数据库设置远程连接权限执行grant all privileges on *.* to 'root'@'%' identified by '密码' with grant optio报错
发布时间:2022-11-07
mysql数据库设置远程连接权限,执行grant all privileges on *.* to 'root'@'%' identified by '密码' with grant optio报错ERROR1558 (HY000): Column count ofmysql.user is wrong. Expected 43, found 42. Created with MySQL 50556, now running 50639. Pleas
-
Object.assign触发watch原理示例解析
发布时间:2022-11-04
Object.assign,这个api在简单拷贝可枚举对象的属性值时经常用到。这里介绍一个在vue2中Object.assign的用法,这个用法在官网文档 有详细介绍:watch: {
someObject(nvalue, ovalue) {
...
}
}
// 为对象添加新属性
this.someObject = Object.assign({}, this.someObject, {&nbs
-
pandas如何解决excel科学计数法问题
发布时间:2022-11-02
excel默认处理超14位的数字成科学计数法,且后面的数字默认变0。使用pandas合表或者生成新表时这是最恶心的问题。亲测两个方法有效1、若数据量不大,可将to_excel替换成to_csv,csv的包容性还是极强的,但当数据量庞大时,会遇到打不开的情况。2、万能解法,read_excel时:df = pd.read_excel("filepath", dtype=str)一律str型,就不存在数字不数字的情况了。但要注意:df =&
-
Python+OpenCV实现单个圆形孔和针检测
发布时间:2022-10-31
如果中间红色区域是针则可以用下面的代码检测,其阈值和斑点检测的参数根据图像像素值做相应修改检测的主要思路是先通过找到外面的大圆,再通过圆心定位出一个ROI区域,在ROI区域中检测中心的检测对象import os
import cv2
import numpy as np
import math
# 检测针脚位置
def needelCenter_detect(img):
params&nb
-
高并发技巧之Redis和本地缓存使用技巧分享
发布时间:2022-10-29
众所周知,缓存最主要的目的就是加速访问,缓解数据库压力。最常用的缓存就是分布式缓存,比如redis,在面对大部分并发场景或者一些中小型公司流量没有那么高的情况,使用redis基本都能解决了。但是在流量较高的情况下可能得使用到本地缓存了,比如guava的LoadingCache和快手开源的ReloadableCache。三种缓存的使用场景这部分会介绍redis,比如guava的LoadingCache和快手开源的ReloadableCache的使用场景和局限,通过这一部分的介绍就能知道在怎样的业务
-
MySQL中BIGINT数据类型如何存储整数值
发布时间:2022-10-28
本文重点介绍 MySQL BIGINT 数据类型,并研究我们如何使用它来存储整数值。我们还将了解它的范围、存储大小和各种属性,包括有符号、无符号和零填充。整数类型(精确值) - INTEGER、INT、SMALLINT、TINYINT、MEDIUMINT、BIGINTMySQL 支持 SQL 标准整数类型INTEGER(或INT)和SMALLINT.作为标准的扩展,MySQL 还支持整数类型TINYINT、MEDIUMINT和BIGINT.下表显示了每种整数类型所需的存储空间和范围。表 11.1
-
Vue中keyup.enter和blur事件冲突的问题及解决
发布时间:2022-10-24
这篇文章主要介绍了Vue中keyup.enter和blur事件冲突的问题及解决,具有很好的参考价值,希望对大家有所帮助。keyup.enter和blur事件冲突问题 <el-input class="input-new-tag"
&nb
-
详解Vue3 SFC 和 TSX 方式调用子组件中的函数
发布时间:2022-10-21
在开发中会遇到这样的需求:获取子组件的引用,并调用子组件中定义的方法。如封装了一个表单组件,在父组件中需要调用这个表单组件的引用,并调用这个表单组件的校验表单函数或重置表单函数。要实现这个功能,首先要在子组件中暴露父组件需要调用的函数,然后去父组件中获取子组件的引用,最后通过子组件的引用调用子组件暴露的方法。1 子组件暴露方法1.1 SFC(.vue)暴露方法在使用.vue定义的组件中,setup中提供了defineExpose()方法,该方法可以将组件内部的方法暴露给父组件。创建子组件demo
-
JavaScript中innerHTML使用方法实例
发布时间:2022-10-15
innerHTML属性允许更改html元素的内容,可以设置或返回表格行的开始和结束标签之间的HTML,本篇文章就来给大家介绍关于innerHTML的用法innerHTML的写法对于element,设置innerHTML指定的元素名称element.innerHTML;将指定元素的html代码分配给变量var sample1 = element.innerHTML用指定元素替换变量的值通过如下编写,可以在删除element元素的内容之后在element元素上显示变量s