CQRS/ES框架调研】的更多相关文章

1.Enode一个C#写的CQRS/ES框架,由汤雪华设计及实现,github上有相关源码,其个人博客上有详细的孵化.设计思路.版本迭代及最新的完善: 2.axon framwork,java编写,网络介绍文章较少,github社区比较活跃,star也更多,issues和request比较多,目前正在试用: 3.reveno,由Artem Dmitriev设计编写,github上20颗星,最近更新在2年前: 4.…
大家好,我叫汤雪华.我平时工作使用Java,业余时间喜欢用C#做点开源项目,如ENode, EQueue.我个人对DDD领域驱动设计.CQRS架构.事件溯源(Event Sourcing,简称ES).事件驱动架构(EDA)这些领域比较感兴趣.我希望把自己所学的知识能否分享给大家,所以,把这个领域里的一些知识串联了起来,整理了一个PPT,并为每张PPT配备注释,分享给大家.希望能对这个领域有兴趣的朋友有所帮助. 上面的提纲是今天主要分享的内容概要.开始之前想先说一下微服务架构和CQRS架构的区别和…
用CQRS+ES实现DDD 这篇文章应该算是对前三篇的一个补充,在写之前说个题外话,有园友评论这是在用三层架构在写DDD,我的个人理解DDD是一种设计思想,跟具体用什么架构应该没有什么关系,DDD也需要分层,也有三层架构的影子在里面.三层架构主要是表现层.业务层和数据层,而DDD已经没有数据层,三层结构里的模型是贫血的,而DDD却是充血的.如果你在用三层框架已经有了聚合,实体,值对象的概念,那说明你已经在靠近DDD了,或者你不愿相信罢了,当然你可以保留自己的观点,这里不作争论,我也不能作出结论,…
在<当我们在讨论CQRS时,我们在讨论些神马>中,我们讨论了当使用CQRS的过程中,需要关心的一些问题.其中与CQRS关联最为紧密的模式莫过于Event Sourcing了,CQRS与ES的结合,为我们构造高性能.可扩展系统提供了基本思路.本文将介绍 Kanasz Robert在<Introduction to CQRS>中的示例项目Diary.CQRS. 获取Diary.CQRS项目 该项目为Kanasz Robert为了介绍CQRS模式而写的一个测试项目,原始项目可以通过访问&…
首发于我的gitpages博客 https://helenawang.github.io/2018/10/10/代码相似度计算框架调研 代码相似度计算框架调研 研究现状 代码相似度计算是一个已有40年研究历史的问题了.它的应用范围广泛,主要包括代码抄袭检测[3].软件维护中的相似代码查找等. Whale[1]于1988年首次提出一个代码相似性检测的通用框架和步骤,将检测过程分为以下两个阶段: 代码格式转换 + 相似度确定 后来很多检测方法都参考这一框架,并将检测过程细分为四个部分: 预处理 ->…
针对深度学习(神经网络)的AI框架调研 在我们的AI安全引擎中未来会使用深度学习(神经网络),后续将引入AI芯片,因此重点看了下业界AI芯片厂商和对应芯片的AI框架,包括Intel(MKL CPU).谷歌(TPU).NVidia(GPU).华为和寒武纪,发现所有的AI芯片都支持TensorFlow框架. 从收集到的信息来看: 1.目前TensorFlow在智能边缘计算中是主流,例如TensorFlow提供了移动端应用开发API,参考资料中包含了示例. 2.AI芯片对深度学习的加速效果,其中NVI…
今天我们来分析另一个开源的CQRS+ES项目:Equinox.该项目可以在github上下载并直接本地运行,项目地址:https://github.com/EduardoPires/EquinoxProject,该项目是基于 .net core 2.2的,开发语言.编码方式比Diary.CQRS更加新潮(CQRS+ES项目解析-Diary.CQRS),也更符合我们现在的开发习惯. 项目概览 首先通过github获取到项目源代码,打开项目文件,你会看到如下分层: Presentation:展示层,…
最近打算用C#实现一个基于文件的EventStore. 什么是EventStore 关于什么是EventStore,如果还不清楚的朋友可以去了解下CQRS/Event Sourcing这种架构,我博客中也有大量介绍.EventStore是在Event Sourcing(下面简称ES)模式中,用于存储事件用的.从DDD的角度来说,每个聚合根在自己的状态发生变化时都会产生一个或多个领域事件,我们需要把这些事件持久化起来.然后当我们需要恢复聚合根的最新状态到内存时,可以通过ES这种技术,从EventS…
前言 这几天在研究DDD和CQRS.快把我绕晕了.发现国外的好文质量还是挺高的.之所以先体验CQRSlite这个小框架,是因为看了一位大神写的文章:https://www.codeproject.com/articles/991648/cqrs-a-cross-examination-of-how-it-works .于是乎,下载框架体验一下. 什么是CQRS? Command Query Responsibility Segregation 的简称.翻译过来就是命令查询职责分离模式.在具体的也…
背景 当前的开放服务平台发展趋势,是服务使用者变得多种多样,其中既有各种前端设备(台式机.手机等),又有各种后端服务器,因此必须有一个统一的机制,方便各种服务使用者和开放服务平台进行通信.为了更好的实现开放服务平台,为了更加方便快捷的为公司内部以及外部人员提供智思.全文检索.雷达等服务,同时更加细致化的对数据中心各项服务的使用进行管理,并适应各种各样的服务使用者.因此,从开发角度考虑,团队非常需要使用一个符合开放服务平台需求的底层架构,来实现上述目标,同时还要考虑是否可以成为现有服务平台(str…
Golang API Starter Kit 该项目的主要目的是使用最佳实践.DDD.CQRS.ES.gRPC 提供样板项目设置. 为开发和生产环境提供 kubernetes 配置.允许与反映生产的 environment 一起工作,从而减少任何错误配置. 这是许多服务(如身份验证或用户域)的单一存储库(mono-repository). 除了共享包外,每个服务都有自己的代码库,以简化这个样板文件. 服务之间通过 gRPC 进行通信.每个服务都可能为外部通信或/和 gRPC 公开 HTTP AP…
1. 借助android提供的shareduserid属性使多个不同的apt共用一个userid,以扫除权限壁垒,获取插件context,继而获取view并加载插件.这种方式是建立在已经安装完成的apt基础上的. 例子和参考: 1) 工作原理介绍:http://892848153.iteye.com/blog/1976988 http://www.cnblogs.com/hangxin1940/archive/2011/12/14/2288169.html http://www.cnblogs.…
Python中大的爬虫框架有scrapy(风格类似django),pyspider(国产python爬虫框架). 除了Python,Java中也有许多爬虫框架. nutch apache下的开源爬虫程序,功能丰富,文档完整,有数据抓取解析以及存储的模块. 它的特点是规模大. heritrix 比较成熟 地址:internetarchive/heritrix3 · GitHub很早就有了,经历过很多次更新,使用的人比较多,功能齐全,文档完整,网上的资料也多.有自己的web管理控制台,包含了一个HT…
1, https://github.com/jpush/aurora-imui 极光的 支持 Android/iOS/RN 提供了消息列表.输入视图 功能不多, 2,https://github.com/Tencent/weui 效果:https://weui.io 手机页面开发 3,网易的,效果不错 https://github.com/netease-im/NIM_iOS_UIKit https://github.com/netease-im/NIM_Android_UIKit https:…
Github上优秀的.NET Core开源项目的集合.内容包括:库.工具.框架.模板引擎.身份认证.数据库.ORM框架.图片处理.文本处理.机器学习.日志.代码分析.教程等. Github地址:https://github.com/jasonhua95/awesome-dotnet-core ,[awesome-dotnet-core] 其中的翻译有可能有问题,大家发现了及时提出来,其他的比较好的项目也可以提出来,我会及时添加修改上去的. 一般 ASP.NET Core Documentatio…
Github上优秀的.NET Core项目 Github上优秀的.NET Core开源项目的集合.内容包括:库.工具.框架.模板引擎.身份认证.数据库.ORM框架.图片处理.文本处理.机器学习.日志.代码分析.教程等. Github地址:https://github.com/jasonhua95/awesome-dotnet-core ,[awesome-dotnet-core] 其中的翻译有可能有问题,大家发现了及时提出来,其他的比较好的项目也可以提出来,我会及时添加修改上去的. 一般 ASP…
内容包括:库.工具.框架.模板引擎.身份认证.数据库.ORM框架.图片处理.文本处理.机器学习.日志.代码分析.教程等. Github地址:https://github.com/jasonhua95/awesome-dotnet-core ,[awesome-dotnet-core] 其中的翻译有可能有问题,大家发现了及时提出来,其他的比较好的项目也可以提出来,我会及时添加修改上去的. 一般 ASP.NET Core Documentation - 官方ASP.NET核心文档站点. .NET C…
开场白 大家晚上好,我是郑承良,跟大家分享的话题是<基于Actor模型的CQRS/ES解决方案分享>,最近一段时间我一直是这个话题的学习者.追随者,这个话题目前生产环境落地的资料少一些,分享的内容中有一些我个人的思考和理解,如果分享的内容有误.有疑问欢迎大家提出,希望通过分享这种沟通方式大家相互促进,共同进步. 引言 话题由三部分组成: Actor模型&Orleans:在编程的层面,从细粒度-由下向上的角度介绍Actor模型: CQRS/ES:在框架的层面,从粗粒度-由上向下的角度介绍…
ES 框架简介 ES 是一款 极简,灵活, 高性能,扩建性强 的php 框架. 未开源之前在商业公司 经历数年,数个高并发网站 实践使用! 框架结构 整个框架核心四个文件,所有文件加起来放在一起总行数不超过400 行  |--src //受保护代码文件夹  |--lib |--es.php //启动文件 |--controller.php //控制器文件 |--model.php //模型文件 |--view.php //视图引擎  |--controller //控制器业务文件  |--vie…
Conference架构概述 先贴一下Conference案例的在线地址,UI因为完全拿了微软的实现,所以都是英文的,以后我有空再改为中文的. Conference后台会议管理:http://www.enode.me/conference Conference前台预定座位:http://www.enode.me/registration ENode论坛开源案例:http://www.enode.me/post ENode开源项目地址:https://github.com/tangxuehua/e…
前言 前一篇文章介绍了Conference案例的架构设计,本篇文章开始介绍Conference案例的代码实现.由于代码比较多,一开始就全部介绍所有细节,估计很多人接受不了,也理解不了.所以,我先进行一次QuickStart的介绍,即选取某个简单典型的场景从前到后过一下每个环节.这样大家就能够快速对代码的重要关键环节有大概的理解.另外,我现在正在做ENode的官网,到时会像axon framework一样,介绍ENode框架本身.使用场景.性能数据.案例,以及论坛社区等功能: 本文打算选择Conf…
ENode是一个.NET平台下,纯C#开发的,基于DDD,CQRS,ES,EDA,In-Memory架构风格的,可以帮助开发者开发高并发.高吞吐.可伸缩.可扩展的应用程序. 开源项目地址:https://github.com/tangxuehua/enode ENode可能的应用场景如下: 当你正在找一个DDD的开发框架时,可以考虑ENode: 当你想找一个CQRS架构的实现框架时,可以考虑ENode:当你的系统具有大量的写入,同时又有更大量的读取时,只要系统能接受写入数据和读取数据的最终一致性…
我从接触ddd到学习cqrs有6年多了, 其中也遇到了不少疑问, 也向很多的前辈牛人请教得到了很多宝贵的意见和建议. 偶尔的机会看到国外有个站点专门罗列了ddd, cqrs和事件溯源的常见问题. 其中很多也是我一路过来都曾遇到过的. 这是原站地址http://www.cqrs.nu/Faq. 在ENODE群中不少新学习cqrs的朋友都会遇到一些类似的入门问题, 作为群管理员的我也想为群里朋友做点贡献, 所以有了翻译一下CQRS FAQ的念头, 并加入一些自己的理解, 希望对大家会有所帮助. PS…
NET平台很棒.真的很棒.直到它不再那么棒.我为什么不再用.NET?简单来说,它限制了我们选择的能力(对我来说很重要),转移了我们的注意力,使得我们向内认知它的安全性,替代了帮助我们认知外面广阔世界的所有可能性. [系好安全带:这个文章的长度几乎成了一本书…] 优点 首先让我开始说说.NET做得对的许多事吧,尽管这其中的大多数并不来自.NET本身,但却是由.NET社区而来. C# C#令人惊叹.我认为它是一个令人惊叹的编程语言.从强大的C语言背景而来,我彻底地喜欢其语法,流和这门语言的所带来的感…
.NET 平台很棒.真的很棒.直到它不再那么棒.我为什么不再用 .NET?简单来说,它限制了我们选择的能力(对我来说很重要),转移了我们的注意力,使得我们向内认知它的安全性,替代了帮助我们认知外面广阔世界的所有可能性. [系好安全带:这个文章的长度几乎成了一本书…] 优点 首先让我开始说说 .NET 做得对的许多事吧,尽管这其中的大多数并不来自 .NET 本身,但却是由 .NET 社区而来. C# C#令人惊叹.我认为它是一个令人惊叹的编程语言.从强大的C语言背景而来,我彻底地喜欢其语法,流和这…
ENode框架Conference案例分析系列之 - Quick Start 前言 前一篇文章介绍了Conference案例的架构设计,本篇文章开始介绍Conference案例的代码实现.由于代码比较多,一开始就全部介绍所有细节,估计很多人接受不了,也理解不了.所以,我先进行一次QuickStart的介绍,即选取某个简单典型的场景从前到后过一下每个环节.这样大家就能够快速对代码的重要关键环节有大概的理解.另外,我现在正在做ENode的官网,到时会像axon framework一样,介绍ENode…
http://www.infoq.com/interviews/Technology-Influences-DDD# 要实现DDD(domain drive  design 领域驱动设计)原始意图,必须CQRS+Event Sourcing. CQRS+Event Sourcing其实不但是一种全新思想,将可能颠覆Java或C#现有的编程体系. 使用传统JavaEE或Spring + Hibernate这样的框架,是无法实现DDD原始意图的,这个DDD创始人Eric Vans已经说过:2012年…
并发 1. 并发和并行 并发:两个或多个任务在同一时间段内运行.关注点在任务分割. 并行:两个或多个任务在同一时刻同时运行.关注点在同时执行. 本文大多数情况下不会严格区分这两个概念,默认并发就是指并行机制下的并发. 2. 好处 随着多核处理器的出现,并发编程可以提高程序的性能(吞吐量和响应能力). 3. 并发实现方式 共享内存模型 因为并发能提高程序的性能,为了解决并发的需求,许多编程语言提供了共享内存通信机制(本文称为共享内存模型),体现是引入了Thread(线程)等概念.线程的出现解决了两…
.NET平台很棒.真的很棒.直到它不再那么棒.我为什么不再用.NET?简单来说,它限制了我们选择的能力(对我来说很重要),转移了我们的注意力,使得我们向内认知它的安全性,替代了帮助我们认知外面广阔世界的所有可能性. [系好安全带:这个文章的长度几乎成了一本书…] 优点 首先让我开始说说.NET做得对的许多事吧,尽管这其中的大多数并不来自.NET本身,但却是由.NET社区而来. C# C#令人惊叹.我认为它是一个令人惊叹的编程语言.从强大的C语言背景而来,我彻底地喜欢其语法,流和这门语言的所带来的…
一.简单入门之入门 CQRS/ES和领域驱动设计更搭,故整体分层沿用经典的DDD四层.其实要实现的功能概要很简单,如下图. 基础框架选择了https://github.com/looplab/eventhorizon,该框架功能强大.示例都挺复杂的,囊括的概念太多,不太适合入门,所以决定在其基础上,进行简化. 二.简化使用eventhorizon Eventhorizon已经提供了详尽的使用案例(https://github.com/looplab/eventhorizon/tree/maste…