自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ArchManual 分布式技术架构手册

ArchManual 分布式技术架构手册

  • 博客(20)
  • 收藏
  • 关注

原创 Redis Key的过期策略

Redis 的过期策略主要是指管理和删除那些设定了过期时间的键,以确保内存的有效使用和数据的及时清理。具体来说,Redis 有三种主要的过期策略:定期删除(Scheduled Deletion)、惰性删除(Lazy Deletion)和内存淘汰策略(Eviction Policies)。

2024-09-12 15:01:28 969

原创 Redis的数据类型以及应用场景

Redis 有序集合(Sorted Set)是一种带有分数的集合,集合中的每个成员都有一个分数,Redis 会按照分数的大小进行排序。以下是 Redis 有序集合的一些常见应用场景及其示例代码。Redis 集合(Set)是一种无序的字符串集合,集合中的元素是唯一的,不允许重复。HyperLogLog 是 Redis 中的一种用于基数(唯一值)统计的数据结构,能够在极小的内存占用下提供高精度的基数估计。位图(Bitmap)在 Redis 中是一种高效的按位存储数据的方式,主要用于处理需要进行按位操作的场景。

2024-09-11 17:36:01 1116

原创 数据库类型有哪些?

根据存储方式的不同,数据库可以分为不同种类。每种类型的数据库,都有各自使用场景以及不同的产品。​。

2024-09-09 16:10:02 1605

原创 缓存类型以及读写策略

静态缓存通常用于缓存静态内容,例如HTML页面、CSS文件、JavaScript文件、图像等。它可以显著减少服务器负载和响应时间。

2024-09-03 14:08:31 1247

原创 服务之间调用的几种方式

首先,创建一个名为。

2024-09-02 14:19:15 1707

原创 Java 应用服务器有哪些?

Jetty 是一个轻量级、高性能、易于嵌入和配置的 Java Web 服务器,适合用于微服务架构、嵌入式系统和需要高并发处理的应用场景。Connector 的工作流程涉及多个子组件和概念,包括 EndPoint、Executor、Processor、Adapter、TomcatRequest 和 ServletRequest。Tomcat 是一个功能强大、灵活、轻量级的 Java Web 服务器,适合开发、测试和小型到中型应用的生产环境。它的开源和免费特性使其广受欢迎,特别是在预算有限的项目中。

2024-08-29 15:06:39 1439

原创 服务降级的架构原理

Target 定义该规则针对什么样的请求,如某个 key(可以类比 Sentinel 中的资源名的概念),或者包含某类参数的 HTTP 请求等等。ystrixCommand 和 HystrixObservableCommand 的实现可以定义一个缓存键,然后在请求中使用该键来去重调用,如果命中缓存健,则直接返回缓存健对应的结果。如果 Hystrix 没有实现请求缓存功能,那么每个命令都需要在 construct 或 run 方法内部自行实现它,缓存结果的查询要放到新线程创建后,所有无法避免新的线程的创建。

2024-08-28 14:48:30 1843

原创 限流的的实现方案

限流是一种在软件开发和系统设计中常用的技术,旨在控制访问某一资源或服务的请求数量,以防止系统过载、确保系统稳定性和响应性。限流对于维护高可用和可靠的服务尤为重要,尤其是在面对高并发访问时。

2024-08-27 13:24:59 1183

原创 API网关的基本原理

在需要与外部服务(如社交网络、支付服务等)集成时,API网关可以作为一个集中化的层来管理这些外部调用,包括处理API密钥、维护会话、转换数据格式等,简化后端服务的开发和维护。当你的应用需要支持多种客户端(如移动应用、Web前端、第三方系统等)时,API网关可以提供一个统一的接口,根据不同客户端的需求优化和调整响应数据格式,实现接口的复用与适配。Zuul是Netflix开源的一个API网关,它主要作为前端的边界服务,对进入微服务系统的请求进行预处理、路由和过滤,然后将请求转发到后端的具体服务。

2024-08-26 14:19:53 868

原创 数据库连接池的基本原理

数据库池化技术,也常被称为连接池技术,是一种在数据库应用中广泛使用的技术,旨在减少数据库连接的开销,提高系统的性能和资源利用率。:通过合理配置连接池参数,如合适的最大/最小连接数、适当的空闲连接生存时间等,可以显著提升数据库操作的性能,同时优化资源的使用。:连接池的行为可以通过各种参数进行配置,包括最大连接数、最小空闲连接数、连接超时时间、空闲连接的最大生存时间等。:如果验证失败,连接池会尝试创建一个新的连接以替换无效的连接,保证连接池中的连接总数维持在配置的水平。:连接池定期检查空闲连接的有效性。

