81 热度

MediatR 知多少

引言首先不用查字典了,词典查无此词。猜测是作者笔误将Mediator写成MediatR了。废话少说,转入正题。先来简单了解下这个开源项目MediatR(作者Jimmy Bogard,也是开源项目AutoMapper的创建者,在此表示膜拜):Simple mediator implementation in .NET. In-process messaging with no depende...

收录时间: 2019-01-17
分类: 架构设计
贡献者: Rector
109 热度

Kafka与.net core(二)zookeeper

1.zookeeper简单介绍1.1作用zookeeper的作用是存储kafka的服务器信息,topic信息,和cunsumer信息。如下图:而zookeeper是个什么东西呢?简单来说就是一个具有通知机制的文件系统,引用网路上的一张图可以看出来zookeeper是一个树形的文件结构,我们可以自定义node与node的值,并对node进行监视,当node的结构或者值变化时,我们可以...

收录时间: 2019-01-11
分类: 架构设计
贡献者: Rector
98 热度

中小研发团队架构实践之分布式协调器.Net版ZooKeeper

中小研发团队架构实践之分布式协调器.Net版ZooKeeper一、ZooKeeper是什么 Apache ZooKeeper是由Apache Hadoop的子项目发展而来,于2010年11月正式成为了Apache的顶级项目。        ZooKeeper是一个开放源代码的分布式协调服务。它具有高性能、高可用的特点,同时也具有严格的顺序访问控制能力(主要是写操作的严格顺序性)。基于对ZAB协...

收录时间: 2019-01-11
分类: 架构设计
贡献者: Rector
72 热度

The Interface Segregation Principle Applied in .NET

Scott HannenAbout The Interface Segregation Principle Applied in .NET Jan 1, 2019 The common definition of the Interface Segregation Principle (ISP) is: No client should be forced to depend on methods it does not use. This predates the .NET Framework, so how can we apply it to .NET code? The “client” is a class that depends on another class or interface. The word “interface” doesn’t refer specifically to the interface keyword. A class could depend on the public members of another class. But we often write our “client” classes to depend on interfaces defined with the interface keyword. So, while this post (and many others) apply the principle to interfaces declared with the interface keyword, the principle is not limited to that.

收录时间: 2019-01-03
分类: 架构设计
贡献者: Rector
104 热度

日均5亿查询量的京东到家订单中心,为什么舍MySQL用ES?

京东到家订单中心系统业务中,无论是外部商家的订单生产,或是内部上下游系统的依赖,订单查询的调用量都非常大,造成了订单数据读多写少的情况。我们把订单数据存储在MySQL中,但显然只通过DB来支撑大量的查询是不可取的。同时对于一些复杂的查询,MySQL支持得不够友好,所以订单中心系统使用了Elasticsearch来承载订单查询的主要压力。Elasticsearch作为一款功能强大的分布式搜索...

收录时间: 2019-01-03
分类: 架构设计
贡献者: Rector
126 热度

从壹开始微服务 [ DDD ] 之终篇 ║当事件溯源 遇上 粉丝活动

回首哈喽~大家好,时间过的真快,关于DDD领域驱动设计的讲解基本就差不多了,本来想着周四再开一篇,感觉没有太多的内容了,剩下的一个就是验证的问题,就和之前的JWT很类似,就不打开一个章节了,而且这个也不是领域驱动设计范畴之内的,下一个系列 Ids 的讲解中,可能会穿插着讲一讲,然后到时候正好一起完善了。虽然是完结了,不过心里还是不是很开森呀,通过小伙伴的反馈,然后我也咨询了官方的建议,好像这个...

收录时间: 2018-12-11
分类: 架构设计
贡献者: Rector
AD 友情赞助
142 热度

从壹开始微服务 [ DDD ] 之十二 ║ 核心篇【下】:事件驱动EDA 详解

从壹开始微服务 [ DDD ] 之十二 ║ 核心篇【下】:事件驱动EDA 详解缘起哈喽大家好,又是周二了,时间很快,我的第二个系列DDD领域驱动设计讲解已经接近尾声了,除了今天的时间驱动EDA(也有可能是两篇),然后就是下一篇的事件回溯,就剩下最后的权限验证了,然后就完结了,这两个月我也是一直在自学,然后再想栗子,个人感觉收获还是很大的,比如DDD领域分层设计、CQRS读写分离、CommandBu...

收录时间: 2018-12-05
分类: 架构设计
贡献者: Rector
154 热度

Double Dispatch in C# and DDD

