Weakyon Blog

Weakyon

grpc c++使用以及踩坑

两个因素想做开源项目: 1 主导开发中间件系统的心愿已经达成,虽然中间磕磕碰碰的踩了很多坑。 但毕竟最终结果是好的。 唯一的遗憾就是没有开源了。 2 之前做了一些小网站,也累积了不少用户,但是对技术的磨练还是太少了。 特别是用户的增长出现瓶颈以后,架构和细节已经没有必要在优化了。这就让人产生了惰性。 认真做一个开源项目,会有bug issue和功能的issue。会有人去推动你不...

再看过载保护

一 新的认识 二 负载定理 三 内部上游客户端 3.1 服务发现 3.2 动态回馈负载均衡策略 1) 下游响应时间负载均衡 优缺点分析: 2) 下游任务队列负载均衡 ...

控制反转的思考

我认为,控制反转和模版模式以及框架的概念是类似的,而控制正转类同于策略模式,库。 反转的是依赖关系,对框架代码来说,实现的就是模版模式。使用框架的代码,其实被反转调用了。而库则是主动去调用的,是一种策略模式。 因为控制反转是一种设计模式,因此所有语言都存在。 例如C,JS是以回调函数实现。而Python作为一种动态语言,这方面的支持更为强大。 对于OOP的静态语言(Cpp,Java,...

设计模式思考

一 我对23种设计模式的理解: 1)类模式和对象模式 2) 创建型(5种) 工厂 简单工厂模式: 工厂模式: 抽象工厂 单例 ...

初探分布式事务

一 概括 二 2阶段提交 2.1 通用实现 2.2 mysql的XA协议 三 ebay的本地消息表 四 事务消息 五 优缺点总结 一 概括 最近在做的项目设计到一些金钱交易方面的事情。涉及到一些分布式事务的逻辑。 参考了一些资料,做一些总结。 一句话概括分布式事务: 一部分资源的数据更新以后,怎么保证...

ADX信息调研

一 优酷 1.1 BidRequest.SiteObject Name 媒体广告名称 Page 当前页面URL Ref Referrer URL(从哪个页面链接到当前页面) Content 视频的内容相关信息。只有视频贴片类型的广告位才会有这个字段 Title ...

golang字符处理

golang字符处理已经踩过好几个坑了,记录一下 一 emoji表情的处理 用的mysql版本比较老,不支持emoji,所以需要golang来去除emoji表情 判断思路是普通汉字utf8下都是3字节内,而emoji表情是4字节,如果大于4字节就过滤掉即可 import "unicode/utf8" func FilterEmoji(content string) string {...

mysql隐式转换导致的越界bug

之前用触发器做数据统计 然后还是一不小心踩坑了 触发器新建了一张fileinfo表,file表中增删查改的信息都会以触发器的形式去修改fileinfo表 后来发现由于mysql是行级锁,由于file表的操作QPS会很高,这个行级锁会造成很大的性能损失 所以需要把增删查改写入随机行。 首先需要新加一个NoUseId字段,这个字段就是随机值匹配的字段 然后需要把原先的UploadSi...

macOS下golang环境配置

双十一京东mac air 11寸(redis作者也是用的这个)促销,只要3999,于是买了一台试试水。 本意是通过上一篇博客的内网穿透,直连公司虚拟机用的。但是没想到双休日虚拟机居然连不上了,p2p和代理方式甚至teamview都不行,为了防止这种情况再发生,还是进行一下配置吧。 记录一下防止以后还要装0.0 一 通用配置 最基础的应该是homebrew安装了,毕竟没有这个连wget...

排查一次golang的协程泄漏

在一个爬虫程序的优化后,意外出现了内存泄漏 泄漏非常缓慢,一般会在运行4小时后导致OOM。 检查了很多次代码,找不到问题 一 排查过程 众所周知,golang是自带pprof工具的 我利用pprof工具查看了内存使用情况 go tool pprof http://A.A.A.A:port/debug/pprof/heap (pprof) top10 54.09MB of 64.6...