自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

bb

  • 博客(74)
  • 收藏
  • 关注

原创 2022-11-09 阿里云/腾讯云OSS绑定域名

阿里云/腾讯云oss绑定域名

2022-11-09 13:47:46 645 1

原创 2022-11-03 vue的两种路由对应nginx所需配置

vue打包时nginx对应配置

2022-11-03 16:29:30 1859

原创 2022-10-13 支付宝开放平台支付

支付宝开放平台支付

2022-10-13 17:17:21 224

原创 2022-07-26 微信服务商

微信服务商

2022-07-26 18:30:55 701

原创 2022-07-26 域名配置HTTPS

域名配置https

2022-07-26 14:30:39 841

原创 2022-06-28 大文件上传速度慢

文件上传

2022-06-28 18:30:24 1413

原创 2022-06-01 阿里云云效流水线主机部署解压问题

阿里云云效

2022-06-01 14:47:31 671

原创 2022-03-16 Redis的SDS

SDS = simple dynamic string = 简单动态字符串理解Java的数组和List数组:长度固定,如果一直添加元素,超过数组长度会报错List:长度动态,如果一直添加元素,容量不够会自动扩容底层还是数组,只不过封装了扩容等操作,并记录了长度C的字符串和SDS字符串:即字符数组,长度固定,如果concat超出长度,会报错SDS:长度动态,如果concat超出长度,会自动扩容底层还是字符数组,只不过封装了扩容等操作,并记录了长度小结顾名思义,动态字符串,动态扩容,无需

2022-03-16 11:53:43 739

原创 2021-12-31 阿里云云效自动化部署

目的结合阿里云云效平台,实现自动化部署Maven多模块项目云效 + Docker部署方式:扫描子模块 -> 子模块打包、构建镜像、推送到镜像仓库 -> 执行脚本运行服务器上脚本(删除旧镜像、拉新镜像、关闭对应模块容器、重新执行docker-compose.yml)搭建项目Dockerfile# jdkFROM registry.cn-hangzhou.aliyuncs.com/hangzhouhuiyao/openjdk:8-jdkMAINTAINER guo

2021-12-31 12:03:04 2448

原创 2021-12-29 云效部署Maven多模块项目

1、创建项目仓库2、创建流水线3、配置流水线配置模块名变量配置代码扫描配置镜像打包(结合Dockerfile自动打包并推送镜像)配置部署(结合脚本用Docker-Compose部署项目)4、linux脚本:拉镜像,根据参数启动不同docker-compose即可小结:就是配置参数后,传参来对不同模块打包镜像、推送镜像、执行脚本、启动项目...

2021-12-29 18:10:30 1071

原创 2021-10-21 mybatis-plus自带的批量插入比自定义的批量插入慢

原因(配置sql执行时打印sql语句)mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl自带的saveBatch自定义的insertBatchxml<insert id="insertBatch"> insert into test(num, update_time) values <foreach collection="

2021-10-21 10:08:31 631

原创 2021-09-01 小程序嵌入H5,H5内调用腾讯地图报错

需求:H5内有地图功能,再将H5嵌入小程序问题:小程序web-view标签嵌入该H5时,出现如下错误原因:没配置该域名,但也不能配置,因为配置后需要将一个验证文件放上去,这是腾讯的服务器,必然实现不了,因此就会出现这个问题无解:自己拦截自己...

2021-09-01 10:19:44 1124 1

原创 2021-08-25 雪花算法

雪花算法:分布式唯一ID生成的一种方式四部分,共64位1、符号位(1位):始终为02、时间位(41):当前时间毫秒3、标识位(10位):前五位机房ID,后五位及其ID(可根据业务修改)4、每毫秒可生成多少唯一ID(12位)相关框架百度:UidGenerator美团:Leaf学习自文章《京东二面:为什么需要分布式ID?你项目中是怎么做的?》...

2021-08-25 14:12:25 91

原创 2021-08-23 Redis中AOF、RDB和复制功能对过期键的处理

思考1、生成/加载RDB文件、AOF写入、AOF重写、主从复制时,对过期的key会如何处理?2、当访问过期key时,redis会如何处理?RDB文件生成、加载时对过期key的处理生成RDB文件时,会略过已过期的key加载RDB文件时,若为主服务器,会略过过期key,若为从服务器,则不会略过过期keyAOF写入过期key没被定期删除/惰性删除,AOF文件不会有任何改变定期删除:定期查询要过期的key,如果有删除该key(AOF文件中append一条DEL指令)惰性删除:已过期key存在r

