lj Blog

Thinking will not overcome fear but action will.

正向代理和反向代理的理解

正向代理,反向代理

参考链接 概念 正向代理 客户端和目标服务器之间,代理的是客户端,可以隐藏真正的客户端 反向代理 代理服务端,可以隐藏真正的服务端,达到资源保护的效果 区别 正向代理需要设置代理服务器的IP或者域名,由指定的代理服务器访问服务器,翻墙就是典型的正向代理 反向代理是直接访问反向代理服务器,nginx 这种就是反向代理服务器,对于客户端来说,反向代理服务器可以认为就是...

MySQL kill 线程

MySQL 解决死锁

获取连接列表 show processlist; 杀掉线程 kill 43016408

分布式ID思考

常用的ID生成策略

需求 全局唯一:主键,能不唯一吗,并且是分布式系统内的全局唯一 趋势递增:不一定要求差值1,但是一定要趋势递增,主要是考虑 MySQL 存储策略 高可用,高性能 信息安全:比如使用自增主键做订单号,很容易推测系统的订单量,使用自增主键做传输,恶意用户很容易获取其他用户的信息 方案 1. 数据库自增 查看自增起点和步长 SHOW GLOBAL VARIABLES LI...

API 接口安全思考

API 接口加密以及接口安全验证

缘由 接口有效性 接口参数没有被篡改 接口传递了用户标识 策略 除了原有参数,多传递三个参数 : token , timestamp , sign token 标识用户信息,具体生成策略下次讨论 timestamp 时间戳标识请求时间,比如1分钟之前的请求可以直接返回错误 sign 将所有的参数按照 key 升序排列,按照指定算法加密生成 sign ...

支付回调

支付回调重试逻辑

支付总体逻辑 用户调用业务库下单-> 业务库调用支付库预下单 -> 支付库生成一笔支付单(如果没有对应的支付单才生成支付单,否则直接生成贸易单),并生成一笔贸易单,并调用美团支付预下单 美团支付返回调起支付弹框 参数-> 支付库将参数返回给业务库->业务库记录支付单,交易单关联到业务单,并将弹框参数返回给前端(以调起微信弹框/支付宝弹框 为例) 前端通过...

MybatisPlus多数据源问题

MybatisPlus多数据源管理,多数据源切换

切换 Connection 的数据源 mybatis-plus 提供了 DynamicDataSourceContextHolder 基于 ThreadLocal 切换数据源 DynamicDataSourceAnnotationInterceptor 拦截器默认设置数据源,代码 DynamicRoutingDataSource 判断使用哪个数据源 手动...

MySQL 高级

mysql 常用的操作

查询数据库隔离级别 select @@tx_isolation; 显示数据库连接 show processlist; explain extended 查看执行计划,注意这个语法会比 explain 多一个 filter 列 explain extended select * from yunying.org_students where org_id in( select org_id f...

SPI 初识

SPI 初识

简介 SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件 为某个接口寻找服务实现的机制。有点类似IOC的思想,就是将装配的控制权移到程序之外,在模块化设计中这个机制尤其重要。所以SPI的核心思想就是解耦。 加入我要提供一个缓存接口,一般通用的有jvm 缓存,redis 缓存,文件缓存,我可...

自建 DataBus

关于自建 DataBus 的核心点思考

相关技术 OpenReplicator,开源的Java解析MySQL binlog LinkedIn DataBus canal 阿里开源组件 数据双活文章 自建 DataBus 功能 对数据库中一条记录的增删改做出对应的异步操作,比如退款表插入成功之后自动执行退款 数据多活 企业级数据仓库的搭建参考链接 核心技术点 Canal 监听数据库 binlog 变更 ...

ElasticSearch document 路由原理

ElasticSearch document 路由原理

来源 一个index 的数据会被分为多片,每个分片存在于一个shard 中,对于一个document 应该放在 哪个 primary shard 上呢? 解决 shard=hash(routing)%number_of_primary_shards 比如一个 index 有三个 primary shard , 当我们增删改查一个document 的时候,默认都会带过来一个 ...