摘要: 阅读目录背景虚拟桶(virtual buckets)实现总结背景关于数据分片讨论最多的是一致性hash,然而它并不是分布式设计中的银弹百试百灵。 在数据稳定性要求比较高的场景下它的缺点是不能容忍的。比如在Redis分布式缓存设计中,使用一致性Hash进行key分片存储,通过虚拟节点最大化降低添加或删... 阅读全文
posted @ 2015-05-31 22:01 蘑菇先生 阅读(3849) 评论(2) 推荐(3) 编辑
摘要: 关于Redis高可用方案,看到较多的是keepalived、zookeeper方案。 keepalived是主备模式,意味着总有一台浪费着。zookeeper工作量成本偏高。 本文主要介绍下使用官方sentinel做redis高可用方案的设计。阅读目录:Redis Sentinel故障转移消息接收的... 阅读全文
posted @ 2015-05-25 08:33 蘑菇先生 阅读(18415) 评论(4) 推荐(14) 编辑
摘要: MapReduce近几年比较热的分布式计算编程模型,以C#为例简单介绍下MapReduce分布式计算。阅读目录背景 Map实现 Reduce实现支持分布式总结背景某平行世界程序猿小张接到Boss一项任务,统计用户反馈内容中的单词出现次数,以便分析用户主要习惯。文本如下: const s... 阅读全文
posted @ 2015-05-22 01:06 蘑菇先生 阅读(8278) 评论(10) 推荐(10) 编辑
摘要: 阅读目录:使用场景算法原理虚拟节点代码示例使用场景以Redis为例,当系统需要缓存的内容超过单机内存大小时,例如要缓存100G数据,单机内存仅有16G时。这时候就需要考虑进行缓存数据分片,也即是把100G的数据拆分成多块小于单机内存的数据。例如以10G为单位,拆分10份,存储到多台机器节点上。 但是... 阅读全文
posted @ 2015-05-04 08:40 蘑菇先生 阅读(11354) 评论(4) 推荐(10) 编辑
摘要: 阅读目录发布订阅模型 Redis中的发布订阅客户端编程示例0.3版本Hredis发布订阅模型在应用级其作用是为了减少依赖关系,通常也叫观察者模式。主要是把耦合点单独抽离出来作为第三方,隔离易变化的发送方和接收方。发送方:只负责向第三方发送消息。(杂志社把读者杂志交给邮局)接收方:被动接收消息。(1:... 阅读全文
posted @ 2015-04-30 22:11 蘑菇先生 阅读(32573) 评论(10) 推荐(5) 编辑
摘要: 接上篇c#实现redis客户端(一),重新整理些了下。阅读目录:项目说明Hredis设计图单元测试场景总结项目说明背景:因为有地方要用,而又没找到对sentinel良好支持的Net客户端,所以就简单重写了个。目标:尽可能的简单,轻量级,不进行过度的封装,使用方便。代码说明: 1. 与Redis... 阅读全文
posted @ 2015-04-18 08:02 蘑菇先生 阅读(6734) 评论(8) 推荐(13) 编辑
摘要: 这是楼主在知乎的回答,博客园补发下。0:Launchy 神器级别。桌面再不会出现快捷图标了。比如快速打开群聊天:1:Everything 神器级别。秒全盘搜索:2:vimium 仙器级别。 几乎不用鼠标:3:clover 仙器级别。 再也不用担心N个窗口了:4:MarkdowdPad2 仙器级别。 ... 阅读全文
posted @ 2015-04-15 20:32 蘑菇先生 阅读(2300) 评论(4) 推荐(2) 编辑
摘要: 接上篇探索c#之尾递归编译器优化累加器传递模式(APS)CPS函数CPS变换CPS尾递归总结累加器传递模式(Accumulator passing style)尾递归优化在于使堆栈可以不用保存上一次的返回地址/状态值,从而把递归函数当成一个普通的函数调用。递归实际上是依赖上次的值,去求下次的值。 如... 阅读全文
posted @ 2015-04-06 16:55 蘑菇先生 阅读(2119) 评论(1) 推荐(1) 编辑
摘要: 1、探索c#之函数创建和闭包2、探索c#之尾递归编译器优化3、探索c#之不可变数据类型4、 探索c#之递归APS和CPS5、探索c#之一致性Hash详解6、探索c#之微型MapReduce7、探索c#之虚拟桶分片8、探索c#之布隆过滤器(Bloom filter)9、探索c#之Async、Await... 阅读全文
posted @ 2015-03-29 11:48 蘑菇先生 阅读(3018) 评论(0) 推荐(3) 编辑
摘要: 阅读目录:不可变对象自定义不可变集合Net提供的不可变集合不可变优点不可变对象缺点不可变对象不可变(immutable): 即对象一旦被创建初始化后,它们的值就不能被改变,之后的每次改变都会产生一个新对象。var str="mushroomsir";str.Substring(0, 6)c#中的st... 阅读全文
posted @ 2015-03-28 14:44 蘑菇先生 阅读(6446) 评论(1) 推荐(6) 编辑
摘要: 视频PPT代码已共享在百度云盘 携程在SOA架构的探索.pdf 携程在SOA架构的探索.mp3 08年支付宝的SOA实践(程立)_标清.flv HSF介绍.pptx 淘宝分布式服务框架HSF.pdf HSF&ConfigServer.pptx 淘宝支付宝的SOA实践.pptx 阅读全文
posted @ 2015-03-26 16:16 蘑菇先生 阅读(6538) 评论(13) 推荐(20) 编辑
摘要: C#/64位/Release是有JIT编译器进行尾递归优化的(非C#编译器优化)。 C#/32位或C#/Debug模式中JIT是不进行优化的。 简单的尾递归优化成while循环, 复杂的尾递归,F#编译会生成IL指令Tail进行优化 阅读全文
posted @ 2015-03-16 09:07 蘑菇先生 阅读(5228) 评论(4) 推荐(7) 编辑
摘要: 阅读目录:动态创建函数匿名函数不足之处理解c#中的闭包闭包的优点动态创建函数大多数同学,都或多或少的使用过。回顾下c#中动态创建函数的进化:C# 1.0中: public delegate string DynamicFunction(string name); public static Dy... 阅读全文
posted @ 2015-02-27 08:47 蘑菇先生 阅读(5834) 评论(5) 推荐(5) 编辑
摘要: 阅读目录: 现有系统 新架构 2.1 逻辑架构图 2.2 解释说明 系统实施 3.1 SOA管理中心 3.2 发布服务 3.3 订阅服务 3.4 采蘑菇示例 设计目标 4.1 尽可能少的侵入 4.2 服务自治&&水平扩展 4.3 系统升级降级 常见问题 5.1 ClientApi VS ServiceApi 5.2 聚合服务 5.3 服务分级 总结心得 阅读全文
posted @ 2015-02-24 11:42 蘑菇先生 阅读(30324) 评论(68) 推荐(79) 编辑
摘要: 阅读目录 1. 介绍 2. 基本使用 3. 自动分割映射(Flattening) 4. 自定义字段映射(Projection) 5. 验证配置(Configuration validation) 介绍 AutoMapper是一个轻量级的类库,主要功能是把一个对象转换成另外一个对象,而避免我们每次都手 阅读全文
posted @ 2015-02-14 18:00 蘑菇先生 阅读(16391) 评论(8) 推荐(19) 编辑
点击右上角即可分享
微信分享提示