2021-08-23 15:58:45 364

原创 2021-08-17 Mybatis-Plus仅查部分字段时需注意

使用MPselectOne且查部分字段时,一定要有一个字段不为null,否则查出来的对象为nullShop shop = shopMapper.selectOne(Wrappers.lambdaQuery(Shop.class).select(Shop::getName, Shop::getDistrict).eq(Shop::getId, shopId));因此至少需要一个非null字段,才能保证这个对象一定存在,否则就需要判断对象是否为nullShop shop = shopMapper.s

2021-08-17 15:38:02 420

原创 shell脚本学习

基操# 打印echo "hello world"shell变量# 声明变量 # 直接声明 firstVar="第一个变量" # 间接声明 # 循环声明变量 for file in (`ls /etc`) for file in ${ls /etc} # 使用变量:最好加上花括号,便于阅读echo ${firstVar}echo $firstVar# 声明常量:即设置变量只读(设置后尝试修改则会报错)onlyReadVar="bb"readonly onlyRe

2021-07-21 13:55:03 112

原创 2021-07-08 Nginx再入

强推:狂神说的Nginx链接作为一个快速入门的视频还是很好理解的Nginx作用反向代理正向代理:VPN(代理C端)反向代理:Nginx(代理S端)负载均衡轮询、加权等方式做负载均衡动静分离静态文件可以直接放在nginx下配置Nginx配置文件(nginx.conf)配置详解1、全局配置2、事件配置3、服务配置1、负载均衡upstream myItem { server 127.0.0.1:8080;}

2021-07-08 16:15:58 80

原创 VMware16安装CentOS7、网络配置、远程连接

目录1、安装准备2、安装3、网络配置4、远程连接安装准备VMware16转载 - Linux>>CentOS 7镜像下载安装转载 - VMware 16 安装 CentOS 7.9 详细图文教程注意1、以下不要选,我选了启动不了虚拟机2、若在安装时配置网络,网关、掩码参数需要确定网络配置:连通网络,设置静态IP初始状态:ping不通百度、IP地址为空、网卡配置文件也是默认配置方法方法一:安装时配置,如上述教程方法二:安装后进入系统配置1、

2021-06-08 11:31:47 1552

原创 2021-06-07 字符串转含泛型的对象

