欢迎光临汤雪华的博客

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

随笔分类 - ENode

摘要:选择ENode意味着什么可能很多人还不太清楚。我简单整理了一下: 意味着你选择了:你需要做DDD领域建模、选择了事件驱动的架构、选择了CQRS架构、选择了最终一致性、选择了事件溯源、选择了分布式。这些你都调研过了,再考虑是否你需要使用。 所以ENode不是一个简单的类库型的框架,它是一个架构型的框架 阅读全文

posted @ 2016-09-26 09:51 netfocus 阅读 (8248) | 评论 (9) 编辑

摘要:最近打算用C#实现一个基于文件的EventStore。 什么是EventStore 关于什么是EventStore,如果还不清楚的朋友可以去了解下CQRS/Event Sourcing这种架构,我博客中也有大量介绍。EventStore是在Event Sourcing(下面简称ES)模式中,用于存储 阅读全文

posted @ 2016-07-11 00:01 netfocus 阅读 (6315) | 评论 (13) 编辑

摘要:ENode架构图 什么是ENode ENode是一个.NET平台下,纯C#开发的,基于DDD,CQRS,ES,EDA,In-Memory架构风格的,可以帮助开发者开发高并发、高吞吐、可伸缩、可扩展的应用程序的一个应用开发框架。 开源项目地址:https://github.com/tangxuehua 阅读全文

posted @ 2016-04-17 15:30 netfocus 阅读 (12840) | 评论 (44) 编辑

摘要:浅谈12306核心模型设计思路和架构设计[推荐] DDD部分核心概念的个人理解 DDD CQRS架构和传统架构的优缺点比较[推荐] DDD实践问题之 - 关于论坛的帖子回复统计信息的更新的思考 ENode 2.6 架构与设计简介以及全新案例分享[推荐] ENode框架Conference案例分析系列 阅读全文

posted @ 2016-02-17 23:15 netfocus 阅读 (5544) | 评论 (6) 编辑

摘要:设计目标 尽量快的处理命令和事件,保证吞吐量; 处理完一个命令后不需要等待命令产生的事件持久化完成就能处理下一个命令,从而保证领域内的业务逻辑处理不依赖于持久化IO,实现真正的in-memory; 保证命令、事件处理的顺序性,先来的先处理,先产生的先处理; 保证一个聚合根的事件只有一个线程在持久化, 阅读全文

posted @ 2016-02-03 19:12 netfocus 阅读 (2798) | 评论 (3) 编辑

摘要:ENode是什么 ENode是一个.NET平台开源的应用开发框架,为开发人员提供了一套完整的基于DDD+CQRS+ES+(in-memory)+EDA架构风格的解决方案。 ENode的特色是什么 开源地址 https://github.com/tangxuehua/enode 官网: 目前正在开发中 阅读全文

posted @ 2015-08-06 13:41 netfocus 阅读 (22918) | 评论 (29) 编辑

摘要:ENode是一个.NET平台下,纯C#开发的,基于DDD,CQRS,ES,EDA,In-Memory架构风格的,可以帮助开发者开发高并发、高吞吐、可伸缩、可扩展的应用程序。开源项目地址:https://github.com/tangxuehua/enodeENode可能的应用场景如下:当你正在找一个... 阅读全文

posted @ 2015-06-26 11:31 netfocus 阅读 (4244) | 评论 (7) 编辑

摘要:测试环境两台笔记本网线直连,通过测速工具(jperf)测试,确定两台电脑之间的数据传输速度可以达到1Gbps,即千兆网卡的最大速度。两台电脑硬件配置如下:client服务器,CPU:Intel i5-3230 2.6GHz 内存:8Gserver服务器,CPU:Intel i5-3210 2.5G... 阅读全文

posted @ 2015-06-08 23:10 netfocus 阅读 (2458) | 评论 (3) 编辑

摘要:前言ENode是一个应用开发框架,为开发人员提供了一整套基于DDD+CQRS+ES+EDA架构风格的解决方案。ENode从发布1.0开始到现在的差不多两年时间,我几乎每周都在更新设计或实现代码。以至于从来没有一个稳定的版本可以提供给大家,非常惭愧。但我相信,随着时间的推移和我的努力的积累,ENode... 阅读全文