Double dispatch is a pattern you can use in C# to control how communication flows between two objects. A frequent use of the pattern is to pass “this” to a function on another class, allowing that class to communicate back to or manipulate the calling object instance. It can also be used to achieve polymorphic behavior. I have a GitHub sample you can browse or download that demonstrates some of these techniques.

收录时间: 2018-12-02
分类: 架构设计
贡献者: Rector
154 热度

亿级流量系统架构之如何支撑百亿级数据的存储与计算

一、背景引入首先简单介绍一下项目背景,公司对合作商家提供一个付费级产品,这个商业产品背后涉及到数百人的研发团队协作开发,包括各种业务系统来提供很多强大的业务功能,同时在整个平台中包含了一个至关重要的核心数据产品,这个数据产品的定位是全方位支持用户的业务经营和快速决策。这篇文章就聊聊这个数据产品背后对应的一套大型商家数据平台,看看这个平台在分布式、高并发、高可用、高性能、海量数据等技术挑战下的架...

收录时间: 2018-11-27
分类: 架构设计
贡献者: Rector
140 热度

从壹开始微服务 [ DDD ] 之十 ║领域驱动【实战篇中】:命令总线Bus分发(一)

烽火哈喽大家好,老张又见面了,这两天被各个平台的“鸡汤贴”差点乱了心神,博客园如此,简书亦如此,还好群里小伙伴及时提醒,路还很长,这些小事儿就随风而去吧,这周本不打算更了,但是被群里小伙伴“催稿”了,至少也是对我的一个肯定吧,又开始熬夜中,请@初久小伙伴留言,我不知道你的地址,就不放链接了。收住,言归正传,上次咱们说到了领域命令验证《九 ║从军事故事中,明白领域命令验证(上)》,也介绍了其中的...

收录时间: 2018-11-23
分类: 架构设计
贡献者: Rector
180 热度

从壹开始微服务 [ DDD ] 之九 ║从军事故事中,明白领域命令验证(上)

烽烟哈喽大家周二好呀,咱们又见面了,上周末掐指一算,距离 圣诞节 只有 5 周的时间了(如果你还不知道为啥我要提圣诞节这个时间点,可以看看我的第二系列开篇《之一 ║ D3模式设计初探 与 我的计划书》),然后我简单的思考了下这个DDD领域驱动设计还剩下的知识点,现在已经进入了第二部分,就是领域命令和领域驱动这一块,第三部分包括Identity验证和.net core api等设计点,大概就是剩了这...

收录时间: 2018-11-20
分类: 架构设计
贡献者: Rector
175 热度

分布式系统关注点——99%的人都能看懂的「熔断」以及最佳实践

阅读目录 熔断是什么 熔断怎么做 做熔断的最佳实践 总结 当我们工作所在的系统处于分布式系统初期的时候,往往这时候每个服务都只部署了一个节点。 那么在这样的背景下,如果某个服务A需要发布一个新版本,往往会对正在运行的其它依赖服务A的程序产生影响。甚至,一旦服务A的启动预热过程耗时过长,问题会更严重,大量请求会阻塞,产生级联影响,导致整个系统卡慢。 举个夸张的例子来形容:一幢楼的下水管是从最高楼直通到最低楼的,这个时候如果你家楼下的管道口堵住了,那么所有楼上的污水就会倒灌到你家。如果这导致你家的管道口也堵住了,之后又会倒灌到楼上一层,以此类推。 然而实际生活中一旦你发现了这个问题,必然会想办法先避免影响到自己家,然后跑到楼下让他们赶紧疏通管道。此时,避免影响自己家的办法就可被称之为「熔断」。

收录时间: 2018-11-20
分类: 架构设计
贡献者: Rector
209 热度

从壹开始微服务 [ DDD ] 之七 ║项目第一次实现 & CQRS初探

前言哈喽大家周五好,我们又见面了,感谢大家在这个周五读我的文章,经过了三周的时间,当然每周两篇的速度的情况下,咱们简单说了下DDD领域驱动设计的第一部分,主要包括了,《项目入门DDD架构浅析》,《领域、子领域、限界上下文》,《DDD使用意义》,《实体与值对象》,《聚合与聚合根》这五部分内容,主要的是以解释为主,举例子Code为辅的形式,总体来说还是得到一些肯定的,也是我最大的动力了。上边这五个...

收录时间: 2018-11-09
分类: 架构设计
贡献者: Rector
188 热度

从壹开始微服务 [ DDD ] 之六 ║聚合 与 聚合根 (下)

