自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1162)
  • 资源 (9)
  • 问答 (1)
  • 收藏
  • 关注

原创 分布式微服务系统架构第167集:从零到能跑kafka-redis实战

Netty 接入后,解析为标准事件(JSON/Avro),按 deviceId 作为 key 发 Kafka。避免“每设备一分区”,而是“按哈希范围/地域/组织分区”,分区数阶段性扩(如 24 → 48 → 96)。:Redis 是单线程处理命令的,大 key 或大批量数据一次取出会长时间占用 CPU,阻塞其他请求。拉全量数据要跨节点遍历。:一次性把很多数据打包返回,服务器需要序列化成 TCP 包,客户端要解包,容易卡顿甚至 OOM。:一次性拉取完全没问题,Redis 单线程响应极快,网络带宽也能支撑。

2025-08-22 07:36:59 922

原创 分布式微服务系统架构第166集:华为经验汇总

集成了 Ribbon(负载均衡)和 Hystrix(容错降级,旧版),新版可配合 Spring Cloud LoadBalancer 和 Sentinel。docID/pos 用 gap(差分)+ 可变长(VarInt/VarByte/VByte)或 PForDelta、QMX 等压缩。,可以让你把应用和它的依赖打包在一个轻量级、可移植的容器里运行,避免“在我电脑上可以跑”的问题。必须与注册中心(Eureka / Nacos)里的服务名一致,且要启用负载均衡(默认开启)。

2025-08-18 06:56:45 893

原创 分布式微服务系统架构第165集:阿里,字节,腾讯架构经验汇总

设备 ID 通过哈希(如 Murmur3)转为一个 Long 型 token,落在哪个 token 区间,就由那个节点负责存储。每个设备 ID 或主键,都会通过哈希函数(如 Murmur3)生成一个 Token(Long 类型的整数)。,经过哈希得到一个 token,它会落入某个范围,于是 Cassandra 就将该数据分配给对应的节点。来判断分布,而是直接用 token 落在哪个节点负责的 token 范围。对应的数据会存储在哪个节点(token 范围负责的节点)上。

2025-08-18 06:56:45 782

原创 分布式微服务系统架构第164集:架构懂了就来了解数据库存储扩展千亿读写

Vitess/TiDB/Citus 上线;:MySQL(分库分表/ Vitess) / PostgreSQL(Citus) / NewSQL(TiDB / CockroachDB / OceanBase)(TiCDC/Debezium)把交易变更送到 Kafka,再同步到下游(ES/ClickHouse/缓存):ClickHouse / Pinot / Druid(列式 + 分区,近实时 OLAP):TiCDC/Debezium → Kafka → ClickHouse/ES/缓存回填。

2025-08-11 00:01:10 1045

原创 分布式微服务系统架构第163集:哈罗电池设备Netty网关架构

网关宕机:不续租→TTL 到期(~180s)→映射消失→设备重连被 Nginx 分配到新网关→新网关用“接管 Lua”将 lease 版本+1 并写入。上报数据:网关解码→校验→异步写 Kafka(at-least-once),关键字段落地(如设备在线态、最近电压等可走 Redis/时序库)。:Prometheus 指标(连接数、心跳延迟、解码失败、写队列积压、指令RT/成功率);:先查 Redis 查到网关IP→RPC/HTTP 到该网关内置“下发接口”→Channel 定位并写。:黑名单、频率限制;

2025-08-10 13:13:21 358

原创 分布式微服务系统架构第162集:如果是小米的过亿设备,如何搭建架构

新项目首选,线程安全,支持异步/响应式,Spring Boot 2.x 之后默认使用 Lettuce 代替 Jedis。优点:一个连接就能支持多线程,且异步性能好,特别适合高并发和 Spring WebFlux 这种响应式架构。监控:Prometheus + Grafana(曲线看连接数、堆、GC、CPU):简单、老牌、容易上手,但线程安全差,需要连接池管理;:没有连接数/GC/CPU/Redis延迟监控,很难定位抖动。网关挂了,Nginx 会把连接迁移到其他网关,设备端会自动重连。

2025-08-10 13:13:21 1041

