随笔分类 - [12]Architecture分布式系统架构
-
冷备 双机热备 同城双活 异地双活 异地多活--高可用的一些解决方案--有状态服务
摘要:高可用解决方案:同城双活?异地双活?异地多活?怎么实现 有状态服务 后台服务可以划分为两类,有状态和无状态。高可用对于无状态的应用来说是比较简单的,无状态的应用,只需要通过F5或者任何代理的方式就可以很好的解决。后文描述的主要是针对有状态的服务进行分析。服务端进行状态维护主要是通过磁盘或内存进行保存 阅读全文
-
gRPC vs REST
摘要:gRPC vs REST:两种 API 架构风格的对比 想知道未来是不是 gRPC 的天下?本文会具体介绍两种 API 架构风格:REST 和 gRPC,并讨论它们之间的区别。不过,首先,我们会解释什么是 API,以及为什么它对微服务基础设施而言至关重要。之后,我们会介绍 gRPC 的基础——RPC 阅读全文
-
分布式系统架构经验
摘要:新东方APP技术架构演进, 分布式系统架构经验分享 今天的演讲题目是“新东方APP技术架构演进, C端技术经验分享” 作者:张建鑫, 曾任IBM高级软件架构师, 滴滴高级技术专家, 现任新东方集团高级技术总监 古代东西方的思想家都产生过一个终极的追问,世界的本元到底是什么? 老子说,道生一,一生二, 阅读全文
-
Loki轻量级日志收集
摘要:轻量级日志收集方案Loki 先看看结果有多轻量吧 官方文档:https://grafana.com/docs/loki/latest/ 简介 Grafana Loki 是一个日志聚合工具,它是功能齐全的日志堆栈的核心。 Loki 是一个为有效保存日志数据而优化的数据存储。日志数据的高效索引将 Lok 阅读全文
-
网关服务Kong和konga介绍安装
摘要:网关服务Kong和konga介绍安装使用教程 介绍 Kong是一款基于OpenResty(Nginx + Lua模块)编写的高可用、易扩展的,由Mashape公司开源的API Gateway项目。Kong是基于NGINX和Apache Cassandra或PostgreSQL构建的,能提供易于使用的 阅读全文
-
领域驱动设计
摘要:何时使用领域驱动设计 何时使用领域驱动设计?其实当你的应用程序架构设计是面向业务的时候,你已经开始使用领域驱动设计了。领域驱动设计既不是架构风格(Architecture Style),也不是架构模式(Architecture Pattern),它也不是一种软件开发方法论,所以,是否应该使用领域驱动 阅读全文
-
CleanArchitecture原则CQRS模式
摘要:一个遵循CleanArchitecture原则的Asp.net core轻量级开源项目 这是一个基于最新的ASP.net core 5.0创建Razor Page应用程序解决方案模板。遵循Clean Architecture的原则,以最求简洁的代码风格和实现快速开发小型的web业务系统的目标,并且从 阅读全文
-
微服务 - 架构图
摘要:.Net Core with 微服务 - 架构图 上一次我们简单介绍了什么是微服务(.NET Core with 微服务 - 什么是微服务)。介绍了微服务的来龙去脉,一些基础性的概念。有大佬在评论区指出说这根本不是微服务。由于本人的能力有限,大概也只能理解到这个层次。先不管它到底是不是微服务吧,既然 阅读全文
-
BFF架构了解
摘要:了解BFF架构 参考文章: - http://samnewman.io/patterns/architectural/bff/ - https://os.alipayobjects.com/rmsportal/WtUmBLJSmqtDHkvJzuzM.pdf - http://www.ouchang 阅读全文
-
网关+BFF模式(Backend For Frontend前端应用开发的后端服务)
摘要:微服务架构中的BFF到底是啥? 在《技术中台与业务中台都是啥玩意》一文中留下一个问题:BFF是啥?为啥在API网关和业务中台之间加入了一层BFF?考虑到在实际工作中,我的大部分同事都问过这个问题,这里我也总结一下进行答复。 一、从一个MyShop开始说起 为了讲清BFF是个啥,这里引用我在波波老师的 阅读全文
-
分布式系统解决了单体系统的单点故障和性能瓶颈问题,但同时也带来了一系列“弊端”
摘要:什么是分布式系统 当单体应用的性能不能满足逐渐增长的业务需求时,就出现了分布式系统。接下来的文章中就让我们看下分布式系统的相关概念。 什么是分布式系统 看了很多文章,感觉很少有文章能把这个概念解释的既简单,又清楚的。结合这自己的理解,我对分布式系统的概念做了下面的总结。 关于分布式系统的定义问题,我 阅读全文
-
Dapr- actors 构建块
摘要:面向.NET开发人员的Dapr- actors 构建块 原文地址:https://docs.microsoft.com/en-us/dotnet/architecture/dapr-for-net-developers/actors The actor model originated in 197 阅读全文
-
缓存与数据库的双写
摘要:缓存与数据库的双写一致性 这几天瞎逛,不知道在哪里瞟到了缓存的双写,就突然想起来这块虽然简单,但是细节上还是有足够多我们可以去关注的点。这篇文章就来详细聊聊双写一致性。 首先我们知道,现在将高速缓存应用于业务当中已经十分常见了,甚至可能跟数据库的频率不相上下。你的用户量如果上去了,直接将一个裸的 M 阅读全文
-
分布式理论CAP、BASE
摘要:分布式理论CAP、BASE 前言 随着业务的拓展,功能越来越多。把所有的功能都放在同一个服务下,代码混合交错,造成维护困难,也容易造成某一小bug导致整个服务不可用。因此我们会按业务功能会拆分成多个不同的服务(微服务的形成),多个服务组成的系统,有个响亮的名字:分布式系统;而系统中的服务状态我们该怎 阅读全文
-
分布式一致性解决方案
摘要:框架篇:分布式一致性解决方案 前言 上一篇架构篇:分布式理论CAP、BASE,我们了解到分布式存在的问题以及大致的解决理论,但是具体的实现协议或者方案有哪些? 分布式一致性 分布式共识算法 paoxs、Raft、zab 分布式事务一致性 分布式事务一致性的实现方案(XA模式和AT模式) 两阶段提交 阅读全文
-
微服务的引入还有各种各样的问题?
摘要:微服务的引入各种各样的问题,包括: 额外引入的复杂性微服务在上面我也说过了,会带来各种各样的成本的提升,也会引入各种各样的技术问题。这些最终就会导致整体系统复杂性进一步的提高。当复杂性提高的时候,为了保证系统的稳定,就需要整体技术团队的靠谱,就需要技术人员的靠谱,就需要整体技术设施搭建的靠谱。在引入 阅读全文
-
软件框架
摘要:六个方面分别为: 线程急需避免的两类情况; 缓存; 客户端与服务端数据交互; 框架; 四大注意事项思考; 全局思维。 一、线程急需避免的两类情况 死锁; 死循环。 1.死锁 (1)什么是死锁? 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用 阅读全文
-
好的架构是进化来的,不是设计来的
摘要:好的架构是进化来的,不是设计来的”。 以下是来自《淘宝技术这十年》描述的淘宝2003—2012年的架构演进。 个人网站 初代淘宝的团队人员只有十来个,而且面临千载难逢的商业机会,所以要求上线的时间越快越好(实际用了不到一个月),那么淘宝的这些牛人是怎么做到的呢? ——买一个。 初代淘宝买了这样一个架 阅读全文
-
RocketMQ and kafka
摘要:MQ 入门实践 MQ 业界产品 ActiveMQRabbitMQRocketMQkafka 单机吞吐量 万级 万级 10 万级 10 万级 可用性 高 高 非常高 非常高 可靠性 较低概率丢失消息 基本不丢 可以做到 0 丢失 可以做到 0 丢失 功能支持 较为完善 基于 erlang,并发强,性能 阅读全文
-
APP接口多版本管理
摘要:WebApi Swagger 接口多版本控制 适用于APP接口管理 最近研究了下swagger多版本的维护,网上的文章千篇一律,无法满足我的需求,分享下我的使用场景以及实现 演示环境:Visual Studio 2019、Asp.NET WebAPI、NET Framework 4.5.2、Swas 阅读全文