摘要: 介绍 在分布式系统、微服务架构大行其道的今天,服务间互相调用出现失败已经成为常态。如何处理异常,如何保证数据一致性,成为微服务设计过程中,绕不开的一个难题。 在不同的业务场景下,解决方案会有所差异,常见的方式有: 阻塞式重试; 2PC、3PC 传统事务; 使用队列,后台异步处理; TCC 补偿事务; 阅读全文
posted @ 2020-10-09 20:17 蘑菇先生 阅读(1565) 评论(0) 推荐(0) 编辑
摘要: "产生原因" "TIME\_WAIT 状态" "2 MSL 时间" "序列号回绕" "导致问题" "Nginx" "长连接" "参数优化" "复用 TIME\_WAIT 连接" "增加端口数量" "加快回收" "其他" "参考" 产生原因 TCP 连接关闭时,会有 4 次通讯(四次挥手),来确认双方 阅读全文
posted @ 2020-04-13 08:45 蘑菇先生 阅读(3665) 评论(4) 推荐(0) 编辑
摘要: "背景" "排查" "推测" "连接超时" "疑问" "http2" "解决超时" "并发连接数" "服务端限制" "真相" "重试" "解决办法" "问题1" 背景 最新有同事反馈,服务间有调用超时的现象,在业务高峰期发生的概率和次数比较高。从日志中调用关系来看,有2个调用链经常发生超时问题。 问 阅读全文
posted @ 2019-10-29 08:19 蘑菇先生 阅读(9645) 评论(8) 推荐(5) 编辑
摘要: "1\. 介绍" "2\. 服务端" "3\. 协议头部" "4\. 客户端" "5\. 总结" 1. 介绍 接上次的博客,按照约定的划分,还有一层链路层socket。这一层就可以自定义链路层的协议头部(header)了,下面是目前主流的Ethernet 2(以太网)标准的头部: 相比IP和TCP的 阅读全文
posted @ 2018-07-17 08:45 蘑菇先生 阅读(2285) 评论(0) 推荐(1) 编辑
摘要: 为了便于后面理解,这里统一称应用数据为 payload,协议头部为 header,套接字为socket。由于平常使用的socket是建立在传输层之上,并且不可以自定义传输层协议头部的socket,约定称之为应用层socket,传输层socket,网络层socket 阅读全文
posted @ 2018-05-28 08:53 蘑菇先生 阅读(13796) 评论(5) 推荐(10) 编辑
摘要: 1. 背景 2. slice 2.1 内部结构 2.2 覆盖前值 3. string 3.1 重新分配 3.2 二者转换 4. 逃逸分析 4.1 提高性能 4.2 逃到堆上 4.3 逃逸分配 4.4 大小分配 5. 版本差异 6. 结论 6.1 参考 这个回复比原贴有意思,也很有迷惑性。作者测试了下,确实如此,于是和小伙伴们讨论深究下。开始以为应该挺简单的,理解后,发现涉及挺多知识点,值得跟大家分享下过程。 阅读全文
posted @ 2018-05-07 08:44 蘑菇先生 阅读(31649) 评论(14) 推荐(7) 编辑
摘要: "1\. WSL是什么" "2\. WSL新特性" "3\. WSL管理配置" "4\. WSL交互" "5\. 解决方案"   "5\.1 使用别名"   "5\.2 多复制一份"   "5\.3 重定向"   "5\.4 symlink" "6\. 其他" 阅读全文
posted @ 2018-04-28 22:25 蘑菇先生 阅读(24218) 评论(2) 推荐(5) 编辑
摘要: qt5中的连接 有下列几种方式可以连接到信号上 旧语法 qt5将继续支持旧的语法去连接,在QObject对象上定义信号和槽函数,及任何继承QObjec的对象(包含QWidget)。 connect(sender, SIGNAL (valueChanged(QString,QString)),rece 阅读全文
posted @ 2016-07-24 18:34 蘑菇先生 阅读(27387) 评论(0) 推荐(2) 编辑
摘要: 阅读目录:概述DeviceFamily-Type文件夹DeviceFamily-Type扩展InitializeComponent重载结论概述Windows10-UWP(Universal Windows Platform)增加一个新特性设备序列(DeviceFamily)特定视图,它允许开发者为指... 阅读全文
posted @ 2015-12-28 08:43 蘑菇先生 阅读(2337) 评论(1) 推荐(5) 编辑
摘要: 阅读目录:概述如何选择System.Net.HttpWindows.Web.HttpHTTP的常用功能修改http头部设置超时使用身份验证凭据使用客户端证书cookie处理概述作为一个Universal Windows Platform (UWP)开发者,如果你尝试使用http与web服务或其他服务... 阅读全文
posted @ 2015-12-27 13:51 蘑菇先生 阅读(5643) 评论(1) 推荐(10) 编辑
摘要: 阅读目录:概述toast通知的结构视觉区域(Visual)行为(Actions)特定场景下的Toast通知带多内容的通知带行为的通知(例子1)带行为的通知(例子2)带文本输入框和行为的通知(例子1)带文本输入框和行为的通知(例子2)带下拉框输入和行为的通知提醒通知前后台激活的例子和的Schema的S... 阅读全文
posted @ 2015-11-23 07:29 蘑菇先生 阅读(5058) 评论(4) 推荐(7) 编辑
摘要: 阅读目录:实时计算storm简介流式计算归纳总结高容错性实时计算接上篇,离线计算是对已经入库的数据进行计算,在查询时对批量数据进行检索、磁盘读取展示。 而实时计算是在数据产生时就对其进行计算,然后实时展示结果,一般是秒级。 举个例子来说,如果有个大型网站,要实时统计用户的搜索内容,这样就能计算出热点... 阅读全文
posted @ 2015-11-16 08:47 蘑菇先生 阅读(9481) 评论(4) 推荐(15) 编辑
摘要: 计算任务分发。 master把需要计算的用户数据,不断的推送消息队列。 程序一致性。 Worker订阅相同的消息队列即可,无需更改程序代码。 任意扩容。 由于程序完全一样,意味着如果想要加快速度,重复部署一份程序到新机器即可。 当然这是理论上的,实际当中会受限于消息队列、存储层(数据库)。 容灾性。 如果5台中某一台程序挂了也不影响,利用Rabbitmq的消息确认机制,重新计算机器崩溃时正在计算的那一条数据即可 阅读全文
posted @ 2015-11-12 19:32 蘑菇先生 阅读(58341) 评论(7) 推荐(24) 编辑
摘要: 阅读目录:介绍基础用法调试及安装可选配置多实例支持及相关资料quartz.net上月在公司内部的一次分享,现把PPT及部分交流内容整理成博客。介绍topshelf是创建windows服务的一种方式,相比原生实现ServiceBase、Install.Installer更为简单方便, 我们只需要几行代... 阅读全文
posted @ 2015-11-10 12:07 蘑菇先生 阅读(10055) 评论(4) 推荐(14) 编辑
摘要: 阅读目录: 浅谈C#网络编程系列 探索C#系列 Redis系列 缓存设计系列 Net作业调度系列 多线程锁系列 日志系统及SOA系列 按日期从新到旧及其他 Golang系列 Go中http超时问题的排查 Go中链路层套接字的实践 Go中原始套接字的深度实践 Go中string转[]byte的陷阱 探 阅读全文
posted @ 2015-09-30 20:00 蘑菇先生 阅读(4804) 评论(6) 推荐(10) 编辑