原创 分布式微服务系统架构第161集:过亿设备架构-AI生成架构图

业务若要下发,先查 Redis 看设备在哪台网关,再通过网关本地 ChannelManager 找 Channel 写回(或走 RPC/网关间转发)。:放行 7000(NLB→Nginx)、9000(Nginx→Netty)、Redis/Kafka 内网端口;netty/handler/BusinessDispatcherHandler.java(推送到 Kafka)NLB 健康后开始分流。、直连内存+堆外缓冲可到 10~15 万长连接/台(看内存/网卡/内核参数)。

2025-08-09 07:52:07 1103

原创 分布式微服务系统架构第160集:百万台设备Netty网关架构

网关宕机时,该设备的 Redis Key 不会续期,自动过期后,Nginx 会将连接路由到新的可用网关。实例,是 Netty 服务端启动的核心辅助类,用于配置服务器端的各项参数。这样才能转发原生 TCP 数据(Netty、JT808、MQTT 等)。:让同一个域名指向多台网关服务器(每台运行 Netty 网关服务)。模式支持 TCP 转发(Netty、MQTT、JT808)。统计当前连接数量,支持高并发下的线程安全自增/自减操作。,这是 Netty 为服务器端提供的异步非阻塞通道。

2025-08-08 07:53:55 1085

原创 MongoDB分片技术实现

MongoDB分片(Sharding)是MongoDB的水平扩展解决方案,通过将数据分布到多个分片(shard)上来处理大数据量和高吞吐量的需求。通过合理的设计和实施,MongoDB分片可以为应用提供优秀的水平扩展能力。MongoDB分片技术是处理大规模数据的重要解决方案。:合理规划Config Server、分片和mongos的部署。:选择合适的分片键是关键,需要平衡查询性能和数据分布。选择高基数、查询频繁的字段作为分片键。:尽量包含分片键以避免跨分片查询。MongoDB分片技术实现。

2025-08-02 15:55:27 370

原创 HBase分片技术实现

HBase是基于Hadoop的分布式、可扩展的NoSQL数据库,采用列族存储模型。HBase的分片机制通过Region自动分割和负载均衡实现水平扩展,支持PB级数据存储和高并发访问。在实际应用中,需要根据业务特点优化RowKey设计、表结构和分片策略,并建立完善的监控和运维体系。HBase分片技术通过Region自动分割和负载均衡实现了高可扩展性和高可用性。: 集群管理节点,负责Region分配和负载均衡。: Region根据大小自动分割,支持水平扩展。: 合理的RowKey设计是性能的关键。

2025-08-02 15:55:27 448

原创 Elasticsearch分片技术实现

Elasticsearch分片(Sharding)是其分布式架构的核心,通过将索引分割成多个分片来实现水平扩展。每个分片都是一个独立的Lucene索引,可以分布在集群的不同节点上。Elasticsearch分片技术是构建高性能、高可用搜索系统的关键。在实际应用中,需要根据业务特点调整分片策略,并建立完善的监控和运维体系。: 避免过度分片,通常每个节点1-3个分片。: 自动化索引的创建、滚动和删除。: 分片分布实现查询负载分散。: 根据数据增长预估分片数。: 监控分片在节点间的分布。

2025-08-02 15:55:27 362

原创 ClickHouse分片技术实现

ClickHouse是一个用于在线分析处理(OLAP)的列式数据库管理系统,具有极高的查询性能。ClickHouse的分片机制通过分布式表和本地表的组合实现水平扩展,支持PB级数据的实时分析。ClickHouse分片技术通过分布式表和本地表的组合实现了高性能的OLAP查询能力。在实际应用中,需要根据数据特点和查询模式优化表结构、分片策略和查询方式,并建立完善的监控和运维体系。**避免SELECT ***: 只查询需要的列。: 通过分片和副本实现水平扩展和高可用。: 数据分片,每个分片包含部分数据。

2025-08-02 15:55:27 354

原创 子网掩码是什么

