Redis 事务踩坑

Redis 测试 Demo <?php # 原子操作 redis 事务 $redis = new \Redis(); $redis->connect('127.0.0.1', '6379', 3); // 监控key WATCH 事务开启前监控key $redis->WATCH('test_hash'); // 开启事务 $redis->MULTI(); //...

继续阅读 »

使用TCP keepalive还是HeartBeat心跳包?

标题是抄来的 看了一些文章发现结合项目 用一句化来解答, keepalive 是服务端向客户端发送心跳包, HeartBeat 是客户端维护心跳包, 具体选择哪种用句万金油的话分场景; keepalive 既浪费流量又浪费CPU 性能考虑 还是使用 HeartBeat , keepalive就是高级点的 心跳检测 参考文章 : http://www.nowamagic.net/academy...

继续阅读 »

Tcp Rpc 踩坑实践

最近接到需求, 目前项目满足不了, 需要通过中间件实现. 经过讨论和分析, 最后打算 使用 swoole 构建一个 Tcp Rpc 服务. 正常的Rpc 轮子遍地都是 , 但是我们的需求很独特, 需要根据参数 将请求分配至指定 进程. 构建出一套同步堵塞的服务. 场景举例: 修改用户A的资产, 通过参数 `uid` 分配器将 请求发送至固定 进程. 使得用户资产都在单进程内排队更新. 上面...

继续阅读 »

TiDB 踩坑

昨天使用 TiDB 查数据发现问题 select FROM_UNIXTIME(created, '%Y%m%d') as dates from `table` #返回 20181122 但是 select FROM_UNIXTIME(created, '%Y%m%d') as dates from `table` union all select FROM_UNIXTIME(creat...

继续阅读 »

MySQL数据库设计规范

1. 规范背景与目的 MySQL数据库与 Oracle、 SQL Server 等数据库相比,有其内核上的优势与劣势。我们在使用MySQL数据库的时候需要遵循一定规范,扬长避短。本规范旨在帮助或指导RD、QA、OP等技术人员做出适合线上业务的数据库设计。在数据库变更和处理流程、数据库表设计、SQL编写等方面予以规范,从而为公司业务系统稳定、健康地运行提供保障。 2. 设计规范 2.1 数据库...

继续阅读 »

多层代理 获取真实IP 问题

多层代理 获取真实IP 问题百度一搜 一堆. 但大多都是通过 X-Forwarded-For 获取真实IP 原理就是 负载 LVS /EOB /SLB 为了让下游正常获取 客户端IP 会将 客户端IP 填充到 X-Forwarded-For 中传递给下游服务 用户真实IP, 负载, 代理服务器1-IP, 代理服务器2-IP 我们原来获取真实IP 直接就 逗号炸开 取第一个IP 问题来了 客户...

继续阅读 »

Cloudflare 智能解析到国内服务器 安全过滤的坑

昨天又踩个坑 问题描述: APP客户端 融云IM 聊天发送图片类型消息 回调地址未收到融云消息记录请求, 经反馈融云端解释回调接口403, 经确认nginx日志后并未找到任何403 请求日志. 分析应该 nginx 上游服务问题, 实测在post请求中 参数添加 <script> alert(1)</script> 检测是否存在安全过滤问题. 果然 问题定位. 智能解...

继续阅读 »

DNS 查询实用程式 dig

通过 dig 可查看本地request 智能解析是哪家服务商的 阿里云昆仑(全站加速 要备案) Akaman(贵100w起) 加速乐 (不用备案) Cloudflare 稳定/便宜(200$/月) AWS 呵呵 dig DNS 查询实用程式。 语法 dig [@server] [-b address] [-c class] [-f filename] [-k filename] [ -n...

继续阅读 »

Linux 多功能系统资源统计 生成工具 dstat

官方对dstat的定义为:多功能系统资源统计生成工具。 在获取的信息上有点类似于top、free、iostat、vmstat等多个工具的合集,官方解释为vmstat、iostat、ifstat等工具的多功能替代品,且添加了许多额外的功能(Dstat is a versatile replacement for vmstat, iostat and ifstat. Dstat overcome...

继续阅读 »