24 热度

OAuth2.0认证流程是如何实现的?

大家也许都有过这样的体验,我们登录一些不是特别常用的软件或网站的时候可以使用QQ、微信或者微博等账号进行授权登陆。例如我们登陆豆瓣网的时候,如果不想单独注册豆瓣网账号的话,就可以选择用微博或者微信账号进行授权登录。这样的场景还有很多,例如登录微博、头条等网站,也都可以选择QQ或者微信登录的方式。那么这样的第三方登陆方式到底是怎么实现的呢?难道是腾讯把我们QQ或者微信的账户信息卖给...

收录时间: 2019-05-06
分类: 架构设计
贡献者: Rector
47 热度

Apollo 1.4 发布,携程开源的分布式配置中心

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。 服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有额外支持。.Net客户端不依赖任何框架,能够运行于所有.Net运行时环境。

收录时间: 2019-05-05
分类: 架构设计
贡献者: Rector
41 热度

CQRS and exception handling - Enterprise Craftsmanship

This is the last article in the series of articles designed to supplement my CQRS in Practice course. In it, I’d like to discuss one particular aspect of exception handling relevant to CQRS and the decorator pattern.

收录时间: 2019-04-18
分类: 架构设计
贡献者: Rector
60 热度

使用MediatR重构单体应用中的事件发布/订阅

使用MediatR重构单体应用中的事件发布/订阅,在之前的一篇文章中,我分享了一个在ASP.NET Core单体程序中,使用事件发布/订阅解耦业务逻辑的例子。

收录时间: 2019-04-02
分类: 架构设计
贡献者: Rector
78 热度

DDD领域驱动设计理论篇 - 学习笔记

一、Why DDD?在加入X公司后,开始了ASP.NET Core+Docker+Linux的技术实践,也开始了微服务架构的实践。在微服务的学习中,有一本微软官方出品的《.NET微服务:容器化.NET应用架构指南》是我们学习的葵花宝典,纵观微软官方放出来的Demo项目的演变历史(可以参见杨晓东《我眼中的ASP.NET Core微服务》一文):(1)PetShop:WebForm 的示例程序。典...

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

MediatR 知多少

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

收录时间: 2019-01-17
分类: 架构设计
贡献者: Rector
AD 友情赞助
261 热度

Kafka与.net core(二)zookeeper

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

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

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

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

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

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
205 热度

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

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

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

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

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

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

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

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

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

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
224 热度

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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