从壹开始微服务 [ DDD ] 之六 ║聚合 与 聚合根 (下)前言哈喽大家周二好,上次咱们说到了实体与值对象的简单知识,相信大家也是稍微有些了解,其实实体咱们平时用的很多了,基本可以和数据库表进行联系,只不过值对象可能不是很熟悉,值对象简单来说就是在DDD领域驱动设计中,为了更好的展示领域模型之间的关系,制定的一个对象,它没有状态和标识,目的就是为了表示一个值。今天呢本来不想说聚合了,因为网上的...

收录时间: 2018-11-07
分类: 架构设计
贡献者: Rector
231 热度

从壹开始微服务 [ DDD ] 之五 ║聚合:实体与值对象 (上)

从壹开始微服务 [ DDD ] 之五 ║聚合:实体与值对象 (上)前言哈喽,老张是周四放松又开始了,这些天的工作真的是繁重,三个项目同时启动,没办法,只能在深夜写文章了,现在时间的周四凌晨,白天上班已经没有时间开始写文章了,希望看到文章的小伙伴,能给个辛苦赞哈哈,当然看心情很随意。废话不多说,话说上次咱们对DDD简单说明了下存在的意义,还有就是基于教学上下文的第一次定义,今天咱们就继续说说DD...

收录时间: 2018-11-01
分类: 架构设计
贡献者: Rector
232 热度

从壹开始微服务 [ DDD ] 之四 ║让你明白DDD的小故事 & EFCore初探

从壹开始微服务 [ DDD ] 之四 ║让你明白DDD的小故事 & EFCore初探缘起哈喽大家好哟,今天又到了老张的周二四放送时间了,当然中间还有不定期的更新(因为个人看papi酱看多了),这个主要是针对小伙伴提出的问题和优秀解决方案而写的,经过上周两篇DDD领域驱动设计的试水,我发现一个问题,这个DDD的水是真的深啊~或者来说就是这个思想的转变是不舒服的,好多小伙伴就说有点儿转不过来,当然我也...

收录时间: 2018-10-30
分类: 架构设计
贡献者: Rector
234 热度

从壹开始微服务 [ DDD ] 之三 ║ 简单说说:领域、子域、限界上下文

从壹开始微服务 [ DDD ] 之三 ║ 简单说说:领域、子域、限界上下文前言哈喽大家好,DDD领域驱动设计系列又开始了,前天周二的那篇入门文章中,也收到了一定的效果(写小说的除外),同时我也是倍感鸭梨,怎么说呢,DDD领域驱动设计已经有十年历史了,甚至更久,但是包括我在内的一批技术人员还是对其不是很明白,这几天我也是日思夜想,怎样才能说的明白,怎样才能把这个高高在上的思想落在实践上,可惜的是国内...

收录时间: 2018-10-25
分类: 架构设计
贡献者: Rector
253 热度

从壹开始微服务 [ DDD ] 之二 ║ DDD入门 & 项目结构粗搭建

前言 哈喽大家好,今天是周二,我们的DDD系列文章今天正式开始讲解,我这两天一直在学习,也一直在思考如何才能把这一个系列给合理的传递给大家,并且达到学习的目的,还没有特别好的路线,只是一个大概的模糊的安排,毕竟我没有做过讲师,但是我感觉还是需要对自己负责,至少要对得起这个熬夜写的博客吧 ,我简单设计了下整体流程,可能以后还会变动,不过大致方向是不会变的:我打算通过一个最简单一个例子来讲...

收录时间: 2018-10-24
分类: 架构设计
贡献者: Rector
208 热度

CQRS/ES In .NET: Event Handlers

Continuing this series on CQRS and ES in .NET, we’re now going to focus on Event Handlers. I previously covered: CQRS/ES The Command The Command Handler The Repository The Domain Object If you haven’t read them, I advise you to to so first. Read them in order, because they build upon each other. If you’re already familiar with CQRS and Event Sourcing, you can skip the first one.

收录时间: 2018-10-22
分类: 架构设计
贡献者: Rector
244 热度

领域驱动设计概览

领域驱动设计概览领域驱动设计(Domain Driven Design,DDD)是由Eric Evans最早提出的综合软件系统分析和设计的面向对象建模方法,如今已经发展为一种针对大型复杂系统的领域建模与分析方法。它完全改变了传统软件开发工程师针对数据库进行的建模方法,从而将要解决的业务概念和业务规则转换为软件系统中的类型以及类型的属性与行为,通过合理运用面向对象的封装、继承、多态等设计要素,降低或...

收录时间: 2018-09-26
分类: 架构设计
贡献者: Rector