欢迎光临汤雪华的博客

一个人一辈子能坚持做好一件事情就够了!坚持是一种刻意的练习,不断寻找缺点突破缺点的过程,而不是重复做某件事情。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2014年7月25日

摘要: 前言之前写了一篇文章,总体介绍了EQueue。在看这篇文章之前如果还没看过那篇文章,可能会看不懂这篇文章。所以建议没看过的朋友务必先看一下那篇文章中所提到的各种概念,这样才能更好的理解本文所说的内容。说实话我当初写EQueue也是抱着一种玩的态度的,就是想尝试写一个分布式消息队列,用来为ENode提... 阅读全文

posted @ 2014-07-25 01:59 netfocus 阅读(17574) 评论(39) 推荐(17) 编辑

2014年7月22日

摘要: 前言ENode是一个基于消息的架构,使用ENode开发的系统,每个环节都是处理消息,处理完后产生新的消息。本篇文章我想详细分析一下ENode框架内部是如何实现整个消息处理流程的。为了更好的理解我后面的流程的描述,我觉得还是应该先把ENode的架构图贴出来,好让大家在看后面的分析时,可以对照这个架构图... 阅读全文

posted @ 2014-07-22 01:32 netfocus 阅读(5276) 评论(26) 推荐(22) 编辑

2014年7月20日

摘要: 前言经过不断的坚持和努力,ENode 2.0的第一个真实案例终于出来了。这个案例是一个简易的论坛,开发这个论坛的初衷是为了验证用ENode框架来开发一个真实项目的可行性。目前这个论坛在UI上是使用了最终一致性,也就是说当我们发帖或回帖后不会立马显示你的帖子或回复。当我们下一次刷新页面时,会显示出来。... 阅读全文

posted @ 2014-07-20 17:58 netfocus 阅读(15093) 评论(60) 推荐(40) 编辑

2014年7月8日

摘要: 设计指导原则一. 性能相关:避免在循环内部new一些没有必要每次都new的对象。所有与IO相关的操作,都需要考虑性能问题,一般采取的措施是连接池,缓存,减少调用次数,合并请求。每个业务都要分析整个请求链路,找到瓶颈,通过压测的方式确认问题及验证解决方案。根据业务情况,使用异步化和最终一致性。CPU,... 阅读全文

posted @ 2014-07-08 17:19 netfocus 阅读(1909) 评论(0) 推荐(1) 编辑

2014年6月20日

摘要: 本文出处:http://www.cqrs.nu/FaqWhat is a domain?The field for which a system is built. Airport management, insurance sales, coffee shops, orbital flight, ... 阅读全文

posted @ 2014-06-20 10:23 netfocus 阅读(3768) 评论(5) 推荐(0) 编辑

2014年4月13日

摘要: If using SQL Server,SqlBulkCopy.WriteToServer(DataTable)SqlBulkCopy.WriteToServer Method (DataTable)Or also with SQL Server, you can write it to a .cs... 阅读全文

posted @ 2014-04-13 17:44 netfocus 阅读(1434) 评论(0) 推荐(0) 编辑

2014年4月10日

摘要: 原文地址:http://hatemysql.com/tag/sync_binlog/1. 概述很多企业选择MySQL都会担心它的数据丢失问题,从而选择Oracle,但是其实并不十分清楚什么情况下,各种原因导致MySQL会丢失部分数据。本文不讨论Oracle和MySQL的优劣,仅仅关注MySQL丢失数... 阅读全文

posted @ 2014-04-10 11:03 netfocus 阅读(8485) 评论(3) 推荐(1) 编辑

2014年3月24日

摘要: 基于Quorum投票的冗余控制算法Quorom 机制,是一种分布式系统中常用的,用来保证数据冗余和最终一致性的投票算法,其主要数学思想来源于鸽巢原理。在有冗余数据的分布式存储系统当中,冗余数据对象会在不同的机器之间存放多份拷贝。但是同一时刻一个数据对象的多份拷贝只能用于读或者用于写。该算法可以保证同... 阅读全文

posted @ 2014-03-24 23:43 netfocus 阅读(17819) 评论(3) 推荐(3) 编辑

2014年3月14日

摘要: 我是阿里巴巴-OS事业群-OS手机事业部-系统服务部的开发工程师,正在招聘Java开发工程师。以下是职位描述:岗位名称:Java开发工程师招聘人数:5人生效日期:2014-03-12结束日期:2015-03-12工作年限:三年以上学历要求:本科岗位描述:1、负责云OS系统基础核心系统的设计和开发;2... 阅读全文

posted @ 2014-03-14 11:04 netfocus 阅读(3224) 评论(1) 推荐(0) 编辑

2014年3月12日

摘要: 前言本文想介绍一下前段时间在写enode时,顺便实现的一个分布式消息队列equeue。这个消息队列的思想不是我想出来的,而是通过学习阿里的rocketmq后,自己用c#实现了一个轻量级的简单版本。一方面可以通过写这个队列让自己更深入的掌握消息队列的一些常见问题;另一方面也可以用来和enode集成,为... 阅读全文