子网掩码(Subnet Mask)是一个32位的二进制数,用于将IP地址分割成网络部分和主机部分,是网络通信中的重要概念。在实际工作中,掌握子网掩码的计算方法和应用场景,能够帮助我们更好地进行网络规划和故障排除。子网掩码的作用就是告诉计算机:"这个IP地址的前面几位是网络地址,后面几位是主机地址"。/24网络:2^(32-24) - 2 = 254台主机。/25网络:2^(32-25) - 2 = 126台主机。/27网络:2^(32-27) - 2 = 30台主机。使用/24网络(254台主机)

2025-07-31 12:19:01 341

原创 分布式微服务系统架构第159集:高并发系统

它将整体的系统分成了 Model(模型),View(视图)和 Controller(控制器)三个层次,也就是将用户视图和业务处理隔离开,并且通过控制器连接起来,很好地实现了表现和逻辑的解耦,是一种标准的软件分层架构。很显然嘛,你在每秒一次请求和每秒一万次请求,两种不同的场景下,分别做到毫秒级响应时间和五个九(99.999%)的可用性,无论是设计难度还是方案的复杂度,都不是一个级别的。缓存遍布在系统设计的每个角落,从操作系统到浏览器,从数据库到消息队列,任何略微复杂的服务和组件中,你都可以看到缓存的影子。

2025-07-16 07:17:11 614

原创 分布式微服务系统架构第158集:JavaPlus技术文档平台日更-JVM基础知识

Java虚拟机(Java Virtual Machine,JVM)是Java程序的运行环境,它是Java实现"一次编译,到处运行"的核心。JVM负责将Java字节码转换为特定平台的机器码,并提供内存管理、垃圾回收、安全检查等功能。JVM作为Java程序的运行环境,其深入理解对于Java开发者至关重要。通过深入理解JVM原理和实践经验的积累,能够更好地开发高性能、稳定的Java应用程序。垃圾回收是JVM自动管理内存的机制,负责回收不再使用的对象所占用的内存空间。

2025-07-05 16:09:51 672

原创 分布式微服务系统架构第157集:JavaPlus技术文档平台日更-Java多线程编程技巧

通过掌握这些Java多线程编程技巧,可以编写出更加高效、安全和可维护的并发程序。记住,多线程编程需要谨慎对待,充分的测试和监控是确保程序正确性的关键。IO密集型:线程数 = CPU核心数 × (1 + IO等待时间/CPU计算时间)选择合适的同步工具(synchronized、Lock、原子类等)性能分析工具(JProfiler、Async Profiler等)CPU密集型:线程数 = CPU核心数 + 1。使用线程本地变量(ThreadLocal)线程和线程池使用有意义的名称。

2025-07-05 16:09:51 720

原创 分布式微服务系统架构第155集:JavaPlus技术文档平台日更-Java线程池实现原理

线程池(Thread Pool)是一种多线程处理形式,预先创建若干个线程,这些线程在没有任务处理时处于等待状态,当有任务来临时分配给其中的一个线程来处理,当处理完后又回到等待状态等待下一个任务。通过深入理解线程池的实现原理和最佳实践,可以更好地利用线程池提升应用性能和稳定性。:重写afterExecute方法处理任务执行异常。:正确配置核心线程数、最大线程数、队列大小等参数。:实时监控线程池的运行状态和性能指标。:确保线程池正确关闭,避免资源泄漏。:确保应用关闭时正确关闭线程池。

2025-07-05 16:09:51 838

原创 分布式微服务系统架构第156集:JavaPlus技术文档平台日更-Java线程池使用指南

title: java线程池使用 author: 哪吒 date: '2023-06-15'通过遵循这些最佳实践,可以充分发挥线程池的优势,构建高性能、稳定的并发应用程序。方式二:手动创建ThreadPoolExecutor(推荐)方式一:使用Executors工具类(不推荐):限制并发线程数量,避免系统资源耗尽。2.1 CPU密集型任务线程池。2.2 IO密集型任务线程池。:复用线程,快速响应任务请求。4.1 线程池参数配置指南。1.1 创建线程池的方式。创建线程池,推荐手动创建。

2025-07-05 16:09:51 510

原创 分布式微服务系统架构第153集:JavaPlus技术文档平台日更

