分布式
文章平均质量分 92
专业WP网站开发-Joyous
After graduation, I started working in the graphic design industry and later switched to Java software development. I have worked in companies such as Huawei and Ping An, with experience in front-end/back-end development. I have also worked in Google SEO and Wordpress related development.
展开
-
Redis 分布式锁:原理、实现及最佳实践
随着现代互联网应用的不断发展,系统架构从单体应用逐步演变为分布式系统。为了保证分布式系统中的资源不被多个节点同时访问,确保数据的一致性和系统的稳定性,分布式锁的应用变得尤为重要。Redis 作为一个高性能的内存数据库,凭借其卓越的性能和丰富的数据操作命令,成为了实现分布式锁的热门工具。本文将深入探讨 Redis 分布式锁的概念、工作原理、实现方法及相关最佳实践,帮助读者更好地理解和应用这一技术。原创 2024-10-30 17:43:51 · 845 阅读 · 1 评论 -
Redis 分布式锁:原理、实现及最佳实践
在单机系统中,使用传统的互斥锁机制(如操作系统的锁、数据库锁)来控制对共享资源的访问是相对容易实现的。然而,在分布式系统中,由于有多个节点、多个进程以及不同物理机器之间的网络通信,这种集中化的锁机制已经无法简单地适用。分布式锁的出现正是为了在多个客户端之间对共享资源的访问进行协调,确保数据的一致性和完整性。原创 2024-10-29 00:58:42 · 2306 阅读 · 0 评论 -
ZooKeeper的应用场景:深入探讨分布式系统中的多样化应用
Apache ZooKeeper 是一个开源的分布式协调服务,专为确保分布式系统中的高可用性和一致性而设计。在现代分布式应用程序中,协调、同步和管理是实现高效和可靠服务的关键部分,而 ZooKeeper 通过提供这些基础功能而成为许多分布式系统不可或缺的组件。在本篇文章中,我们将深入探讨 ZooKeeper 在各种应用场景中的实际用途和具体实现,以更好地理解它在分布式系统中的重要地位。原创 2024-10-29 00:09:15 · 1258 阅读 · 0 评论 -
如何实现登录用户可以存储1000 SKU,未登录用户只能存储200 SKU
本文详细讲解了如何实现基于用户身份的SKU存储限制功能,介绍了系统设计、用户状态判断、SKU存储逻辑实现、数据持久化与缓存策略等关键内容。通过不同身份的SKU存储限制,既能够提升用户体验,也能够优化系统性能。原创 2024-10-17 10:41:33 · 631 阅读 · 0 评论 -
实现一个自定义类加载器:深入理解`loadClass`与`findClass`
类加载器(ClassLoader)是Java虚拟机(JVM)的一部分,它负责将类的字节码加载到JVM的内存中。在JVM中,类是通过类加载器动态加载的,类加载器将字节码文件转换成内存中的类对象。加载(Loading):通过类加载器将类的字节码读入内存,并生成对应的Class对象。连接(Linking):包括验证、准备和解析,确保类的正确性。初始化(Initialization):对类的静态变量和静态代码块进行初始化。类加载器负责加载阶段,它将外部的字节码文件转换为 JVM 能够执行的Class对象。原创 2024-10-17 10:41:14 · 1046 阅读 · 0 评论 -
电商系统中的凑单功能设计详解
通过本文的讲解,我们深入探讨了凑单功能的设计与实现。我们从需求分析、系统架构设计、数据模型设计、核心算法设计、代码实现等多个方面,详细阐述了如何构建一个高效的凑单系统。凑单功能不仅能够提升用户的购物体验,还能有效增加平台的销售额,是电商系统中不可或缺的重要功能。未来的优化方向可以进一步引入更多的个性化推荐算法、缓存优化、以及高并发场景下的性能提升措施,确保系统在大促期间能够稳定运行。原创 2024-10-17 10:40:53 · 1258 阅读 · 0 评论 -
如何实现接口防刷
接口防刷是一种防止接口被大量恶意请求攻击的策略。它通过限制请求的频率、数量以及用户行为来避免服务器因过载而宕机。防止恶意用户攻击:避免恶意用户通过高频请求消耗服务器资源。防止爬虫攻击:避免未经授权的爬虫对网站数据进行抓取。保证合法用户体验:确保接口的稳定性,保证合法用户的正常访问。接口防刷是一个非常重要的系统保护手段,可以有效防止恶意请求和异常访问,保障服务器的稳定性。原创 2024-10-16 14:59:42 · 968 阅读 · 0 评论 -
实现一个简易版Dubbo的技术设计与实现
客户端 || | 动态代理调用 | || | || 负载均衡选择服务节点 || | |v| 注册中心 || | 服务注册与发现 | || | |v| 服务端 || | 容错机制处理 | || | || 限流与降级保护 |本文详细分析了如何实现一个简易版Dubbo框架的核心功能,包括RPC调用、服务注册与发现、负载均衡、容错机制、服务治理等。通过各个功能模块的拆解与代码实现,我们不仅构建了一个基础的RPC框架,还解决了分布式系统中常见的问题,如负载均衡和容错机制。原创 2024-10-16 14:59:31 · 642 阅读 · 0 评论 -
Dubbo的负载均衡与故障服务规避机制详解
负载均衡(Load Balancing)是指在多台服务器之间合理分配请求的技术,目的是避免单一服务器过载,进而提高系统的可用性和性能。在分布式系统中,多个服务节点提供相同的服务,负载均衡可以确保请求被均匀地分发到多个服务节点上,防止某些节点因过载而崩溃。均衡负载:保证每个服务节点的负载尽可能均匀。高可用性:当某个节点挂掉时,自动将流量分发到其他可用节点上,保证服务的连续性。性能优化:通过合理分配请求,提高整体系统性能。原创 2024-10-14 17:22:10 · 1174 阅读 · 0 评论 -
分布式锁加锁失败后的等待逻辑实现
分布式锁是一种在分布式环境中,用于保证多个节点在并发访问共享资源时的互斥机制。通过分布式锁,可以确保同一时间内只有一个节点能够对共享资源进行操作,从而保证数据的一致性。在分布式系统中,分布式锁是保证多个节点安全访问共享资源的重要机制。在加锁失败后的等待逻辑中,合理的等待策略至关重要,直接影响系统的性能与稳定性。通过选择合适的等待策略(如立即重试、固定间隔重试、指数退避等),可以在加锁失败时有效减少系统负载,避免资源过度竞争。原创 2024-10-09 12:22:30 · 732 阅读 · 0 评论 -
使用分布式调度框架时需要考虑的问题——详解
分布式调度指的是在多节点或多服务器的系统中,协调和执行定时任务或批处理任务的机制。调度器会根据预设的任务计划或者触发条件,在多个节点上启动并监控任务。与传统的单机调度不同,分布式调度的核心在于如何确保在分布式环境下,任务可以被多个节点安全、有效地执行,并保证系统的可扩展性和高可用性。常见场景:大数据处理:如Hadoop、Spark等大数据平台需要处理海量数据,而分布式调度则负责协调这些任务的执行。金融系统定时任务:如银行定期批处理交易,生成对账单等。电商系统中的任务调度。原创 2024-09-22 08:48:08 · 1404 阅读 · 0 评论 -
Docker高级应用讲解
Docker是一种开源的容器化平台,用于自动化应用的部署、扩展和管理。虽然Docker的基本使用已经能够满足大多数开发和测试需求,但在生产环境中,往往需要更高级的特性和配置来确保系统的高可用性、安全性和性能。本篇文章将深入探讨Docker的高级应用,包括网络、存储、编排、安全、性能优化以及与CI/CD和Kubernetes的集成。自定义网络允许用户创建具有特定配置的网络,以满足复杂的网络需求。原创 2024-08-07 16:49:10 · 735 阅读 · 0 评论 -
分布式之任务调度Elastic-Job学习二
如果有 3 台服务器,分成 2 片,作业名称的哈希值为奇数,则每台服务器分到的分片是:1=[0], 2=[1], 3=[]如果有 3 台服务器,分成 2 片,作业名称的哈希值为偶数,则每台服务器分到的分片是:3=[0],在这个 execute 方法中又调用了 process()方法,150 行。// 实例信息持久化(写到 ZK instances 节点)// 服务信息持久化(写到 ZK servers 节点)又调用了另一个 process()方法,206 行。ejob-springboot 工程。原创 2024-01-04 15:27:06 · 1366 阅读 · 0 评论 -
分布式之任务调度Elastic-Job学习一
任务实例的主节点信息,通过 zookeeper 的主节点选举,选出来的主节点信息。在elastic job 中,任务的执行可以分布在不同的实例(节点)中,但任务分片等核心控制,需要由主节点完成。E-Job 存在主节点的概念,但是主节点没有调度的功能,而是用于处理一些集中式任务,如分片,清理运行时信息等。任务实例的信息,主要是 IP 地址,任务实例的 IP 地址。如果分片总数变化,或任务实例节点上下线或启用/禁用,以及主节点选举,都会触发设置重分片标记,主节点会进行分片计算。分片个数是在任务配置中设置的。原创 2024-01-04 14:58:03 · 1560 阅读 · 0 评论 -
分布式之任务调度学习二
/</</</</既然可以在配置文件配置,当然也可以用@Bean 注解配置。在配置类上加上@Configuration 让 Spring 读取到。@Bean.usingJobData("gupao", "职位更好的你").build();@Bean");.build();原创 2024-01-03 11:16:10 · 1226 阅读 · 0 评论 -
分布式之任务调度学习一
官网:http://www.quartz-scheduler.org/Quartz 的意思是石英,像石英表一样精确。Quatz 是一个特性丰富的,开源的任务调度库,它几乎可以嵌入所有的 Java 程序,从很小的独立应用程序到大型商业系统。Quartz 可以用来创建成百上千的简单的或者复杂的任务,这些任务可以用来执行任何程序可以做的事情。Quartz 拥有很多企业级的特性,包括支持 JTA 事务和集群。Quartz 是一个老牌的任务调度系统,98 年构思,01 年发布到 sourceforge。原创 2024-01-03 11:02:39 · 1563 阅读 · 0 评论
分享