会员
周边
众包
新闻
博问
闪存
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
golang架构师k哥
公众号【golang架构师k哥】,6年大厂golang架构师,亿万dau、百万qps服务owner。 每周分享golang和架构师技能。
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
下一页
2019年6月15日
Flink流式计算
摘要: Flink流式计算原理,包括Structured Streaming,Continuous Queries,Handling Event-time,Handling Late Data,Watermarks
阅读全文
posted @ 2019-06-15 10:48 golang架构师k哥
阅读(1913)
评论(1)
推荐(1)
编辑
Spark学习笔记
摘要: spark学习笔记,主要包括spark core的内容RDD弹性分布式数据集和广播变量及累计器.Spark Sql的内容Sql、Dataset和DataFeame.
阅读全文
posted @ 2019-06-15 09:31 golang架构师k哥
阅读(586)
评论(0)
推荐(1)
编辑
2019年5月9日
分布式系统原理之cap理论
摘要: cap理论是分布式系统的基础理论,任何一个分布式系统不可能同时满足强一致性、可用性和分区容错性,而只能在三者之间权衡。为了提高系统的写入性能,一般系统只需满足最终一致性,最终一致性有几下几种常见变种:因果一致性、读已之所写、会话一致性、单调读一致性和单调写一致性。cap理论演化出Base理论,是工业界对分布式系统实践的总结,其核心思想是即使无法达到强一致性,也要保证满足最终一致性。
阅读全文
posted @ 2019-05-09 00:18 golang架构师k哥
阅读(1178)
评论(0)
推荐(1)
编辑
2019年3月18日
redis启动过程源码解析
摘要: 大部分人在用开源软件的时候,并不知道一个优秀的开源软件内部是如何启动起来的,本文通过分析redis启动过程的源码,来学习优秀软件的启动过程
阅读全文
posted @ 2019-03-18 23:47 golang架构师k哥
阅读(1581)
评论(0)
推荐(2)
编辑
2019年2月24日
Redis数据类型使用场景及有序集合SortedSet底层实现详解
摘要: Redis常用数据类型有字符串String、字典disct、列表List、集合Set、有序集合SortedSet,List常用于获取最新topN条新闻等类似问题和生产者消费者模式,集合set可以求对象的共同标签,而有序集合SortedSet用于游戏中的分数排名,SortedSet底层采用压缩列表ziplist及跳表skiplist实现,本文会对ziplist和skiplist的概念及优点进行详细介绍,并通过剖析redis源码来深入理解。
阅读全文
posted @ 2019-02-24 21:44 golang架构师k哥
阅读(1374)
评论(1)
推荐(3)
编辑
2019年1月27日
Linux常用性能工具功能、用法及原理(一)
摘要: Linux性能观测工具按类别可分为系统级别和进程级别,系统级别对整个系统的性能做统计,而进程级别则具体到进程,为每个进程维护统计信息。 按实现原理分,可分为基于计数器和跟踪以及剖析。含义如下: 计数器:内核维护的统计数据,通常为无符号整型,用于对发生的事件计数,比如,网络包接收计数器,磁盘IO计数器等。 跟踪:跟踪会收集每一个事件的具体数据,由于跟踪捕获事件数据需要消耗CPU且需要较大的存储空间储存收集数据,默认不开启。日志就是一种低频率的跟踪,会记录事件数据。 剖析:对目标采样或快照来归纳目标特征,如:CPU使用率,通过对程序计数器采样(一种寄存器,用于指示下一条指令的地址),跟踪栈找到消耗CPU周期的代码路径。剖析也可以通过非计时的硬件事件,如CPU硬件缓存未命中或总线活动,这类信息可以帮助开发人员针对系统资源的使用来优化自己的代码。 本文会对基于计数器原理的系统级linux性能工具做介绍,详细说明其用法及数据来源,后续会对进程级及基于其它原理的工具做介绍。
阅读全文
posted @ 2019-01-27 22:06 golang架构师k哥
阅读(1485)
评论(2)
推荐(1)
编辑
2018年12月12日
mysql服务器架构
摘要: mysql是使用最广泛的开源关系数据库之一,大多数开发人员只会简单的用sql语句操作数据,而不理解服务端架构和sql查询语句在服务端的执行过程,本文会从sql语句执行路径来介绍mysql服务端架构,包括连接器,查询缓存,分析器,优化器等。
阅读全文
posted @ 2018-12-12 20:15 golang架构师k哥
阅读(910)
评论(0)
推荐(1)
编辑
2018年12月2日
CPU上下文切换
摘要: CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线程切换及中断切换,进程切换的开销较大,除了需要保存寄存器和程序计数器中的值还需保存全局变量、栈等到内存中,以便下次运行恢复,而同一进程中的线程切换开销会小很多,只需更新寄存器和线程独有的栈,共享资源如打开的文件、全局变量等无需切换,当硬件中断发生时,比如键盘输入了字符,就会触发中断切换,打断程序的执行而去运行中断处理程序。当系统性能下降,可以用vmstat查看系统整体的cpu切换情况,接着用pidstat -w -t 定位到具体切换较频繁的线程。
阅读全文
posted @ 2018-12-02 15:34 golang架构师k哥
阅读(1361)
评论(0)
推荐(1)
编辑
2018年11月29日
linux平均负载的理解及原因排查
摘要: linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的进程数目,用uptime查看到负载很高,既有可能是CPU利用率高,也可能是大量在等待io的进程导致,用mpstat查看每个CPU的使用情况,查看CPU的使用率或者CPU花在等待io的时间,接着用pidstat定位具体的进程
阅读全文
posted @ 2018-11-29 07:56 golang架构师k哥
阅读(3816)
评论(0)
推荐(1)
编辑
2018年11月25日
python迭代器和生成器
摘要: 迭代器模式及其在python中的实现
阅读全文
posted @ 2018-11-25 21:42 golang架构师k哥
阅读(531)
评论(0)
推荐(1)
编辑
上一页
1
2
3
4
下一页
公告