后端环境搭建-IdentityServer4
摘要:React Ant Design Pro + .Net5 WebApi:后端环境搭建-IdentityServer4(一)简单配置 一、简介 IdentityServer4 是用于 ASP.NET Core 的 OpenID Connect 和 OAuth 2.0 框架,通过中间件的方式集成。JWT
阅读全文
4层架构六边型架构(也就是洋葱架构)
摘要:核心架构 在做了两章铺垫后本章再续写第九章。我们之前介绍过了好几种架构模式,那么本章只挑一种往死了整,这个架构其实就是在DDD书中所介绍的经典四层的变更版。这里面需要注意一点,四层架构是洋葱架构的一部分,尽管洋葱型已经是微服务架构系统中一种事实上的标准,但我们不会对各类适配器做重点介绍,那些东西一般
阅读全文
消息中间件-RabbitMQ
摘要:消息中间件-RabbitM 一、基础知识 1. 什么是RabbitMQ RabbitMQ是2007年发布,是一个在AMQP(高级消息队列协议)基础上完成的,简称MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法,由Erlang(专门针对于大数据高并发的语言)语
阅读全文
DDD分层架构
摘要:当今微服务盛行之架构师必经之路-领域驱动设计-下 DDD架构 传统分层架构 分层架构设计就是为了帮助我们达到高内聚、低耦合复用性设计和扩展性设计。整洁架构、CQRS、六边形架构等微服务架构都旨在实现“高内聚低耦合”,而分层架构基本原则是每层只能与位于其下方的层发生耦合。分层架构又分为两种: 严格分层
阅读全文
架构模式
摘要:戏说领域驱动设计(九)——架构模式 本节开始进入DDD的战术阶段,首先要讲解的必然是DDD中的架构,毕竟程序员就喜欢这个……不过这里的架构不同于我们常说的微服务架构、单体架构、无服务架构或服务网格。不严谨来讲,上述4种为涉及到系统结构、部署方式、服务器架构等更为全面的、包含软、硬件等内容的宏观系统架
阅读全文
分析Clean Architecture
摘要:分析Clean Architecture MASA Framework - DDD设计(2) 目录 MASA Framework - 整体设计思路MASA Framework - EventBus设计MASA Framework - MASA Framework - DDD设计(1)MASA Fra
阅读全文
分布式事务
摘要:分布式事务 目录 前言 1. 基础知识 1.1 分布式事务问题的理论模型 1.1.1 X/Open 分布式事务模型(XA 协议) 1.1.2 两阶段提交协议 1.1.3 三阶段提交协议 1.2 分布式事务的两个理论模型 1.2.1 CAP 定理 1.2.2 BASE 理论 1.3 分布式事务问题的常
阅读全文
如何适合什么场景使用Kafka和RabbitMQ
摘要:Kafka和RabbitMQ有哪些区别,各自适合什么场景? 经常有人问我 有个 xx 需求,我应该用 Kafka 还是 RabbitMQ ? 这个问题很常见,而且很多人对二者的选择也把握不好。 所以我决定写篇文章来详细说一下:Kafka 和 RabbitMQ 的区别,适用于什么场景? 同时,这个问题
阅读全文
Istio和Kubernetes(k8s)
摘要:一、微服务与SOA “微服务”是一个名词,没有这个名词之前也有“微服务”,一个朗朗上口的名词能让大家产生一个认知共识,这对推动一个事务的发展挺重要的,不然你叫微服务他叫小服务的大家很难集中到一个点上。 业界对微服务与SOA的区别争论比较多大多都是在微观上对比他们的区别什么微服务粒度更细啊、微服务没有
阅读全文
高并发下幂等性解决方案
摘要:高并发下幂等性解决方案 1 背景 我们的云办公系统有一个会议预定模块,每个月最后一个工作日的下午三点,会启动对下个月会议室的可用预定。 公司的会议室大约200个,但是需求量远不止于此,所以会形成会议室抢订的场面(抢订大军为行政助理、人事助理、开发经理、产品运营等对会议室有刚性需求的人)。 程序团队,
阅读全文
事务性,消息丢失,消息顺序性和消息重复发送的处理策略
摘要:RabbitMQ,RocketMQ,Kafka 事务性,消息丢失,消息顺序性和消息重复发送的处理策略 消息队列常见问题处理 分布式事务 什么是分布式事务 常见的分布式事务解决方案 基于 MQ 实现的分布式事务 本地消息表-最终一致性 MQ事务-最终一致性 RocketMQ中如何处理事务 Kafka中
阅读全文
缓存Bigkey
摘要:缓存Bigkey坚决不要用,拆分是王道 背景介绍 在高并发的业务场景中,缓存是必须要上的,用来扛高并发。在某个业务场景中,增加了对一个配置信息的缓存,最开始是直接读取DB的,为了性能考虑在前面加了一层缓存。 加完后很长一段时间也没问题,DB的压力也减小了很多。不幸的是在某天的一个时间点内,流量增加了
阅读全文
存储资源QPS估算
摘要:存储资源QPS估算 架构师必备:如何做容量预估和调优 为了构建高并发、高可用的系统架构,压测、容量预估必不可少,在发现系统瓶颈后,需要有针对性地扩容、优化。结合楼主的经验和知识,本文做一个简单的总结,欢迎探讨。 1、QPS保障目标 一开始就要明确定义QPS保障目标,以此来推算所需的服务、存储资源。可
阅读全文
高并发下秒杀
摘要:高并发下秒杀商品,必须知道的9个细节 高并发下如何设计秒杀系统?这是一个高频面试题。这个问题看似简单,但是里面的水很深,它考查的是高并发场景下,从前端到后端多方面的知识。 秒杀一般出现在商城的促销活动中,指定了一定数量(比如:10个)的商品(比如:手机),以极低的价格(比如:0.1元),让大量用户参
阅读全文
DDD的神奇
摘要:DDD领域驱动设计-概述-Ⅰ 如果我看得更远,那是因为我站在巨人的肩膀上。(If I have seen further it is by standing on ye shoulder of Giants.) Newtown,I. 1676 DDD:指领域驱动设计,是domain driven d
阅读全文
15项架构原则
摘要:典型的架构原则来自The Art of Scalability一书,作者马丁L.阿伯特和迈克尔T.费舍尔分别是eBay和PayPal的CTO。他们在书中总结了15项架构原则,分别如下所示。 N + 1设计。 回滚设计。 禁用设计。 监控设计。 设计多活数据中心。 使用成熟的技术。 异步设计。 无状态
阅读全文
Autofac是一个轻量级的依赖注入的框架
摘要:Autofac是一个轻量级的依赖注入的框架 ASP.NET Core 学习笔记 第三篇 依赖注入框架(Autofac)的使用 前言 首先感谢支持,写了这个系列的第二篇后,得到了好多人的鼓励,也更加坚定我把这个系列写完的决心,也能更好的督促自己的学习,分享自己的学习成果。还记得上篇文章中最后提及到,假
阅读全文
Redission实现的redis分布式锁set key my_random_value NX PX 30000
摘要:Redis分布式锁,看完不懂你打我 简易的redis分布式锁 加锁: set key my_random_value NX PX 30000 这个命令比setnx好,因为可以同时设置过期时间。不设置过期时间,应用挂了,解不了锁,就一直锁住了。 解锁: if redis.call("get",KEYS
阅读全文
Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性)
摘要:CAP原则(CAP定理)、BASE理论 一、CAP原则 CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。 CAP原则是NOSQL数据库的基石。 分布式系统
阅读全文
Practical Microservices with Dapr and .NET: A developer's guide to building cloud-native application
摘要:https://www.amazon.cn/dp/B08P5L81X8/ref=sr_1_1?__mk_zh_CN=%E4%BA%9A%E9%A9%AC%E9%80%8A%E7%BD%91%E7%AB%99&keywords=dapr&qid=1638924142&sr=8-1 《Practical
阅读全文