work
文章平均质量分 94
空槐树
哈哈。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
记一次Insert死锁
前言:本文为笔者自己对线上出现的一次死锁进行的分析,欢迎指正。异常线上跑自动化测试时,出现了异常:org.springframework.dao.DeadlockLoserDataAccessException: ### Error updating database. Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try原创 2021-03-01 18:55:16 · 852 阅读 · 0 评论 -
RabbitMQ 多数据源配置
背景公司多个研发团队,多套 RabbitMQ 地址,同一套地址中,也区分为多个 VirtualHost。如何控制某个 exchange/queue 只创建于某一个 virtualhost 中。采用 Spring 的 @Configuration 配置方式。???? Spring AMQP单数据源配置 org.springframework.amqp.rabbit.connection.CachingConnectionFactory org.springframework.a原创 2020-09-16 15:57:17 · 1718 阅读 · 1 评论 -
微信公众号开发流程记录(用户授权与自定义分享)
一、网页授权:微信文档:关于网页授权access_token和普通access_token的区别(1)微信网页授权是通过OAuth2.0机制实现的,在用户授权给公众号后,公众号可以获取到一个网页授权特有的接口调用凭证(网页授权access_token),通过网页授权access_token可以进行授权后接口调用,如获取用户基本信息;(2)其他微信接口,需要通过基础支持中的“获取acce...原创 2018-09-29 16:04:37 · 1274 阅读 · 0 评论 -
3DES对称加密
3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称。CBC(cipher block chaining) 为链式加密,即将待加密的数据分成n块,前一块加密完的数据作为salt加入后一个模块的加密。其具体实现如下:设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表...转载 2019-01-24 17:13:10 · 1273 阅读 · 0 评论 -
订单处理笔记
前言:系统中有很多种类型的订单,有共同和独有的属性,也有共同和独有的处理流程,如何进行管理?相同的基础属性,比如用户id、订单id、编号、类型、名称、描述、价格、状态、下单时间…等等;各自的业务属性,比如话费充值订单会有充值账号,实物寄送类订单会有收货信息,酒店订单会有一些预定信息…等等。共同的处理流程,包括:订单预检查、创建订单、请求支付、支付成功回调、查询支付结果、查询订单详情、取消订单...原创 2019-06-05 18:47:41 · 2703 阅读 · 0 评论 -
一种较低并发时发放的解决方案
业务场景:用户购买兑换码商品,库存2000,并发量为每秒20个订单。线上有3台服务器。如何保证成功率?兑换码发放总共历经了两个版本:最开始,用户基数小,订单几乎没有并发量,也未设置重试机制,失败后进行人为sql补发。随着用户数增加,订单出现并发,加锁导致性能不佳,订单之间争抢兑换码,发放失败率升高。运营推出限时抢购活动,经观察,线上并发量已达到了每秒5个,且逐步提高,必须考虑优化机制了。...原创 2019-06-06 17:11:15 · 709 阅读 · 0 评论 -
活动类型Java项目结构
前言:在活动类型的项目中,每新加一个活动,都会往项目中增加一些一次性(或多次)的代码,随着时间的推移,项目越来越臃肿,启动越来越慢,删除无用代码时也很麻烦。方案:将每次的活动作为一个lib模块,加入到项目中,活动结束后,lib模块代码可以保留,只需删除pom文件中对相应活动lib模块的依赖,项目启动时就不会再加载相关的代码,提高效率。(模块指IDEA中的Module)传统方案中,一个活动的代码...原创 2019-08-20 20:01:18 · 467 阅读 · 0 评论
分享