构建支撑2000万日订单的技术架构,不仅是技术挑战,更是对团队、流程和文化的全方位考验。通过合理的架构设计、技术选型和持续优化,我们成功构建了高可用、高性能、可扩展的系统,为业务持续增长提供了坚实的技术基础。服务器被挖矿病毒感染后的处理不仅仅是清除病毒,更重要的是找出入侵途径并加以修复,同时加强系统安全防护。对于严重感染的系统,建议在备份重要数据后重装系统,以确保彻底清除所有恶意代码。面向未来,我们将继续拥抱新技术、新理念,构建更强大、更智能的系统,支撑业务向更高目标迈进。

2025-06-16 00:01:03 1024

原创 分布式微服务系统架构第152集:JavaPlus技术文档平台日更

服务器收到FIN包,回应一个ACK包(ACK=1, ack=u+1),进入CLOSE_WAIT状态,客户端收到后进入FIN_WAIT_2状态。客户端收到FIN包,回应一个ACK包(ACK=1, seq=u+1, ack=v+1),进入TIME_WAIT状态,等待2MSL后关闭连接。服务器收到SYN包,回应一个SYN+ACK包(SYN=1, ACK=1, seq=y, ack=x+1),进入SYN_RECV状态。客户端发送FIN包(FIN=1, seq=u),进入FIN_WAIT_1状态。

2025-06-16 00:01:03 1053

原创 分布式微服务系统架构第151集:JavaPlus技术文档平台日更

Redis Lua脚本是Redis提供的一种强大功能,它允许开发者在Redis服务器端执行Lua脚本,实现复杂的原子操作。通过深入理解Lua脚本的运行原理,开发者可以更好地利用这一功能,提高应用性能,简化业务逻辑实现。随着Redis的不断发展,Lua脚本功能也在不断完善,成为Redis生态系统中不可或缺的一部分。Redis保证Lua脚本的原子性,即脚本执行期间,不会有其他脚本或命令执行。EVALSHA命令用于执行已经缓存在Redis服务器中的脚本,避免每次都传输完整的脚本内容。

2025-06-16 00:01:03 637

原创 分布式微服务系统架构第150集:JavaPlus技术文档平台日更

MySQL 的锁机制是保证数据一致性和完整性的重要手段,了解不同类型的锁及其使用场景,可以帮助我们设计出高性能、高可靠性的数据库应用。锁是数据库并发控制的基础,但过度使用锁会导致系统性能下降,因此需要在保证数据一致性的前提下,尽量减少锁的使用,提高系统的并发性能。写锁,也称为排它锁(Exclusive Lock)、独占锁或 X 锁,是一种在事务修改数据时使用的锁,它排斥任何其他锁。意向锁是 InnoDB 存储引擎中的一种表级锁,用于指示事务稍后要对表中的行加什么类型的锁(共享锁或排它锁)。

2025-06-16 00:01:03 779

原创 分布式微服务系统架构第149集:JavaPlus技术文档平台日更

微信小程序运维中心是小程序开发者不可或缺的管理工具,它提供了全面的运维能力,包括版本管理、质量监控、用户反馈、数据分析、安全中心和客服消息等。有效利用运维中心需要建立规范的运维流程,设置合理的监控告警策略,掌握高效的问题排查方法,以及建立良好的团队协作模式。开发者应当持续关注运维中心的新功能和最佳实践,不断提升小程序的运维水平和用户体验,在激烈的市场竞争中脱颖而出。不同的访问方式功能略有差异,网页版提供最完整的功能,小程序版侧重于移动场景下的核心功能,API接口则提供了自动化的可能性。

2025-06-15 00:55:49 914

原创 分布式微服务系统架构第148集:JavaPlus技术文档平台日更

在使用Redis过程中,key的过期问题是一个常见的挑战,本文将详细介绍Redis key过期的原理、常见问题及解决方案。Redis key过期问题是使用Redis缓存系统时必须面对的挑战,通过理解Redis的过期机制原理,针对不同场景采用合适的解决方案,可以有效避免缓存雪崩、击穿和穿透等问题,提高系统的稳定性和性能。在实际工作中,建议建立标准的问题排查流程和工具集,提前做好监控和告警,做到早发现、早处理,避免问题扩大化。在top命令中,按P键按CPU使用率排序,找出CPU使用率最高的进程,记录其PID。