posted @ 2015-05-05 00:48 netfocus 阅读 (11128) | 评论 (38) 编辑

摘要:CQRS架构,C端的职责是处理从上层发送过来的command。对于单台机器来说,我们如何尽快的处理command呢?本文想通过不断提问和回答的方式,把我的思考写出来。首先,我们最容易想到的是使用多线程。那当我们要处理一个command时,能直接丢到线程池中,直接交给线程池去调度吗?不行。因为假如多个... 阅读全文

posted @ 2015-01-26 00:24 netfocus 阅读 (2940) | 评论 (10) 编辑

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

posted @ 2014-07-22 01:32 netfocus 阅读 (4360) | 评论 (26) 编辑

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

posted @ 2014-07-20 17:58 netfocus 阅读 (13257) | 评论 (60) 编辑

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

posted @ 2014-03-08 22:52 netfocus 阅读 (24738) | 评论 (33) 编辑

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

posted @ 2013-08-04 23:30 netfocus 阅读 (4239) | 评论 (18) 编辑

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

posted @ 2013-07-12 00:51 netfocus 阅读 (9857) | 评论 (33) 编辑

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

posted @ 2013-07-09 01:04 netfocus 阅读 (4090) | 评论 (26) 编辑

摘要:开源地址:https://github.com/tangxuehua/enode上一篇文章,介绍了enode框架的物理部署思路。本文我们再简单分析一下Command Service的API设计:Command Service在enode框架中的地位非常重要,用户使用enode框架的主入口就是comm... 阅读全文

posted @ 2013-07-08 22:26 netfocus 阅读 (2238) | 评论 (2) 编辑

摘要:开源地址:https://github.com/tangxuehua/enode上一篇文章,介绍了enode框架的总体目标,以及如何实现高吞吐、低延迟、高可用、无单点问题的实现思路。本篇文章,我们再分析一下其他一些需要考虑的问题。我发现写文章挺累的,费时费脑经,但我会坚持下去。本文主要分析一下eno... 阅读全文

posted @ 2013-07-08 13:00 netfocus 阅读 (2666) | 评论 (8) 编辑

摘要:开源地址:https://github.com/tangxuehua/enode本文想介绍一下enode框架要实现的目标以及部分实现分析思路剖析。总体来说enode框架是一个基于cqrs架构和消息驱动的应用开发框架。在说实现思路之前,我们先看一下enode框架希望实现的一些目标吧!框架总体目标高吞吐... 阅读全文

posted @ 2013-06-27 00:31 netfocus 阅读 (3727) | 评论 (21) 编辑

摘要:开源地址:https://github.com/tangxuehua/enode因为enode框架的思想是,一次修改只能新建或修改一个聚合根;那么,如果一个用户请求要涉及多个聚合根的新建或修改该怎么办呢?本文的目的就是要分析清楚这个问题在enode框架下是如何解决的。如果想直接通过看代码的朋友,可以... 阅读全文

posted @ 2013-06-22 16:17 netfocus 阅读 (13397) | 评论 (13) 编辑

摘要:开源地址:https://github.com/tangxuehua/enode上一篇文章,我给大家分享了我的一个基于DDD以及EDA架构的框架enode,但是只是介绍了一个大概。接下来我准备用很多一篇篇详细但不冗长的文章介绍每个点。尽量争取一次不介绍太多内容,但希望每次介绍完后都能让大家知道这个小... 阅读全文

posted @ 2013-06-19 00:00 netfocus 阅读 (5815) | 评论 (17) 编辑

摘要:前言今天是个开心的日子,又是周末,可以安心轻松的写写文章了。经过了大概3年的DDD理论积累,以及去年年初的第一个版本的event sourcing框架的开发以及项目实践经验,再通过今年上半年利用业余时间的设计与开发,我的enode框架终于可以和大家见面了。自从Eric Evan提出DDD领域驱动设计... 阅读全文

posted @ 2013-06-17 09:18 netfocus 阅读 (14954) | 评论 (47) 编辑