posted @ 2014-03-12 00:07 netfocus 阅读(54969) 评论(96) 推荐(90) 编辑

2014年3月8日

摘要: 前言今天是个开心的日子,又是周末,可以轻轻松松的写写文章了。去年,我写了ENode 1.0版本,那时我也写了一个分析系列。经过了大半年的时间,我对第一个版本做了很多架构上的改进,最重要的就是让ENode实现了分布式,通过新增一个分布式消息队列EQueue来实现。之所以要设计一个分布式的消息队列是因为... 阅读全文

posted @ 2014-03-08 22:52 netfocus 阅读(29752) 评论(33) 推荐(33) 编辑

2014年3月5日

摘要: 原文地址:http://bucketli.iteye.com/blog/1294032主要简单总结下,mysql在线扩容和缩容一般涉及到的内容,主要包括三个方面,1.在线也就意味着需要把增量的数据重新分布到新的拓扑结构中,我们一般称做增量复制,2.原有的数据需要一条不漏的扫出来重新分布到新的拓扑结构... 阅读全文

posted @ 2014-03-05 14:16 netfocus 阅读(5913) 评论(0) 推荐(1) 编辑

2014年1月5日

摘要: 原文地址:http://www.cnblogs.com/Mainz/archive/2012/09/08/2676618.htmlHTML5Linux/Unix系统设计思想读书笔记LinuxMVCJava线程MVCSpring MVCCSS3Nginx架构VimCliCommandsPHP知识卡Li... 阅读全文

posted @ 2014-01-05 23:56 netfocus 阅读(3641) 评论(8) 推荐(15) 编辑

2013年10月29日

摘要: 大家知道enode框架的架构是基于ddd+event sourcing的思想。我们持久化的不是聚合根的最新状态,而是聚合根产生的领域事件。最近我在思考如何实现一个基于文件的eventstore。目标有两个:1.必须要高性能;2.支持聚合根事件的并发持久化,要确保单个聚合根实例不会保存版本号相同的事件... 阅读全文

posted @ 2013-10-29 23:41 netfocus 阅读(4868) 评论(3) 推荐(8) 编辑

2013年10月12日

摘要: 先从著名的c10k问题谈起。有一个叫Dan Kegel的人在网上(http://www.kegel.com/c10k.html)提出:现在的硬件应该能够让一台机器支持10000个并发的client。然后他讨论了用不同的方式实现大规模并发服务的技术,归纳起来就是两种方式:一个client一个threa... 阅读全文

posted @ 2013-10-12 14:11 netfocus 阅读(7768) 评论(1) 推荐(3) 编辑

2013年9月27日

摘要: 出处:http://www.cnblogs.com/neutra/archive/2012/07/26/2609300.html最近在做第三方接入的,初步定下使用OAuth2协议,花了些时间对OAuth2的授权方式做了些了解。我还记得一两年前,跟一位同事聊起互联网时,当时我说过一个想法:目前不少较为... 阅读全文

posted @ 2013-09-27 23:25 netfocus 阅读(26967) 评论(4) 推荐(14) 编辑

2013年9月24日

摘要: 关于DDD的理论知识总结,可参考这篇文章。 DDD社区官网上一篇关于聚合设计的几个原则的简单讨论: 文章地址:http://dddcommunity.org/library/vernon_2011/,该地址中包含了一篇关于介绍如何有效的设计聚合的一些原则,共3个pdf文件。该文章中指出了以下几个聚合 阅读全文

posted @ 2013-09-24 00:39 netfocus 阅读(58847) 评论(84) 推荐(60) 编辑

2013年8月4日

摘要: 项目开源地址:https://github.com/tangxuehua/enode上一篇文章,简单介绍了enode框架中消息队列的设计思路,本文介绍一下enode框架中关系消息的重试机制的设计思路。对于一个EDA架构为基础的框架,核心就是消息驱动,然后基于最终一致性的原则。所以,非常重要的一点是,... 阅读全文

posted @ 2013-08-04 23:30 netfocus 阅读(5047) 评论(18) 推荐(5) 编辑

2013年7月12日

摘要: 开源地址:https://github.com/tangxuehua/enode上一篇文章,简单介绍了enode框架内部的整体实现思路,用到了staged event-driven architecture的思想。通过前一篇文章,我们知道了enode内部有两种队列:command queue、eve... 阅读全文

posted @ 2013-07-12 00:51 netfocus 阅读(10757) 评论(33) 推荐(22) 编辑

2013年7月9日

摘要: 开源地址:https://github.com/tangxuehua/enode上一篇文章,简单介绍了enode框架的command service api设计思路。本文介绍一下enode框架对Staged Event-driven architecture思想的运用。通过前一篇文章我们知道comm... 阅读全文

posted @ 2013-07-09 01:04 netfocus 阅读(4812) 评论(26) 推荐(15) 编辑