2024-08-22 13:37:00 1109

原创 不同场景下的负载均衡器

负载均衡主要用于分配来自互联网或局域网的请求或任务负载到多个服务器中。这样做可以避免任何单个服务器的过载,提高响应速度,增加系统的整体处理能力,并确保系统的高可用性和可靠性。负载均衡器大概可以分为 3 类,包括:DNS 方式实现负载均衡、硬件负载均衡、软件负载均衡。

2024-08-21 13:55:37 1255

原创 服务注册发现的原理与选型

注册发现(Service Registration and Discovery)是微服务架构中一个非常重要的组成部分,主要用于管理微服务间的地址和状态信息,以便服务间能够相互发现和调用。使用注册发现机制,可以大大提高微服务架构的灵活性和可维护性,是构建动态、可伸缩、高可用系统的关键技术之一。常见的注册发现工具和平台包括Eureka、Consul、Zookeeper和Nacos等。

2024-08-20 13:24:27 1010

原创 分布式事务的实现方式和原理

首先将一个复杂的分布式事务拆分为一系列更小、更易于管理的本地事务。每个本地事务都应该有一个对应的补偿事务,用于撤销其所做的操作。

2024-08-19 10:03:41 1223

原创 分布式锁的实现方案

分布式锁是分布式系统中用于确保多个进程或服务在访问共享资源时能够保持互斥,以避免发生数据冲突或不一致性问题的一种同步机制。与传统的锁机制相比,分布式锁是为了解决跨多个计算节点的资源同步问题。在分布式环境下,资源可能被分布在不同的服务器上,这就需要一种跨服务器的锁机制来确保在任何时刻只有一个客户端可以访问特定的资源。

2024-08-15 16:13:31 1010

原创 分布式ID的实现方案

美团Leaf通过提供segment和snowflake两种模式,能够满足不同场景下对于分布式ID生成的需求。Leaf-segment模式适合对ID趋势递增有要求的场景,而Leaf-snowflake模式则适合对ID生成性能要求更高的场景。通过这两种模式,美团Leaf为分布式系统中的ID生成提供了一种高效、可靠的解决方案。详细技术方案,详见Leaf官方技术文档。

2024-08-14 16:27:34 1350

原创 分布式任务调度的架构与选型

子任务执行完成后,执行结果会反馈给调度中心。根据任务配置,调度中心可能需要对结果进行汇总或直接处理。分片的优点。

2024-08-13 15:01:12 1372

原创 延迟任务的五种实现方案

(2)TimerWheel中的每一格代表着一个时刻,同时会有一个firstPos指向这个刻度下所有定时消息的首条TimerLog记录的地址,一个lastPos指向这个刻度下所有定时消息最后一条TimerLog的记录的地址。DelayQueue 实现了一个高效的本地延时队列, 但是缺点就是 不支持多节点部署,多节点部署时,不能同步消息,同步消费,也不能持久化。(2)定义一个死信交换机(DLXExchange),绑定BizQueue,接收延时队列的消息,并转发给BizQueue。

2024-08-12 13:31:25 763

原创 消息队列的选型以及5个架构点

消息队列的顺序性、高可用、消息积压、防重、防丢失

2024-08-08 17:13:21 977

原创 配置中心的基本原理

隔一段时间(比如 10秒)查询一个数据库的版本信息表,看是否有版本更新,有版本更新时将最新的版本信息存到本地内存,同时通知客户端。对象,并设置改对象的超时时间和超时的返回值。查询内存中是否有最新的版本信息,如果有最新的版本信息则设置。应用的客户端本地缓存一份配置,如果配置服务出现故障,无法提供服务,应用还可以继续使用本地的配置。1)后台配置系统修改配置,发布新版本,版本信息写入数据库中,的方式,超时设置为60秒,超时之后,客户端向后端重新查询。对象放到内存列表中,存储起来,等待后续的通知。

2024-08-07 15:57:31 279

原创 分布式系统架构手册

ArchManual不是某个技术架构的深度剖析某个技术框架的源码分析某个技术工具的安装运维某个技术类库的代码示例而是常用分布式技术的总体概览常用技术主题的归纳总结常用技术框架的归类罗列常用技术架构的简单分享希望成为速查手册:平时工作中做技术架构、框架选型时的速查手册学习提纲:业余学习或者面试时的一个学习提纲技术地图:对技术框架有一个整体和全面的了解技术社区:每个技术同学都能积极分享和交流知识。

2024-08-06 16:29:50 1219

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除