随笔分类 - [12]Architecture分布式系统架构
-
DDD不是架构设计方法
摘要:DDD不是架构设计方法 一文读懂DDD 2019-05-28 19:18 by 春哥大魔王, 413 阅读, 3 评论, 收藏, 编辑 何为DDD DDD不是架构设计方法,不能把每个设计细节具象化,DDD是一套体系,决定了其开放性,体系中可以用任何一种方法来解决这些问题,但是如果一些关键问题没有具体 阅读全文
-
CQRS1
摘要:CQRS之旅——旅程1(我们的领域:Contoso会议管理系统) 旅程1:我们的领域:Contoso会议管理系统 起点:我们从哪里来,我们带来了什么,谁将与我们同行?“ 只要前进,我愿意去任何地方。” --大卫•利文斯通 本章介绍了一个虚构的公司Contoso。它描述了Contoso计划推出的会议管 阅读全文
-
框架
摘要:框架 ABP是ASP.NET Boilerplate的简称,ABP是一个开源且文档友好的应用程序框架。ABP不仅仅是一个框架,它还提供了一个最徍实践的基于领域驱动设计(DDD)的体系结构模型。学习使用ABP框架也有一段时间了,一直想全面了解下这个框架的整个来龙去脉,并把想把它使用历程整理成一个系列出 阅读全文
-
多线程、事件驱动与推荐引擎框
摘要:多线程、事件驱动与推荐引擎框架选型 事件驱动编程是一种编程范式,这里程序的执行流由外部事件来决定。它的特点是包含一个事件循环,当外部事件发生时使用回调机制来触发相应的处理。多线程是另一种常用编程范式,并且更容易理解。 高性能通用型C++网络框架 Nebula 是基于事件驱动的多进程网络框架(适用于即 阅读全文
-
分布式事务
摘要:分布式事务 本文内容 什么是分布式事务? 有这样一个需求: 小明有两个账户,分别位于A、B两个数据库中,小明需要将A中的资金转到B中。 我们如何实现? 按照下面的方式实现看看有没有问题。 上面操作,正常情况是没有问题。 考虑如下情况: 第7步执行成功之后,网络出问题了,第8步会提交失败,此时的结果是 阅读全文
-
幂等性
摘要:幂等性 什么是分布式系统中的幂等性 最近很多人都在谈论幂等性,好吧,这回我也来聊聊这个话题,光看着俩字,一开始的确有点一头雾水,语文不好嘛,词太专业嘛,对吧 现如今我们的系统大多拆分为分布式SOA,或者微服务,一套系统中包含了多个子系统服务,而一个子系统服务往往会去调用另一个服务,而服务调用服务无非 阅读全文
-
划分微服务
只有注册用户登录后才能阅读该文。
-
NIO 编程模型
摘要:NIO 编程模型 Doug Lea 在 Scalable IO in Java 的 PPT 中描述了 Reactor 编程模型的思想,大部分 NIO 框架和一些中间件的 NIO 编程都与它一样或是它的变体。本文结合 PPT 按照自己的理解整理而来,最终编写了一个简单的 NIO 回显服务。 React 阅读全文
-
微服务化
摘要:微服务化 很多传统企业看着互联网公司都进行着微服务化,因此也想享受微服务化带来的好处便对自己的系统进行改造,但微服务化 多“微”才是最优?有哪些拆分的原则? 架构原则 使用成熟的技术,不需要最先进最好的技术,要是自己人能够掌控的,不然出现莫名的问题,一两天都可能解决不了,你就等着被拿来“祭天”吧。 阅读全文
-
分布式高并发下Actor模型
摘要:分布式高并发下Actor模型 写在开始 一般来说有两种策略用来在并发线程中进行通信:共享数据和消息传递。使用共享数据方式的并发编程面临的最大的一个问题就是数据条件竞争。处理各种锁的问题是让人十分头痛的一件事。 传统多数流行的语言并发是基于多线程之间的共享内存,使用同步方法防止写争夺,Actors使用 阅读全文
-
RPC 原理
摘要:转载地址:你应该知道的 RPC 原理 在校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。 而一旦踏入公司尤其是大型互联网公司就会发现,公司的系统都由成千上万大大小小的服务组成,各服务部署在不同的机器上,由 阅读全文
-
分布式任务调度框架
摘要:自己动手实现分布式任务调度框架 前段时间,公司要改造现有的单节点调度为分布式任务调度,然后就研究了目前市面上主流的开源分布式任务调度框架,用起来就一个感觉:麻烦!特别是之前在一个类里写了好多个调度任务,改造起来更加麻烦。我这人又比较懒,总感觉用了别人写好的工具还要改一大堆,心里就有点不舒服。于是我就 阅读全文
-
.net core consul grpc--系统服务RPC实现通信(一)
摘要:.net core grpc 系统服务实现通信(一) 现在系统都服务化,.net core 实现服务化的方式有很多,我们通过grpc实现客户端、服务端通信。 grpc(https://grpc.io/)是google发布的一个开源、高性能、通用RPC(Remote Procedure Call)框架 阅读全文
-
系统间通信——RPC架构设计
摘要:架构设计:系统间通信(10)——RPC的基本概念 1、概述经过了详细的信息格式、网络IO模型的讲解,并且通过JAVA RMI的讲解进行了预热。从这篇文章开始我们将进入这个系列博文的另一个重点知识体系的讲解:RPC。在后续的几篇文章中,我们首先讲解RPC的基本概念,一个具体的RPC实现会有哪些基本要素 阅读全文
-
三种「高可用」架构
摘要:三种「高可用」架构 一、业务开发与基础开发的区别 - 划分方式 一种将后台开发细分的方式:前台开发(业务)、中台开发(中间件、应用基础服务、PAAS服务、IAAS服务)、后台开发(运维开发)。一般前台开发对应于业务开发,中台开发对应基础开发,后台开发对应运维。 - 规模 基础开发的目标是解决业务的公 阅读全文
-
基于PaaS和SaaS研发平台体系
摘要:基于PaaS和SaaS研发的商业云平台实战 背景介绍 SaaS、PaaS、IaaS等云服务模式已经被大家普遍认可,在研发过程中借力一些PaaS和SaaS平台,能够提升产品的研发速度和功能稳定程度。本文将通过真实的商业平台案例-MaxWon研发实战,分享一下我们在项目研发过程使用SaaS和PaaS服务 阅读全文
-
分布式锁
摘要:分布式锁 利用redis实现分布式锁 分布式锁一般有三种实现方式: 1. 数据库乐观锁; 2. 基于ZooKeeper的分布式锁; 3. 基于Redis的分布式锁; 这里大概说一下三种方式的优缺点,数据库乐观锁优点是实现简单,只需要for update关键词就可以实现,缺点是无法满足高并发量以及数据 阅读全文
-
为什么使用消息队列
摘要:为什么使用消息队列 什么业务场景,这个业务场景有个什么技术挑战,如果不用MQ可能会很麻烦,但是你现在用了MQ之后带给了你很多的好处。消息队列的常见使用场景,其实场景有很多,但是比较核心的有3个:解耦、异步、削峰。 解耦: A系统发送个数据到BCD三个系统,接口调用发送,那如果E系统也要这个数据呢?那 阅读全文
-
Rx.NET响应式编程
摘要:响应式编程 Rx.NET 了解下 1. 引言 An API for asynchronous programming with observable streams.ReactiveX is a combination of the best ideas from the Observer patt 阅读全文
-
微服务架构
摘要:微服务架构到底应该如何选择? 什么是微服务? 微服务的概念最早是在 2014 年由 Martin Fowler 和 James Lewis 共同提出,他们定义了微服务是由单一应用程序构成的小服务,拥有自己的进程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通 阅读全文