随笔分类 - [12]Architecture分布式系统架构
-
软件架构中的那些惯用手段
摘要:大家好,我是vzn呀,又见面了。 前不久出了个有意思的事情: 某平台UP主发布了一段小米SU7碰撞的测评视频,表示碰撞后小米SU7的小电瓶出现故障导致车门打不开、紧急呼叫系统失灵等问题,引起不小轰动。就在大家都在吃瓜看小米如何应对时,小米官方抛出了一份内部调查报告,重点就一个:我还藏了个备用电源!我 阅读全文
-
事件总线EventBus实现邮件推送
摘要:基于事件总线EventBus实现邮件推送功能 有时候,有人给我的网站留了言,但是我必须要打开我的网站(https://www.xiandanplay.com/)才知道,所以我便决定给网站增加一个邮件推送的功能,好让我第一时间知道。于是乎,按照我自己的思路,同时为了去学习了解rabbitmq以及Eve 阅读全文
-
Quartz.NET的作业调度
摘要:实现Quartz.NET的HTTP作业调度 Quartz.NET作为一个开源的作业调度库,广泛应用于.NET应用程序中,以实现复杂的定时任务,本次记录利用Quartz.NET实现HTTP作业调度,通过自定义HTTP作业,实现对外部API的定时调用和如何管理这些作业,包括创建、修改、暂停、恢复和删除作 阅读全文
-
[C#] Rx.NET
摘要:[C#] Rx.NET 最近在專案中開始使用 Rx.NET 了,剛開始有些不太適應,不過大致熟悉後,寫起來還是很過癮,不輸給使用 RxJS,以下做一些簡單的筆記,讓對 Rx.NET 有興趣的朋友能快速上手。 因為之前都是寫 RxJS 居多,也會有一些跟 RxJS 的比較,不過主軸還是以 Rx.NET 阅读全文
-
.NET 缓存:内存缓存 IMemoryCache、分布式缓存 IDistributedCache(Redis)
摘要:.NET 缓存:内存缓存 IMemoryCache、分布式缓存 IDistributedCache(Redis) .NET缓存里分了几类,主要学习内存缓存、分布式缓存 一、内存缓存 IMemoryCache 1、Program注入缓存 builder.Services.AddMemoryCache( 阅读全文
-
事件驱动
摘要:RocketMQ 事件驱动:云时代的事件驱动有啥不同? 前言: 从初代开源消息队列崛起,到 PC 互联网、移动互联网爆发式发展,再到如今 IoT、云计算、云原生引领了新的技术趋势,消息中间件的发展已经走过了 30 多个年头。 目前,消息中间件在国内许多行业的关键应用中扮演着至关重要的角色。随着数字化 阅读全文
-
QPS才算高并发
摘要:QPS才算高并发 高并发场景QPS等专业指标揭秘大全与调优实战 合集 - 三“高”架构设计与调优(1) 1.高并发场景QPS等专业指标揭秘大全与调优实战04-14 收起 高并发场景QPS等专业指标揭秘大全与调优实战 最近经常有小伙伴问及高并发场景下QPS的一些问题,特意结合项目经验和网上技术贴做了一 阅读全文
-
谈tcp,http,socket,rpc,grpc
摘要:谈tcp,http,socket,rpc,grpc 简介:计算机网络的五(七)层协议:物理层、数据链路层、网络层、传输层、(会话层、表示层)和应用层。 tcp:是传输层协议,主要解决数据如何在网络中传输。 http:是应用层协议,主要解决如何包装数据(文本信息),是建立在tcp协议之上的应用。tcp 阅读全文
-
实现高可用
摘要:CDN 全称是 Content Delivery Network,中文释义是内容分发网络。 CDN 的作用是把用户需要的内容分发到离用户最近的地方进行响应,这样用户能够快速获取所需要的内容。 CDN 本质上就是一种网络缓存技术,能够把一些相对稳定的资源放到距离最终用户较近的地方,一方面可以节省整个广 阅读全文
-
应用程序内部的代码级别的读写分离CQRS(Command Query Responsibility Segregation)直译成中文叫命令查询职责分离
摘要:产品代码都给你看了,可别再说不会DDD(十):CQRS 这是一个讲解DDD落地的文章系列,作者是《实现领域驱动设计》的译者滕云。本文章系列以一个真实的并已成功上线的软件项目——码如云(https://www.mryqr.com)为例,系统性地讲解DDD在落地实施过程中的各种典型实践,以及在面临实际业 阅读全文
-
架构分类
摘要:SOA认知和方法论 1 前言 1.1 架构分类 在软件设计领域,企业架构通常被划分为如下五种分类: 如何理解架构分类依据及其彼此之间的关系?业务是企业赖以生存之本,因此业务架构是基础、是灵魂,其他一切均是对业务架构的支撑;根据业务架构形成与之相应的产品架构和数据架构;最后通过技术架构落地实施。 应用 阅读全文
-
接口的幂等性乐观锁
摘要:如何保证接口的幂等性? 作者:小牛呼噜噜 | https://xiaoniuhululu.com 计算机内功、源码解析、科技故事、项目实战、面试八股等更多硬核文章,首发于公众号「小牛呼噜噜」 目录 什么是幂等性? 为什么需要保证幂等性? 接口幂等设计和防止重复提交可以等同吗? 常用保证幂等性的措施 阅读全文
-
分布式追踪的核心概念是 Trace 和 Span
摘要:使用 OpenTelemetry 构建 .NET 应用可观测性(1):什么是可观测性 目录 什么是系统的可观测性(Observability) 为什么软件系统需要可观测性 可观测性的三大支柱 日志(Logging) 指标(Metrics) 分布式追踪(Distributed Tracing) Tra 阅读全文
-
十种微服务设计模式
摘要:10个微服务设计模式 微服务设计模式是一种指导微服务架构设计和开发的一系列原则和实践。微服务设计模式的目的是为了解决微服务架构中遇到的一些常见的问题和挑战,比如服务划分、服务通信、服务治理、服务测试等。微服务设计模式可以帮助我们构建出高效、可靠、可扩展、可维护的微服务系统。 本文将介绍以下十种微服务 阅读全文
-
领域驱动 | 事件驱动 | 测试驱动 | 声明式设计 | 响应式编程 | 命令查询职责分离 | 事件溯源
摘要:Wow: 基于 DDD、EventSourcing 的现代响应式 CQRS 架构微服务开发框架 领域驱动 | 事件驱动 | 测试驱动 | 声明式设计 | 响应式编程 | 命令查询职责分离 | 事件溯源 架构图 事件源 可观测性 OpenAPI (Spring WebFlux 集成) 自动注册 命令 阅读全文
-
部署策略:大爆炸、滚动、蓝绿、金丝雀和功能切换
摘要:部署策略:大爆炸、滚动、蓝绿、金丝雀和功能切换 复杂软件工程中,新功能的部署,成为了软件价值交付的重要环节,今天我们就来聊聊关于部署的5种常见的策略。 5种策略概述 在现代软件工程领域,有五种常见的部署策略:大爆炸、滚动、蓝绿、金丝雀和功能切换。具体如下: 大爆炸(Big Bang)部署:这种部署策 阅读全文
-
电商大促备战
摘要:架构师日记-从技术角度揭露电商大促备战的奥秘 一 背景 今年的618大促已经如期而至,接下来我会从技术的角度,跟大家聊聊大促备战的底层逻辑和实战方案,希望能够解答大家心中的一些疑惑。 首先,618大促为什么如此重要呢?先从数据的角度简单做一下分析,以下表格罗列了我们历年大促GMV成绩单: 年份618 阅读全文
-
栈和堆结构及JVM简析
摘要:《数据结构》之栈和堆结构及JVM简析 导言: 在数据结构中,我们第一了解到了栈或堆栈,它的结构特点是什么呢?先进后出,它的特点有什么用呢?我们在哪里可以使用到栈结构,栈结构那么简单,使用这么久了为什么不用其它结构替代? 一.程序在内存中的分布 作为一个程序猿,我们应该会常常跟代码打交道,那么我们所编 阅读全文
-
分布式坑
摘要:这三年被 本篇主要内容如下: 前言 我们都在讨论分布式,特别是面试的时候,不管是招初级软件工程师还是高级,都会要求懂分布式,甚至要求用过。传得沸沸扬扬的分布式到底是什么东东,有什么优势? 借用火影忍术 看过火影的同学肯定知道漩涡鸣人的招牌忍术:多重影分身之术。 这个术有一个特别厉害的地方,过程和心得 阅读全文
-
API架构的选择,RESTful、GraphQL还是gRPC
摘要:API架构的选择,RESTful、GraphQL还是gRPC hi,我是熵减,见字如面。 在现代的软件工程中,微服务或在客户端与服务端之间的信息传递的方式,比较常见的有三种架构设计的风格:RESTful、GraphQL和gRPC。 每一种模式,都有其特点和合适的使用场景,今天,我们主要来对三种风格做 阅读全文