2025-06-13 22:37:19 861

原创 分布式微服务系统架构第147集:JavaPlus技术文档平台日更

简单来说,当你用浏览器访问网站时,tomcat就像餐厅传菜员,把java代码做的”菜品“,翻译成你能看懂的HTML页面,它内置的JSP引擎会把页面布局,魔法符合变成正经的Java代码,Coyote连接器负责和浏览器对暗号”处理HTTP协议。CDN即内容分发网络,本质上是个“内容快递网络”,是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。面向对象的数据库是指使用面向对象的思想来设计数据库。

2025-06-12 08:06:52 635

原创 分布式微服务系统架构第146集:JavaPlus技术文档平台

微服务里十几个服务互相调用,Zookeeper就是协调者,协调各个服务,协调各个节点,协调各个模块,协调各个服务器。所有请求先经过网关这个“快递分拣站”,自动分配到对应的模块,服务发现机制像BPS,实时定位哪些服务器活着。它用属性结构(ZNode)存储数据,节点分两种,持久节点(永久数据),和临时节点(会话结束就消失)实时监控,滴滴用它在全国地图上,动态显示每车辆的移动光点,靠的就是ES毫秒级响应。本质上它是一个分布式协调服务,核心原理:树,节点,监听。每个模块独立开发,独立部署,分布式架构的核心,解耦。

2025-06-11 07:38:58 343

原创 分布式微服务系统架构第145集:Jeskson文档-微服务分布式系统架构

该方法的主要用途是在后台并行执行多个同步任务,以提高系统性能和响应速度。例如,在一个数据同步系统中,可能需要同时同步多个数据源,以提高数据同步的效率。方法,阻塞当前线程,直到所有任务完成。:如果任务之间存在依赖关系,需要特别注意任务的执行顺序,避免因并行执行导致的逻辑错误。:在等待任务完成时,需要捕获并处理可能抛出的异常,以避免程序因未处理的异常而崩溃。:在异常处理中记录错误日志,有助于后续的问题追踪和调试。来管理线程池,可以避免创建过多的线程,提高资源利用率。,用于存放每个异步任务的执行结果。

2025-06-10 21:36:54 480

原创 分布式微服务系统架构第144集:FastAPI全栈开发教育系统

仓库地址:https://webvueblog.github.io/JavaPlusDoc/如你有多个版本混装(例如 Homebrew 和 .pkg 安装共存),可进一步排查。如果访问不了,可能是网络(如防火墙或 DNS)问题。需要我帮你写个自动卸载脚本或判断 MySQL 残留的诊断命令也可以说一声。彻底卸载 Mac 上本地安装的 MySQL(包括通过。🛠 如果你想显式设置 root 密码(跳过引导)✅ 可选:确认依赖包下载正常(联网情况良好)插件(无密码,靠本地 socket 登录)

2025-06-06 08:21:47 778

原创 生 产 资 料 的 终 极 来 源

虽 然 只 有 短 短 六 个 字 ,可 实 际 上 它 们 只 是 看 起 来 简 单而 已 ,如 若 靠 你 自 己摸索、试 错 、总 结 ,不知道需要耗费 多 少 时 间 和 精 力。再 细 想 ,向自然索取材料并不是谁都可以做到的事情 ,也 不 是谁天生就会的事情。不学习就不知道什 么 有 用 ,不学习就不知道到哪里去找什么东西,换言之 ,为 了 生 产 ,我们得向自己索取知识。花的当然是生产者自己的时间。换 言 之 ,为了生产,我们需要向自然索取材料,在社会中寻找需求,而后用自身的时间去完成。

2025-06-03 21:32:14 149

原创 荒唐地出售生产资料

当 然 ,每 个 人 的 情 况 不 一 样 ,刚开始的时候都可能 要 有 一 段 时 间 迫 不 得 已 地 直 接 出 售 自 己 的 时 间。哪有直接出售生产资料的啊?在能直接出售的时间那 么 少 的 同 时 ,还要把它以那么低的价格出售,实在是不 划 算。所 以 ,如果活到7 0 岁 的 话 ,就相当于要再次砍掉一半的可出售时间,现在只有3 8 天 了 ,这还没算上中途失业的情况。之前我们也得到过这样的结论:我们 一 生 中赚到的所有钱或财富,从本质上来看,全都是从自己的时间里挖出来的。

