架构
文章平均质量分 91
分布式架构之巅
一线大厂高级架构师
8年以上架构设计经验
展开
-
深入理解Java的IO模型
java的IO模型,特别是NIO和AIO深入浅出介绍原创 2024-10-31 10:30:12 · 390 阅读 · 1 评论 -
解析单元测试的Mock和InjectMocks
Mockito是一个用于Java应用程序单元测试的开源测试框架。它在开发可测试应用程序中起着至关重要的作用。Mockito用于模拟接口,这样就可以将虚拟功能添加到可以在单元测试中使用的模拟接口中。单元测试是一种软件测试,其中对单个软件组件进行测试。使用Mockito框架的主要目的是通过模拟外部依赖项并在测试代码中使用它们来简化测试的开发。因此,Mockito提供了更简单的测试代码,更容易理解、更容易阅读和修改。...原创 2022-08-17 20:30:22 · 5011 阅读 · 0 评论 -
docker深入浅出
通过 Docker 这种虚拟化容器技术,我们可以对物理机的资源进行更加合理有效的利用,可以将一台物理机器虚拟化出很多个拥有完整操作系统,并且相互独立的“虚拟计算机”。原创 2022-07-19 02:06:40 · 1580 阅读 · 0 评论 -
feign深度解析
Feign可帮助我们更加便捷、优雅地调用HTTP APIFeign可以做到使用 HTTP 请求远程服务时就像调用本地方法一样的体验,开发者完全感知不到这是远程方法,更感知不到这是个 HTTP 请求。它像 Dubbo 一样,consumer 直接调用接口方法调用 provider,而不需要通过常规的 Http Client 构造请求再解析返回数据。它解决了让开发者调用远程接口就跟调用本地方法一样,无需关注与远程的交互细节,更无需关注分布式环境开发。...原创 2022-07-13 02:15:55 · 870 阅读 · 0 评论 -
Nacos注册中心详解
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 的关键特性包括:- 服务发现和服务健康监测- 动态配置服务- 动态 DNS 服务- 服务及其元数据管理...原创 2022-07-11 20:01:18 · 1277 阅读 · 0 评论 -
微服务架构介绍
微服务核心就是把传统的单机应用,根据业务将单机应用拆分为一个一个的服务,彻底的解耦,每一个服务都是提供特定的功能,一个服 务只做一件事,类似进程,每个服务都能够单独部署,甚至可以拥有自己的数据库。这样的一个一个的小服务就是微服务。...原创 2022-07-11 00:02:53 · 731 阅读 · 0 评论 -
分布式关系数据库剖析
在当下云原生时代,任何软件系统拥有分布式能力似乎成了标配。特别是在目前基础软件国产化的浪潮下,国产数据库百花齐放,大有弯道超车的趋势。在这个领域里面,分布式数据库无疑是当今最热门的赛道...转载 2022-07-04 19:24:25 · 2737 阅读 · 0 评论 -
Dapper, a Large-Scale Distributed Systems Tracing Infrastructure
Dapper, a Large-Scale Distributed Systems Tracing Infrastructure最近在研究分布式链路跟踪系统,Google Dapper 当然是必读的论文了,目前网上能搜到一些中文翻译版,然而读下来个人感觉略生硬;这里试着在前人的肩膀上重新翻译一遍这个论文,权当是个人的学习笔记,如果同时能给其他人带来好处那就更好了。翻译 2022-03-22 16:10:26 · 626 阅读 · 0 评论 -
零拷贝原理详解
零拷贝原理详解1. 引言 在nginx、kafka等开源组件的原理和性能调优中,经常会提到零拷贝技术,为了能从原理层面掌握这些常用组件,下面我详细介绍零拷贝的原理。 在介绍零拷贝之前,还有几个概念需要介绍,那就是:用户空间(User space)、内核空间(Kernel space)。 用户空间是指:用户程序代码运行的地方; 内核空间是指:内核代码运行的地方,为了安全,它们是隔离的,即使用户的程序崩溃了,内核也不受影响。当进程运行在内核空间时就处于内核态,当进程运原创 2022-02-24 20:22:03 · 538 阅读 · 0 评论 -
亚马逊工程师:我在职业生涯中学到的 8 个重要经验
首先,让我来做一个简短的自我介绍:我叫 Daniel,今年 28 岁,是一名软件工程师。我从 13 岁起就开始学习编程。在工作了八年之后,我在 2019 年进入了亚马逊,并担任 SDE2。大约两年零三个月后,也就是 2021 年,我晋升到了亚马逊的高级 SDE。在本文中,我将与大家分享我在职业生涯中所学到的一些经验,这些经验是我在之前就希望能够学到的。这些经验承载了我的个人经历和个人信仰。但愿这会对你有所帮助。1. 尽管编程很酷,但如果能支持其他同事,你将会取得更大的成就。编程很酷,非常酷。作为软件.翻译 2022-02-22 13:09:40 · 256 阅读 · 0 评论 -
深入NGINX我们如何设计它的性能和扩展性
英文原文:Inside NGINX: How We Designed for Performance & Scale为了更好地理解设计,你需要了解NGINX是如何工作的。NGINX之所以能在性能上如此优越,是由于其背后的设计。许多web服务器和应用服务器使用简单的线程的(threaded)、或基于流程的(process-based)架构, NGINX则以一种复杂的事件驱动(event-driven)的架构脱颖而出,这种架构能支持现代硬件上成千上万的并发连接。Inside NGINX infogr翻译 2022-02-18 18:25:47 · 220 阅读 · 0 评论 -
秒杀系统设计与关键技术剖析
秒杀系统设计与关键技术剖析1.秒杀系统介绍秒杀介绍秒杀是商家通过少量库存和超低价格的方式吸引用户的一种营销手段,让用户在特定的时间里对一个热销商品进行低价抢购。“秒杀”第一次出现是在 2008 年淘宝推出的“竞价秒杀”功能,当时淘宝看到营销效果非常喜人。现在最出名的秒杀就是 在京东上 秒杀 茅台酒了,每场次的茅台酒抢购,都有一百万以上的用户来抢数量非常有限的茅台酒,还没有到1秒钟,商品就抢完了,这是非常极快。秒杀系统目的。 秒杀系统主要目的是:低价促销抢夺用户。原创 2022-02-18 17:52:03 · 2769 阅读 · 0 评论 -
REST设计风格
REST 设计风格很多人会拿 REST 与 RPC 互相比较,其实,REST 无论是在思想上、概念上,还是使用范围上,与 RPC 都不尽相同,充其量只能算是有一些相似,应用会有一部分重合之处,但本质上并不是同一类型的东西。REST 与 RPC 在思想上差异的核心是抽象的目标不一样,即面向资源的编程思想与面向过程的编程思想两者之间的区别。面向过程编程、面向对象编程大家想必听说过,但什么是面向资源编程?这个问题等介绍完 REST 的特征之后我们再回头细说。而概念上的不同是指 REST 并不是一种远程服务调转载 2022-02-14 18:42:53 · 661 阅读 · 0 评论 -
分布式锁设计与实践
分布式锁设计与实践1. 分布式锁是什么分布式锁即在分布式环境下锁定共享资源,让请求处理串行化,实际表现为互斥锁。分布式锁可以解决业务中的幂等性问题。分布式锁是主要是可重入的排它锁,主要具有如下特点:1)释放锁的节点,一定是持有锁的节点。2)持有锁的节点宕机了,不会因此而出现死锁,就像synchronized一样,当持有锁的线程异常退出了,锁会被自动释放。3)排他性,很好理解,一个节点持有锁,其他节点就不能持有了。4)可重入性,很好理解,持有锁的节点,可以重复持有锁。2. 分布式锁应用场景两原创 2022-02-09 12:45:55 · 1071 阅读 · 0 评论 -
分布式架构演进之路
一、什么是分布式架构 分布式系统(distributed system)是建立在网络之上的软件系统。 内聚性:是指每一个数据库分布节点高度自治,有本地的数据库管理系统。 透明性:是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。 在分布式数据系统中,用户感觉不出数据是分布的,即用户不须知道关系是否分割,有无副本,数据存在于那个站点以及事物在哪个站点上执行。 简单来说:在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个.原创 2022-01-24 00:25:12 · 188 阅读 · 0 评论 -
大型互联网项目架构认知
架构是什么对业务场景抽象后得出的支持骨架,目的是:解决系统的复杂性 比如:为了满足100w日活量,10WQPS,及以后系统扩展,采用 微服务架构架构为业务场景而生、被业务场景而弃架构没有最好、只有“最合适”(人员技术研发能力、业务复杂度、数据规模大小、时间成本、运维能力….)选择架构时候,必须选择最适合公司当下环境的架构。架构目标是什么高性能:系统响应时间(Response time)短,并发量(同时支撑用户请求量)大高可用:任何时候项目都必须可用高可扩展:...原创 2022-01-23 23:27:06 · 1261 阅读 · 0 评论 -
聚合支付系统设计
1.多种支付方式痛点分析现状随着移动支付的盛行、市面上存在多种移动支付方式:微信、支付宝、云闪付、数字货币、通联支付等等,不同的客户习惯使用的移动支付方式也有所不同,如果商家为了吸引更多的客户消费,使用的系统需要对接这么多第三方支付及常用的银行系统,对一般商户来说都存在很大的挑战,几乎是不可能实现的,具体表现如下:商户运营:支付渠道多,收银效率低多种支付渠道接入成本高支付渠道零散,收银汇总难度高支付后无交易分析,运营凭感觉。商户运营:线上线下消费数据同步较难;营销玩法原创 2022-01-20 21:08:10 · 4975 阅读 · 0 评论 -
sftp和ssh的java实现
sftp和 ssh的java实现原创 2022-01-13 19:11:56 · 1120 阅读 · 0 评论 -
推荐系统介绍
推荐系统原理介绍原创 2022-01-10 16:38:09 · 579 阅读 · 0 评论