方法:hutool的JSONUtil实体@Datapublic class MyResponse<T> { private String msg; private T data;}@Datapublic class MyObj { private String name;}测试public static void main(String[] args) { MyResponse<MyObj> myResponse2

2021-06-07 13:40:52 2456 1

原创 2021-05-24 谷歌浏览器所有页面都显示崩溃

前言早上一来开谷歌直接什么页面都是崩溃状态,我笑了,什么都没动,好像上周五杀了个毒解决1、C:\Users\HUAWEI\AppData\Local\Google\Chrome下有个User Data目录,重新建一个,原来的改名2、原来的设置、书签、插件、历史记录都在User Data/Default,覆盖一下即可,不过账号那些需要重新登录下...

2021-05-24 09:40:12 571

原创 2021-05-13 微信客服

前言早上测试客服时出了点问题,小结了几个注意点0、 一定要看文档1、接入很简单,小程序一个按钮,后台配置客服人员就好2、客服消息使用指南3、客服人员使用时和通过网页版客服工具与移动端小程序客服工具4、注意小程序接收消息:1、小程序客服人员微信搜索“客服小助手登录2、切换客服状态:首页状态要改为在线,否则无法接收消息3、当有消息发送时,就会在上方显示/在服务通知中会通知,点击即可接入;但无法选择用户接入,即一接入就是接入所有的等待回复,并且接入后,该用户只能由该

2021-05-13 11:41:40 137

原创 2021-05-11 微信开放平台客服消息

方案不要授权客服功能,小程序直接添加客服人员,小程序添加聊天按钮就可以真机调试了<button open-type="contact"> <view> <text>客服</text> </view></button>别问我为什么没用到开放平台配置了开放平台的消息与事件接收URL消息会被发送到这个url,而如果需要客服小程序来接收的话,需要用到小程序的转发消息,但这个接口返回值我全试了一遍,下面这

2021-05-11 09:41:02 427

原创 2021-03-10 Java包装类

Integer示例public class Test { public static void main(String[] args) { Integer a = 1; Integer b = 1; System.out.println(a == b);// true Integer c = 129; Integer d = 129; System.out.println(c == d);//

2021-03-10 16:31:38 89

原创 2021-03-09 微信代小程序实现业务之订阅消息设置

模板作用:发送订阅消息可用接口注意点1、只能添加类目中的模板,若需添加类目,可查看类目管理,但是非接口创建的小程序无法调用添加类目接口2、添加模板时,需要使用到模板中的关键字id,但是这个id可能会变化,所以需要通过获取模板标题下的关键词库接口来获取其id3、发送消息时,需要用到...

2021-03-09 17:35:27 270

原创 2021-01-24 SpringBoot + Spring Security + JWT 实现认证鉴权

前言1、会基本的Spring Security配置2、大概了解Spring Security原理(一条过滤器链)简单理解Spring Security就是一条过滤器链,如果你登录了,那么会有过滤器将你的认证信息解析出来并放到Security的上下文中,这样其他过滤器就通过这个认证信息来鉴权JWT配置简单描述之前由Security的过滤器来解析认证信息,现在我们自己定义一个过滤器,将携带的token解析为认证信息即可登录:登录成功后生成token// cn.mb

2021-02-24 15:59:33 475

原创 2021-01-28 第三方平台代小程序实现业务的[获取用户访问小程序数据日趋势]接口获取昨日数据的时间

测试后:次日7点可以获取到数据但是官方推荐10点后获取

2021-01-28 10:51:24 277

原创 2021-01-27 第三方平台授权令牌管理

前言项目是通过微信第三方平台做的代小程序实现业务,所以会管理已授权的小程序而在调用小程序授权的接口时,通常需要带上authorizer_access_token,而这个token有效期为2小时,所以过期时需要刷新现在刷新是获取authorizer_access_token后会记录其过期时间,下次获取后判断是否过期,过期则刷新authorizer_access_token特点(同小程序开发的access_token)获取/刷新接口调用令牌有效时间为2小时,推荐提前刷新(提前刷新后旧toke

2021-01-27 14:03:52 416 3

原创 2021-01-26 获取指定日期所在年/月/周中的第一天、最后一天、某天

整合hutool<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.4.0</version></dependency>测试package cn.mb.test;import cn.hutool.core.date.DateTime;import

2021-01-26 14:01:17 1726

原创 2021-01-22 微信小程序图片上传注意点

1、后台文件大小限制2、是否需要压缩3、如果要在小程序上展示图片,需要做内容识别校验,否则出现违规图片可能审核不通过

2021-01-22 10:14:00 469

原创 2021-01-20 图片压缩

前言项目中用到了华为云的ocr,但是识别速度过慢,问了客服了解到可能有几个原因 1、图片链接的话存在网络传输问题 2、图片过大问题 3、服务器网络带宽问题这里我主要处理2,因为用的是MultipartFile参数,因此考虑先压缩过后,再将图片进行ocr。方案hutool:发现hutool的工具真是够GB用了// 以下方式可以直接压缩并输出文件ImgUtil.compress(new File("原图片"), new File("输出图片"), 0.5F);// 但由于我不

2021-01-20 14:10:42 658

原创 2021-01-19 华为ocr

前言项目需要识别行驶证的功能,选择了华为的ocr,记录一波用法行驶证识别在线调试==(要开通该服务且图片要是行驶证)==SDK各语言SDKdemo下了SDK用AKSK那个demo即可注意点1、如果在自己项目使用,导jar的时候记得带上demo中的内容,要不然导不过来2、如果有jar冲突就自己个儿排除即可,我遇到的冲突如下...

2021-01-19 15:08:23 84

原创 2021-01-15 记一次微信支付订单号重复问题

问题今天系统突然出现订单号重复的问题,但通过日志观察,并没发现订单号有重复的(使用redis的incr生成),于是猜测可能是之前测试的时候用过这些订单号,但未支付的订单在商户上也查不到,所以最终只能通过代码的方式来处理。处理因为用的是第三方封装的微信支付jar,所以通过捕获其异常,如果是订单号重复,那么就重新生成订单号再次下单。雪花算法不过try-catch来处理,每次下单也是需要耗费时间的于是参考了雪花算法,据说只要是时间不回溯,编号就不会重复,可以看看这篇文章,感觉还不错

2021-01-15 11:37:35 1365

原创 2021-01-13过滤器、拦截器、切面区别

前言最近在搞重复请求处理,然后想到拦截器和切面都可以实现,但对于用哪种方式优点懵,查了资料后,发现其实过滤器也可以实现,于是记录一下三者的区别。过滤器、拦截器、切面区别1、执行顺序:过滤器 -> 拦截器 -> 切面2、过滤器和拦截器都是请求层面的拦截,切面是方法层面的拦截3、拦截器只在请求进入controller前执行,过滤器会在进入controller与执行后执行,切面可通过配置在方法执行前、后、环绕、异常执行4、获取参数方式:过滤器和拦截器都需要读取HttpRequest的

2021-01-13 14:30:17 1168

原创 2021-01-07 库存锁定问题

前言今天同事突然问我,要是一个商品我直接下单所有库存,那么是不是要等到订单取消后另一个人才可以下单,我思考了下,确实是需要限制一下,下面是我参考的方案方案:下单锁库存/支付锁库存通过淘宝测试,n件以内下单是下单锁库存,n件以上是支付锁库存这个n在后台应该是可以设置的,淘宝做这么久,肯定考虑到恶意下单的问题了不过支付锁库存会有问题,就是两个用户同时下单,而回调是分先后的,此时可能会造成一个用户支付成功,但是库存没有,这里可能就需要自动退款或其他的操作了小结目前没做这个功能,如果后续需要

2021-01-07 16:17:52 1527

原创 2021-01-07 mysql的一些优化

sql优化1、select 需要列 在select中最好只获取所需列,全部获取有点太多了(如果列太多)2、关闭查询缓存:这是为了避免生产中缓存失效,所以关闭缓存在测试查询时间3、explain:对索引进行优化,看有没有走我们预期的索引 force index(index name):强制走索引,放在语句最后即可4、如果使用了索引,那么要注意一些索引失效的情况,例如对索引列做函数操作、isnull判断等情况其他优化1、外部添加缓存层(redis)2、内部分库分表(mycat?听说

2021-01-07 09:40:57 113

原创 2021-01-05 MySQL json数据类型

前言最近同事负责的模块有用到json这个数据类型,之前没接触过,今天正好有空就记录下怎么使用。简介实际上我们存的时候还是存一个字符串,只不过我们在操作该数据类型的时候,可以通过JSON_XXX的函数来操作该字段准备一张表,插入数据CREATE TABLE `json_test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `json_str` json NULL, `json_arr` json NULL, PRIMARY KEY

2021-01-05 14:12:30 143

原创 2021-01-05 MP中service的saveOrUpdateBatch方法

表中存在主键1、实体主键 = null,直接插入2、实体主键 != null 查询entity entity == null -> 插入 entity != null -> 更新表中无主键无法执行批量操作

2021-01-05 11:41:15 8978 2

原创 2020-12-29 Sentinel流控规则链路方式失效

解决方案效果例子AController.testA接口调用AService.testA方法如果我们需要限制这个入口调用AService.testA的次数,则可以通过流控规则来限制在AService.testA方法上贴上@SentinelResource注解,并设置资源名及降级方法(因为此时是服务报错)后再去添加流控规则Controller、Service代码如下package cn.mb.sentinelconsumer.controller;import cn.mb.sent

2020-12-29 14:47:40 1505 4

原创 2020-12-28 微信小程序JSAPI支付的几个小问题

前言尼玛刚刚有个bug,就是早上11点下的单下午支付不了(prepay_id超时2小时,有做判断,超过2小时后重新调用下单接口),但刚刚直接订单已过期,我直接懵掉,还以为一个订单只能下一次单(但其实能下多次,只要你主要的参数不变,例如金额,订单号等),还瘠薄疯狂排查,最后发现是存储在redis中的支付参数过期时间是一天,忘记改成2小时了,我笑了。几个支付会报的错订单已过期:支付参数过期,拿着原来的参数可以再次下单订单已关闭:调用了关闭订单接口后,再下单可以下,但是扫描后就是订单已关闭

2020-12-28 16:47:00 850 1

原创 2020-12-25 RocketMQ常见问题

前言项目中有用到RocketMQ,所以思考了一波RocketMQ常见的问题。角色可能的问题Producer消息丢失Broker可用性、消息丢失Consumer消息丢失、顺序消费、重复消费Producer消息丢失场景: 假设Broker没问题,若生产者发送消息异常,且重试多次后也不成功,就会造成消息丢失方案:此处以异步发送消息为例,其有发送成功及失败回调,当成功回调中若状态不为OK/发送失败时对消息进行处理 1、将消息存储在

2020-12-25 13:45:08 217

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除