2025-06-03 21:32:14 342

原创 教 育 投 入

最 初 的 时 候 ,人 们 初 中 毕 业 就 可 以 开 始 工 作 ,后来得高中学 历 才行,又后来本科学历才够用,再后来研究 生 学 历 才 算 说 得 过 去 ……给 人 的 感 觉 是 ,必要的教育从 9 年 变 成 1 2 年 ,又 变 成 1 6 年 ,再 变 成 1 9 年。但 是 ,从发展到盛行已经差不多3 0 0 年的现代教育体 系 ,重点培养的并不是有效生产的所有者、设计者和组 织 者 ,也 不 是 销 售 者。它所培养的,主要是生产的被组 织 者 ,或者生产的间接参与者。

2025-06-03 21:32:14 199

原创 生活艰辛的根本原因

可 惜 的 是 ,到 最 后 发 现 ,即便要 求 那 么 低 ,自 己 竟 然 还 是 无 法 被 满 足 ,只能称其为“艰 辛 ,,。因为无效生产者毕竟去生产了,所 以 ,即便是在失败的过程中,也会学习、总结经验教训 ,只 要 不 放 弃 ,就 有 改 进 或 者 翻 盘 ,甚至成功的机会。很多人的问题在于 ,从 一开始可能就没想对,所以也没选对,于 是 ,到最后怎么吃亏的都想不明白。因为生产出来的商品 或 者 服 务 ,必须是能卖出去的,即能够满足社会需求的 ,才 能 赚 到 钱。

2025-06-03 21:32:14 234

原创 分布式微服务系统架构第143集:pom文件

我发现项目中有一个名为captcha-spring-boot-starter的目录,这很可能就是用户在寻找的spring-boot-starter-captcha。spring-boot-starter-captcha位于项目的core/captcha-spring-boot-starter目录下。我已经找到了spring-boot-starter-captcha,它位于core/captcha-spring-boot-starter目录下。我将继续查看该目录下的src目录结构,以便提供更详细的信息。

2025-06-01 11:15:50 780

原创 分布式微服务系统架构第142集:全栈开发

目录是 Java 项目中的重要文件夹,通常用于存放与 Java 应用的元数据、配置、服务发现、加密算法等相关的文件。它的作用是启用 CDI 容器,控制和管理类的生命周期。其中包含了width、height两个参数,分别代表图片的宽度和高度,支持百分比方式设置 如:{width:'100%',height:'200px'}其中包含了width、height两个参数,分别代表滑动条的宽度和高度,支持百分比方式设置,如:{width:'100%',height:'40px'}是这个 Bean 的名字。

2025-05-30 22:12:05 1168

原创 分布式微服务系统架构第140集:各种锁汇总,乐观锁、悲观锁、分布式锁、可重入锁、互斥锁、读写锁、分段锁、类锁、行级锁等

JavaPlusDoc(文档) https://webvueblog.github.io/JavaPlusDoc/:借助外部系统(Redis、ZooKeeper、Etcd)维护全局锁。:不加锁,读时取得版本号,写时通过 CAS 验证版本,无冲突则更新。:同一线程可多次获得同一把锁,锁计数器递增/递减。:把大数据结构分段,每段独立加锁,降低冲突域。:并发度最高,适合高并发库存扣减、状态流转。:线程不断轮询尝试获取锁,不进入阻塞状态。:冲突少、读多写少场景,如用户资料更新。

2025-05-27 07:52:13 819

原创 分布式微服务系统架构第141集:锁

6. 读写锁(ReentrantReadWriteLock)——缓存读写场景。10. 分段锁(ConcurrentHashMap)——无须额外代码。2. 悲观锁(SELECT FOR UPDATE)——订单处理示例。4. 可重入锁(ReentrantLock)——临界资源保护。3. 分布式锁(Redisson)——分布式库存或任务调度。7. 信号量(Semaphore)——限流示例。9. 行级锁(数据库内部)——状态流转示例。1. 乐观锁(版本号)——库存扣减示例。:由数据库引擎在该记录更新时自动加/释。

