博客园 - 蘑菇先生
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=159852
2021-06-28T13:51:37Z
蘑菇先生
https://www.cnblogs.com/mushroom/
feed.cnblogs.com
https://www.cnblogs.com/mushroom/p/13788039.html
分布式系统中的事务问题 - 蘑菇先生
介绍 在分布式系统、微服务架构大行其道的今天,服务间互相调用出现失败已经成为常态。如何处理异常,如何保证数据一致性,成为微服务设计过程中,绕不开的一个难题。 在不同的业务场景下,解决方案会有所差异,常见的方式有: 阻塞式重试; 2PC、3PC 传统事务; 使用队列,后台异步处理; TCC 补偿事务;
2020-10-09T12:17:00Z
2020-10-09T12:17:00Z
蘑菇先生
https://www.cnblogs.com/mushroom/
【摘要】介绍 在分布式系统、微服务架构大行其道的今天,服务间互相调用出现失败已经成为常态。如何处理异常,如何保证数据一致性,成为微服务设计过程中,绕不开的一个难题。 在不同的业务场景下,解决方案会有所差异,常见的方式有: 阻塞式重试; 2PC、3PC 传统事务; 使用队列,后台异步处理; TCC 补偿事务; <a href="https://www.cnblogs.com/mushroom/p/13788039.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/mushroom/p/12686537.html
time_wait 原理分析和优化 - 蘑菇先生
"产生原因" "TIME\_WAIT 状态" "2 MSL 时间" "序列号回绕" "导致问题" "Nginx" "长连接" "参数优化" "复用 TIME\_WAIT 连接" "增加端口数量" "加快回收" "其他" "参考" 产生原因 TCP 连接关闭时,会有 4 次通讯(四次挥手),来确认双方
2020-04-13T00:45:00Z
2020-04-13T00:45:00Z
蘑菇先生
https://www.cnblogs.com/mushroom/
【摘要】"产生原因" "TIME\_WAIT 状态" "2 MSL 时间" "序列号回绕" "导致问题" "Nginx" "长连接" "参数优化" "复用 TIME\_WAIT 连接" "增加端口数量" "加快回收" "其他" "参考" 产生原因 TCP 连接关闭时,会有 4 次通讯(四次挥手),来确认双方 <a href="https://www.cnblogs.com/mushroom/p/12686537.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/mushroom/p/11756631.html
Go中http超时问题的排查 - 蘑菇先生
"背景" "排查" "推测" "连接超时" "疑问" "http2" "解决超时" "并发连接数" "服务端限制" "真相" "重试" "解决办法" "问题1" 背景 最新有同事反馈,服务间有调用超时的现象,在业务高峰期发生的概率和次数比较高。从日志中调用关系来看,有2个调用链经常发生超时问题。 问
2019-10-29T00:19:00Z
2019-10-29T00:19:00Z
蘑菇先生
https://www.cnblogs.com/mushroom/
【摘要】"背景" "排查" "推测" "连接超时" "疑问" "http2" "解决超时" "并发连接数" "服务端限制" "真相" "重试" "解决办法" "问题1" 背景 最新有同事反馈,服务间有调用超时的现象,在业务高峰期发生的概率和次数比较高。从日志中调用关系来看,有2个调用链经常发生超时问题。 问 <a href="https://www.cnblogs.com/mushroom/p/11756631.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/mushroom/p/9321190.html
Go中链路层套接字的实践 - 蘑菇先生
"1\. 介绍" "2\. 服务端" "3\. 协议头部" "4\. 客户端" "5\. 总结" 1. 介绍 接上次的博客,按照约定的划分,还有一层链路层socket。这一层就可以自定义链路层的协议头部(header)了,下面是目前主流的Ethernet 2(以太网)标准的头部: 相比IP和TCP的
2018-07-17T00:45:00Z
2018-07-17T00:45:00Z
蘑菇先生
https://www.cnblogs.com/mushroom/
【摘要】"1\. 介绍" "2\. 服务端" "3\. 协议头部" "4\. 客户端" "5\. 总结" 1. 介绍 接上次的博客,按照约定的划分,还有一层链路层socket。这一层就可以自定义链路层的协议头部(header)了,下面是目前主流的Ethernet 2(以太网)标准的头部: 相比IP和TCP的 <a href="https://www.cnblogs.com/mushroom/p/9321190.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/mushroom/p/9097409.html
Go中原始套接字的深度实践 - 蘑菇先生
为了便于后面理解,这里统一称应用数据为 payload,协议头部为 header,套接字为socket。由于平常使用的socket是建立在传输层之上,并且不可以自定义传输层协议头部的socket,约定称之为应用层socket,传输层socket,网络层socket
2018-05-28T00:53:00Z
2018-05-28T00:53:00Z
蘑菇先生
https://www.cnblogs.com/mushroom/
【摘要】为了便于后面理解,这里统一称应用数据为 payload,协议头部为 header,套接字为socket。由于平常使用的socket是建立在传输层之上,并且不可以自定义传输层协议头部的socket,约定称之为应用层socket,传输层socket,网络层socket <a href="https://www.cnblogs.com/mushroom/p/9097409.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/mushroom/p/8998538.html
Go中string转[]byte的陷阱 - 蘑菇先生
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 参考 这个回复比原贴有意思,也很有迷惑性。作者测试了下,确实如此,于是和小伙伴们讨论深究下。开始以为应该挺简单的,理解后,发现涉及挺多知识点,值得跟大家分享下过程。
2018-05-07T00:44:00Z
2018-05-07T00:44:00Z
蘑菇先生
https://www.cnblogs.com/mushroom/
【摘要】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 参考 这个回复比原贴有意思,也很有迷惑性。作者测试了下,确实如此,于是和小伙伴们讨论深究下。开始以为应该挺简单的,理解后,发现涉及挺多知识点,值得跟大家分享下过程。 <a href="https://www.cnblogs.com/mushroom/p/8998538.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/mushroom/p/8969338.html
WSL与Windows交互实践 - 蘑菇先生
"1\. WSL是什么" "2\. WSL新特性" "3\. WSL管理配置" "4\. WSL交互" "5\. 解决方案" "5\.1 使用别名" "5\.2 多复制一份" "5\.3 重定向" "5\.4 symlink" "6\. 其他"
2018-04-28T14:25:00Z
2018-04-28T14:25:00Z
蘑菇先生
https://www.cnblogs.com/mushroom/
【摘要】"1\. WSL是什么" "2\. WSL新特性" "3\. WSL管理配置" "4\. WSL交互" "5\. 解决方案" "5\.1 使用别名" "5\.2 多复制一份" "5\.3 重定向" "5\.4 symlink" "6\. 其他" <a href="https://www.cnblogs.com/mushroom/p/8969338.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/mushroom/p/5701330.html
qt5中信号和槽的新语法 - 蘑菇先生
qt5中的连接 有下列几种方式可以连接到信号上 旧语法 qt5将继续支持旧的语法去连接,在QObject对象上定义信号和槽函数,及任何继承QObjec的对象(包含QWidget)。 connect(sender, SIGNAL (valueChanged(QString,QString)),rece
2016-07-24T10:34:00Z
2016-07-24T10:34:00Z
蘑菇先生
https://www.cnblogs.com/mushroom/
【摘要】qt5中的连接 有下列几种方式可以连接到信号上 旧语法 qt5将继续支持旧的语法去连接,在QObject对象上定义信号和槽函数,及任何继承QObjec的对象(包含QWidget)。 connect(sender, SIGNAL (valueChanged(QString,QString)),rece <a href="https://www.cnblogs.com/mushroom/p/5701330.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/mushroom/p/5080032.html
Windows10-UWP中设备序列显示不同XAML的三种方式[3] - 蘑菇先生
阅读目录:概述DeviceFamily-Type文件夹DeviceFamily-Type扩展InitializeComponent重载结论概述Windows10-UWP(Universal Windows Platform)增加一个新特性设备序列(DeviceFamily)特定视图,它允许开发者为指...
2015-12-28T00:43:00Z
2015-12-28T00:43:00Z
蘑菇先生
https://www.cnblogs.com/mushroom/
【摘要】阅读目录:概述DeviceFamily-Type文件夹DeviceFamily-Type扩展InitializeComponent重载结论概述Windows10-UWP(Universal Windows Platform)增加一个新特性设备序列(DeviceFamily)特定视图,它允许开发者为指... <a href="https://www.cnblogs.com/mushroom/p/5080032.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/mushroom/p/5079964.html
揭秘Windows10 UWP中的httpclient接口[2] - 蘑菇先生
阅读目录:概述如何选择System.Net.HttpWindows.Web.HttpHTTP的常用功能修改http头部设置超时使用身份验证凭据使用客户端证书cookie处理概述作为一个Universal Windows Platform (UWP)开发者,如果你尝试使用http与web服务或其他服务...
2015-12-27T05:51:00Z
2015-12-27T05:51:00Z
蘑菇先生
https://www.cnblogs.com/mushroom/
【摘要】阅读目录:概述如何选择System.Net.HttpWindows.Web.HttpHTTP的常用功能修改http头部设置超时使用身份验证凭据使用客户端证书cookie处理概述作为一个Universal Windows Platform (UWP)开发者,如果你尝试使用http与web服务或其他服务... <a href="https://www.cnblogs.com/mushroom/p/5079964.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/mushroom/p/4984553.html
Windows10自适应和交互式toast通知[1] - 蘑菇先生
阅读目录:概述toast通知的结构视觉区域(Visual)行为(Actions)特定场景下的Toast通知带多内容的通知带行为的通知(例子1)带行为的通知(例子2)带文本输入框和行为的通知(例子1)带文本输入框和行为的通知(例子2)带下拉框输入和行为的通知提醒通知前后台激活的例子和的Schema的S...
2015-11-22T23:29:00Z
2015-11-22T23:29:00Z
蘑菇先生
https://www.cnblogs.com/mushroom/
【摘要】阅读目录:概述toast通知的结构视觉区域(Visual)行为(Actions)特定场景下的Toast通知带多内容的通知带行为的通知(例子1)带行为的通知(例子2)带文本输入框和行为的通知(例子1)带文本输入框和行为的通知(例子2)带下拉框输入和行为的通知提醒通知前后台激活的例子和的Schema的S... <a href="https://www.cnblogs.com/mushroom/p/4984553.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/mushroom/p/4962788.html
浅谈分布式计算的开发与实现(二) - 蘑菇先生
阅读目录:实时计算storm简介流式计算归纳总结高容错性实时计算接上篇,离线计算是对已经入库的数据进行计算,在查询时对批量数据进行检索、磁盘读取展示。 而实时计算是在数据产生时就对其进行计算,然后实时展示结果,一般是秒级。 举个例子来说,如果有个大型网站,要实时统计用户的搜索内容,这样就能计算出热点...
2015-11-16T00:47:00Z
2015-11-16T00:47:00Z
蘑菇先生
https://www.cnblogs.com/mushroom/
【摘要】阅读目录:实时计算storm简介流式计算归纳总结高容错性实时计算接上篇,离线计算是对已经入库的数据进行计算,在查询时对批量数据进行检索、磁盘读取展示。 而实时计算是在数据产生时就对其进行计算,然后实时展示结果,一般是秒级。 举个例子来说,如果有个大型网站,要实时统计用户的搜索内容,这样就能计算出热点... <a href="https://www.cnblogs.com/mushroom/p/4962788.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/mushroom/p/4959904.html
浅谈分布式计算的开发与实现(一) - 蘑菇先生
计算任务分发。 master把需要计算的用户数据,不断的推送消息队列。
程序一致性。 Worker订阅相同的消息队列即可,无需更改程序代码。
任意扩容。 由于程序完全一样,意味着如果想要加快速度,重复部署一份程序到新机器即可。 当然这是理论上的,实际当中会受限于消息队列、存储层(数据库)。
容灾性。 如果5台中某一台程序挂了也不影响,利用Rabbitmq的消息确认机制,重新计算机器崩溃时正在计算的那一条数据即可
2015-11-12T11:32:00Z
2015-11-12T11:32:00Z
蘑菇先生
https://www.cnblogs.com/mushroom/
【摘要】计算任务分发。 master把需要计算的用户数据,不断的推送消息队列。
程序一致性。 Worker订阅相同的消息队列即可,无需更改程序代码。
任意扩容。 由于程序完全一样,意味着如果想要加快速度,重复部署一份程序到新机器即可。 当然这是理论上的,实际当中会受限于消息队列、存储层(数据库)。
容灾性。 如果5台中某一台程序挂了也不影响,利用Rabbitmq的消息确认机制,重新计算机器崩溃时正在计算的那一条数据即可 <a href="https://www.cnblogs.com/mushroom/p/4959904.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/mushroom/p/4952461.html
topshelf和quartz内部分享 - 蘑菇先生
阅读目录:介绍基础用法调试及安装可选配置多实例支持及相关资料quartz.net上月在公司内部的一次分享,现把PPT及部分交流内容整理成博客。介绍topshelf是创建windows服务的一种方式,相比原生实现ServiceBase、Install.Installer更为简单方便, 我们只需要几行代...
2015-11-10T04:07:00Z
2015-11-10T04:07:00Z
蘑菇先生
https://www.cnblogs.com/mushroom/
【摘要】阅读目录:介绍基础用法调试及安装可选配置多实例支持及相关资料quartz.net上月在公司内部的一次分享,现把PPT及部分交流内容整理成博客。介绍topshelf是创建windows服务的一种方式,相比原生实现ServiceBase、Install.Installer更为简单方便, 我们只需要几行代... <a href="https://www.cnblogs.com/mushroom/p/4952461.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/mushroom/p/4850115.html
博客目录导读 - 蘑菇先生
阅读目录: 浅谈C#网络编程系列 探索C#系列 Redis系列 缓存设计系列 Net作业调度系列 多线程锁系列 日志系统及SOA系列 按日期从新到旧及其他 Golang系列 Go中http超时问题的排查 Go中链路层套接字的实践 Go中原始套接字的深度实践 Go中string转[]byte的陷阱 探
2015-09-30T12:00:00Z
2015-09-30T12:00:00Z
蘑菇先生
https://www.cnblogs.com/mushroom/
【摘要】阅读目录: 浅谈C#网络编程系列 探索C#系列 Redis系列 缓存设计系列 Net作业调度系列 多线程锁系列 日志系统及SOA系列 按日期从新到旧及其他 Golang系列 Go中http超时问题的排查 Go中链路层套接字的实践 Go中原始套接字的深度实践 Go中string转[]byte的陷阱 探 <a href="https://www.cnblogs.com/mushroom/p/4850115.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/mushroom/p/4850083.html
浅谈C#网络编程(二) - 蘑菇先生
异步IO
非阻塞式同步IO
基于回调的异步IO并发
2015-09-30T11:15:00Z
2015-09-30T11:15:00Z
蘑菇先生
https://www.cnblogs.com/mushroom/
【摘要】异步IO
非阻塞式同步IO
基于回调的异步IO并发 <a href="https://www.cnblogs.com/mushroom/p/4850083.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/mushroom/p/4845390.html
浅谈C#网络编程(一) - 蘑菇先生
客户端发送数据
通过广域网局域网发送到服务端机器网卡缓冲区上
网卡驱动对CPU发送中断指令
CPU把数据拷贝到内核缓冲区
CPU再把内核缓冲区的数据拷贝用户缓冲区,上面的receive字节数组。
2015-09-29T00:34:00Z
2015-09-29T00:34:00Z
蘑菇先生
https://www.cnblogs.com/mushroom/
【摘要】客户端发送数据
通过广域网局域网发送到服务端机器网卡缓冲区上
网卡驱动对CPU发送中断指令
CPU把数据拷贝到内核缓冲区
CPU再把内核缓冲区的数据拷贝用户缓冲区,上面的receive字节数组。 <a href="https://www.cnblogs.com/mushroom/p/4845390.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/mushroom/p/4805413.html
探索c#之storm的TimeCacheMap - 蘑菇先生
阅读目录:概述算法介绍清理线程获取、插入、删除总结概述最近在看storm,发现其中的TimeCacheMap算法设计颇为高效,就简单分享介绍下。 思考一下如果需要一个带过期淘汰的缓存容器,我们通常会使用定时器或线程去扫描容器,以便判断是否过期从而删除。但这样性能并不友好,在数据量较大时O(n)检查是...
2015-09-14T00:32:00Z
2015-09-14T00:32:00Z
蘑菇先生
https://www.cnblogs.com/mushroom/
【摘要】阅读目录:概述算法介绍清理线程获取、插入、删除总结概述最近在看storm,发现其中的TimeCacheMap算法设计颇为高效,就简单分享介绍下。 思考一下如果需要一个带过期淘汰的缓存容器,我们通常会使用定时器或线程去扫描容器,以便判断是否过期从而删除。但这样性能并不友好,在数据量较大时O(n)检查是... <a href="https://www.cnblogs.com/mushroom/p/4805413.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/mushroom/p/4771768.html
clojure基础入门(一) - 蘑菇先生
最近在看storm的源码,就学习分享下clojure语法。阅读目录:概述变量运算符流程控制总结概述clojure是一种运行在JVM上的Lisp方言,属于函数式编程范式,它和java可以方便的互相调用,这样开发的程序可以很好的结合java和clojure的优点(storm),这跟Net中C#和F#的角...
2015-08-30T14:01:00Z
2015-08-30T14:01:00Z
蘑菇先生
https://www.cnblogs.com/mushroom/
【摘要】最近在看storm的源码,就学习分享下clojure语法。阅读目录:概述变量运算符流程控制总结概述clojure是一种运行在JVM上的Lisp方言,属于函数式编程范式,它和java可以方便的互相调用,这样开发的程序可以很好的结合java和clojure的优点(storm),这跟Net中C#和F#的角... <a href="https://www.cnblogs.com/mushroom/p/4771768.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/mushroom/p/4752962.html
Redis高可用分布式内部交流(九) - 蘑菇先生
这是上月在公司内部的一次分享,现把PPT及交流内容整理成博客。
阅读目录:
高可用
数据同步
分布式
分布式集群时代
总结
2015-08-25T00:37:00Z
2015-08-25T00:37:00Z
蘑菇先生
https://www.cnblogs.com/mushroom/
【摘要】这是上月在公司内部的一次分享,现把PPT及交流内容整理成博客。
阅读目录:
高可用
数据同步
分布式
分布式集群时代
总结 <a href="https://www.cnblogs.com/mushroom/p/4752962.html" target="_blank">阅读全文</a>