2025-05-27 07:52:13 429

原创 分布式微服务系统架构第139集:和后端字节沟通技术

每次请求携带 JWT,服务端先校验 JWT 签名与有效期,然后根据 JWT 中的用户 ID(和权限版本号),从 Redis 拉取该用户的“实际权限集”,并在当前请求上下文中完成资源级、操作级的权限检查。在抢购活动中,可先将库存预加载到本地内存队列或秒杀队列中,通过队列消费来削峰,再异步持久化,进一步提高系统吞吐。:大流量场景下,可在本地(JVM 缓存或 Caffeine)再加一层短时缓存,减少对 Redis 的频繁读取。:在超高并发下,大量请求排队会导致响应延迟;

2025-05-25 23:58:15 1048

原创 Kafka介绍

例如,一个消费者可以重置到一个更早的偏移,来重新处理过去的数据,或跳到最近的记录,从“现在”开始消费。Kafka中消费的实现方式是,通过在消费者实例之间分配log中的分区,因此每个实例在任何时间点都是一个分区的“公平共享”的独占消费者。每个独立的分区必须匹配托管它的服务器的大小,但是一个topic可以有许多分区,因此,它可以处理任意大小的数据。例如,你可以使用我们的命令行工具来"tail"(应该理解为tail命令,查看文件的尾部)任何topic的内容,不会改变已存在消费者在消费的内容。也有支持配额的操作。

2025-05-24 23:32:01 652

原创 JVM 探秘之旅:从困惑到恍然大悟的奇妙学习过程

也就是如下: ① Java 源文件—->编译器—->字节码文件 ② 字节码文件—->JVM—->机器码 每一种平台的解释器是不同的,但是实现的虚拟机是相同的,这也就是 Java 为什么能够 跨平台的原因了 ,当一个程序从开始运行,这时虚拟机就开始实例化了,多个程序启动就会 存在多个虚拟机实例。接着,JVM 就像‘星际飞船’,飞船上的解释器是‘随行翻译’,根据不同星球(硬件平台)的语言习惯,把字节码文件编译成当地的‘方言’—— 机器码。小科深吸一口气,抱着笔记本,像寻找灯塔的小船般走向程哥的工位!

2025-05-22 11:55:38 723

原创 分布式微服务系统架构第138集:打包发布全流程(iOS + Android)

① 创建应用 → ② 上传 .aab → ③ 填隐私政策 / 内容分级 → ④ 上线 Production/Closed Test。填写 App 名称、包名(Bundle Identifier / ApplicationId)、版本号、图标、启动图;Archive → Upload → “Internal / External Testers” → 发测试链接。登录 App Store Connect → My Apps → + → New App。

2025-05-20 23:49:35 1125

Java基础笔记

Java代码笔记,用于学习,比较清晰,用代码来讲解内容。

2018-02-13

CountTime-AndroidStudio项目制作倒计时模块

AndroidStudio项目制作倒计时模块AndroidStudio项目制作倒计时模块AndroidStudio项目制作倒计时模块

2018-04-03

BS资产管理系统需求说明书

BS资产管理系统需求说明书BS资产管理系统需求说明书BS资产管理系统需求说明书

2017-12-27

wxParse.rar

微信小程序富文本解析组件,VM2670:1 Setting data field "xiugai" to undefined is invalid.

2018-12-25

book微信小程序

book111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

2018-06-22

【Java】求1-100范围内的素数递归方法

【Java】求1-100范围内的素数递归方法代码例子。分享,感谢。

2017-11-11

云查杀的实现

云查杀的实现,1.程序加上自动升级功能,下载并安装App2,才能查到病毒。

2017-11-29

Android---UI篇---Menu(菜单)

Android---UI篇---Menu(菜单), Android系统里面有3种类型的菜单:options menu,context menu,sub menu。

2017-11-27

Boom(字符型的扫雷游戏)

Boom(字符型的扫雷游戏),代码资源,eclipse软件打代码。

2017-11-01

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

TA关注的人

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