- 博客(335)
- 资源 (1)
- 收藏
- 关注
原创 Java 小游戏之贪吃蛇 Swing 实现
整体架构设计视图与控制层:由GamePanel类承担,该类继承自JPanel,负责游戏状态的更新、图形绘制以及用户交互处理。所有游戏逻辑均在本类中实现。应用层:由SnakeGame类实现,该类用于创建窗口、添加GamePanel并管理窗口的基本行为,确保游戏能够在独立窗口中运行。关键模块与功能设计游戏状态管理游戏中使用两个数组分别存储蛇的每个部分的 x 坐标和 y 坐标,并通过变量dots表示当前蛇的长度。游戏初始化时,蛇的长度固定为 3,位置设置在面板中固定的起始点;随后通过。
2025-02-04 19:45:46
810
原创 Java 小游戏之俄罗斯方块 Swing 实现
本项目采用了简单的 MVC(模型-视图-控制器)设计思想,将整个游戏的状态、显示与控制逻辑整合在同一个类(Board 类)中。模型层棋盘数据使用一维数组存储(类型为),每个元素表示一个单元格的方块类型。类Shape封装了俄罗斯方块的形状、坐标数据及旋转逻辑。视图层Board 类继承自JPanel,重写了方法用于绘制背景、固定的方块和当前下落的方块。控制层采用 Swing 的定时器(Timer)定时更新游戏状态(让方块下落);
2025-02-04 19:31:24
973
原创 JVM 四 JVM诊断与监控
JVM诊断与监控是保证 Java 应用性能稳定的重要手段。通过使用 JVisualVM、JConsole、Prometheus 等监控工具,结合垃圾回收日志、内存使用监控、线程状态分析等数据,开发者和运维人员可以有效地识别性能瓶颈、内存泄漏、GC 问题等,并针对性地进行优化。实时监控和告警机制可以帮助系统提前发现潜在问题,避免生产环境中的故障。
2025-02-03 15:56:21
537
原创 JVM 三 垃圾回收(GC)调优
是指通过配置垃圾回收器(GC)参数、优化堆内存分配、调整GC策略等手段来减少垃圾回收的停顿时间、提高吞吐量,并保证应用在高负载下的稳定性和性能。Java 中的垃圾回收机制非常重要,尤其是在高并发、大数据场景中,合理的垃圾回收策略能够显著提升系统的响应速度和处理能力。Java的垃圾回收机制主要用于自动管理堆内存,回收不再使用的对象。垃圾回收器会周期性地扫描堆内存,标记并清除不可达的对象,从而释放内存。JVM 提供了多种垃圾回收器,可以根据具体需求选择合适的 GC。
2025-02-03 15:51:58
765
原创 JVM 二 JVM内存模型
JVM内存模型 是指 Java 虚拟机在运行时使用的内存结构和分配方式。JVM 将内存划分为多个不同的区域,每个区域负责不同的任务。理解这些内存区域和它们的作用有助于我们优化 Java 应用程序的性能,特别是在高并发和大数据处理时。JVM内存模型可以大致分为以下几个主要区域:作用:堆内存用于存储应用程序的对象和数组,是 JVM 中最大的一块内存区域。几乎所有的 Java 对象都在堆上分配内存。堆内存的大小直接影响垃圾回收(GC)的频率和效率。划分:堆内存调优:作用:每个线程在执行时都会创建一个虚拟机栈,用于
2025-02-03 15:48:46
706
原创 JVM 一 性能调优
是针对 Java 应用程序在高负载、高并发环境下,通过对 JVM 参数和垃圾回收(GC)机制的优化,提升系统的吞吐量和响应速度,减少延迟并解决内存溢出等问题。
2025-02-03 15:47:24
517
原创 python 十 文件操作 列出指定目录下文件树
osos模块是处理目录和文件的经典选择。pathlibpathlib提供更现代和直观的路径处理。将文件树保存为文本文件,便于查看。可以用rich库生成一个更美观的文件树。
2025-01-27 20:58:46
277
原创 python 九 文件操作 读写.pdf
是一个强大的库,支持复杂 PDF 文件的文本提取。支持高效读取 PDF,并支持访问图像和表格。以下是使用这些库处理 PDF 文件的教程。
2025-01-27 20:54:49
377
原创 python 七 文件操作 读写Excel
openpyxl.xlsxpandasxlrdxlwt.xls以下是使用openpyxl和pandas操作 Excel 的详细教程。openpyxlopenpyxl是一个强大的库,支持读写.xlsx格式的 Excel 文件。pandaspandas是用于数据分析的强大库,支持高效地读取和写入 Excel 文件。
2025-01-27 20:49:12
384
原创 python 六 文件操作 读取csv文件
Python 提供了强大的工具来读取 CSV 文件,主要使用内置的csv模块或第三方库如pandas。csv。
2025-01-27 20:46:47
236
原创 python 五 文件操作 读取大文件
读取大文件时,为了避免占用过多内存,通常会采用分块读取的方式。以下是几种处理大文件的常见方法:使用 循环逐行读取文件,这种方法高效且占用内存小。2. 分块读取文件如果需要按块读取(而不是按行),可以使用 方法。3. 使用迭代器( 分批读取)可以将文件拆分成小批次读取。4. 使用 内存映射 将文件映射到内存中,支持随机访问,适合处理特别大的文件。5. 多线程或多进程并行读取对于多核处理器,可以将文件分成多个片段并行读取。6. 流式处理(适合二进制文件)对于图像、视
2025-01-27 20:43:50
636
原创 python 三 数据结构
数据结构是否有序可变性特点和应用列表有序可变存储任意类型,适合动态数据元组有序不可变固定数据字典无序可变键值对,快速查找集合无序可变元素唯一,适合去重和集合运算队列有序可变先进先出栈有序可变后进先出堆无序可变快速获取最小值或最大值。
2025-01-27 20:37:17
235
原创 python 二 基础语法
Python 基础语法非常简洁易懂,是入门编程的绝佳选择!'''"""print()input()1函数是可重复使用的代码块,使用def。
2025-01-27 20:13:36
331
原创 Alibaba Spring Cloud 三十三 Maven 管理多模块 Dubbo 项目结构,进行更好地分层与隔离
核心思路:使用多模块(multi-module)将“接口”“实现(Provider)”“消费者(Consumer)”“公共工具”等进行物理拆分,减少耦合、统一版本管理,并确保不同职责模块的依赖最小化。优势开发效率:Provider / Consumer 能并行开发,不在同一个模块里相互干扰。可扩展性:当业务增加更多服务或功能,只需添加新模块或新接口即可。运维方便:单独构建与部署每个服务,升级时也更灵活。清晰边界api只有接口,service只有实现,common放通用逻辑,层次结构更直观。
2025-01-27 11:45:15
763
原创 Spring Cloud Alibaba 三十二 Dubbo 在SpringBoot3环境下集成演示
Nacos:作为注册中心,为 Dubbo 提供服务注册和发现;Dubbo:高性能 RPC 框架,用暴露服务、引用服务;:整合 Nacos、提供更多微服务组件(Config、Sentinel、Seata 等)支持。:升级到 Jakarta 底层包,需保证依赖版本与 BOM 对齐。示例流程Provider:暴露接口实现,,注册到 Nacos;Consumer引用远程接口,从 Nacos 获取地址进行 RPC 调用;测试。
2025-01-26 03:25:17
656
原创 Spring Cloud Alibaba 三十一 Dubbo
是一个功能完善、性能优秀的分布式服务框架,尤其适合“服务直连”模式下的大规模高并发场景。核心功能:服务注册发现、负载均衡、集群容错、可插拔协议和序列化、多语言支持等。应用方式:在Provider中使用暴露接口,在Consumer中使用注入远程代理,通过注册中心统一管理服务地址。生态与实践:Dubbo 已成为国内许多大型互联网公司的基础 RPC 框架,结合各种微服务、容器化部署和运维平台(如 Nacos、Kubernetes、Mesh)构建起完整的分布式服务体系。
2025-01-26 03:25:00
551
原创 Alibaba Spring Cloud 三十 RocketMQ 在SpringBoot3实现简单的群聊
思路:通过 RocketMQ 来实现多实例下的消息分发,将用户发送的聊天消息投递到 Topic,消费者端拿到后再将其推送给在线用户,从而达到“群聊”的效果。发送端:可用 HTTP、WebSocket、RPC 等任何方式收集用户消息,最终都通过发到chat-topic。消费端:采用监听并接受所有消息,然后把消息转发到 WebSocket 等在线连接,完成实时聊天。扩展:在实际中需要更多“房间管理”、消息幂等、身份校验、集群负载、消息存档等完善工作。也可结合或Nacos等组件做更完整的微服务架构。
2025-01-26 03:24:44
1091
原创 Spring Cloud Alibaba 二十九 RocketMQ在SpringBoot3 环境下集成
在环境下使用基于 Spring Cloud Stream:使用,用“通道 (Binding)”来管理输入和输出,适合在微服务体系中统一处理消息管道。基于 RocketMQ 原生 Starter:直接使用或,可以完全掌控 Producer / Consumer 的高级特性,方便使用顺序消息、事务消息等功能。无论哪种方式,都需要正确配置NameServer 地址Topic等内容,确保与本地或远程的 RocketMQ Broker 对接成功。
2025-01-26 03:24:30
962
原创 Alibaba Spring Cloud 二十八 RocketMQ Consumer
Consumer在 RocketMQ 中负责从 Broker 拉取并处理消息,是构建异步和事件驱动系统的重要组件。集群消费与广播消费两种模式能覆盖绝大部分业务需求;针对顺序场景还有顺序消费模式可以保证严格顺序。合理编写消费逻辑并处理异常重试死信队列和重复消息等问题,是保证系统可靠性的关键。结合等运维工具,可以轻松掌握集群状态、队列分配和消息堆积等信息,为及时定位故障和扩展服务提供支持。
2025-01-26 03:24:13
542
原创 Alibaba Spring Cloud 二十七 RocketMQ Producer
Producer是 RocketMQ 中将数据(消息)发送到 Broker 的关键角色,提供了同步、异步和单向三种发送模式,可根据可靠性与性能需求做选择。通过配置NameServer 地址重试策略等,可满足不同业务场景下的消息发送要求。还可利用顺序消息延迟消息事务消息等特性实现更复杂的业务需求。使用过程中,要充分考虑消息可能重复Topic 规划大消息处理监控报警等问题,以保证系统的高可用与可扩展性。
2025-01-26 03:23:59
611
原创 Alibaba Spring Cloud 二十六 RocketMQ Broker
Broker在 RocketMQ 体系中是消息存储和转发的核心。它提供了高效的顺序写特性、灵活的刷盘策略、可选的主从复制方式,以兼顾高吞吐和高可靠。主从模式及同步/异步复制,可以满足不同场景的高可用需求;使用者可在性能、成本与容错间进行取舍。通过合理的部署规划(多 Broker 组、Master/Slave 配合)、完善的监控和运维(Topic / Queue 管理、磁盘清理、日志排查),可以构建出稳定、可扩展的分布式消息系统。在企业级生产环境中,建议重点关注刷盘策略HA 配置磁盘与网络资源。
2025-01-26 03:23:45
701
原创 Alibaba Spring Cloud 二十四 RocketMQ事务消息
RocketMQ 事务消息提供了“半消息 + 本地事务 + 回查”的机制,实现跨系统、跨服务的最终一致性,适合处理较为关键的业务流程(支付、订单、库存等)。使用关键点使用,实现接口。发送消息时调用。在完成本地事务逻辑后返回状态;若返回UNKNOW,Broker 通过回查接口反复确认。需要在业务数据库中记录事务状态,保证回查时能准确判定;并保证 Producer 在回查期内可用。适用场景:对数据一致性有较高要求,但又不想使用笨重的 XA 分布式事务,且能够接受异步/最终一致性的业务。
2025-01-26 03:23:29
736
原创 Alibaba Spring Cloud 二十五 RocketMQ NameServer
NameServer接受 Broker 注册和心跳,维护路由元数据;提供给 Producer/Consumer 查询 Topic 路由;不存储消息,也不进行数据同步,轻量且无状态。高可用部署:多台 NameServer 互不通信,但需要让所有 Broker 都向各个 NameServer 注册;Producer/Consumer 配置多地址,提高容错。常见问题:Topic 不存在导致路由查不到、NameServer 宕机导致路由不可用、数据不一致等。通过正确配置与监控可避免大部分问题。运维建议。
2025-01-26 03:23:15
441
原创 Alibaba Spring Cloud 二十三 RocketMQ 死信队列
触发条件当消费者多次(默认为 16 次)消费某条消息都返回或抛出异常,Broker 便会将该消息放入死信队列中,以防止这条消息一直阻塞在重试队列里。队列命名。例如,消费者组名为,则该组对应的死信队列 Topic 就是。特性进入死信队列的消息不会被再次自动投递,需要运维或开发者手动处理(例如在控制台查看并人工干预,或编写代码对进行消费、补偿等)。常见处理方式补偿:手动拉取死信消息,分析原因并尝试修复,再将消息重新投递或写到新 Topic 进行二次消费。记录/报警。
2025-01-26 03:23:03
904
原创 Alibaba Spring Cloud 十九 RocketMQ消息队列
如果你的微服务使用了 Spring Cloud Alibaba,可以通过引入依赖</</</</配置文件spring:cloud:stream:rocketmq:binder:bindings:output:input:发送消息@Autowired// 发送消息到 test-topic消费消息@Service这个方式基于 Spring Cloud Stream 的抽象进行开发,极大简化了与 RocketMQ 的整合。RocketMQ。
2025-01-26 03:22:49
633
原创 Alibaba Spring Cloud 二十二 RocketMQ 普通消息
普通消息是 RocketMQ 最常用的消息类型,适用于绝大多数异步通信和事件驱动场景。在Producer侧,可以灵活选择同步、异步或单向发送模式,平衡可靠性和性能;在Consumer侧,则可根据业务需要选用集群消费或广播消费。需要对消息可能重复消费重试死信队列等机制做好认知和处理,以确保业务逻辑的可靠性和幂等性。结合其他高级特性(顺序消息、延迟消息、事务消息等),RocketMQ 可以在不同的分布式场景下提供全面的解决方案。RocketMQ 官方文档RocketMQ GitHub 仓库。
2025-01-26 03:22:00
643
原创 Alibaba Spring Cloud 二十 RocketMQ顺序消息
适用场景对同一业务实体下的操作存在严格的先后顺序要求(例如订单创建 -> 支付 -> 发货 -> 收货)。消费量不是极其巨大,或者可以通过合理规划 Queue 数量来获得平衡的并发度。总结RocketMQ 顺序消息通过“同一业务键路由到同一个 Queue顺序消费 (MessageListenerOrderly)”来实现分区级别的消息有序。在实际应用中,需要根据吞吐量顺序性要求消费并行度等因素进行权衡。典型做法是以订单ID用户ID商品ID。
2025-01-26 03:21:45
663
原创 Alibaba Spring Cloud 二十一 RocketMQ 延迟消息
如果你的微服务使用了 Spring Cloud Alibaba,可以通过引入依赖</</</</配置文件spring:cloud:stream:rocketmq:binder:bindings:output:input:发送消息@Autowired// 发送消息到 test-topic消费消息@Service这个方式基于 Spring Cloud Stream 的抽象进行开发,极大简化了与 RocketMQ 的整合。RocketMQ。
2025-01-26 03:21:31
830
原创 Alibaba Spring Cloud 十八 Sentinel Dashboard(控制台)
实时监控:查看每个微服务应用的 QPS、RT、线程数、流控/熔断触发次数等。规则配置:动态管理限流、熔断降级、系统保护、热点限流等规则,实时下发到对应的微服务。机器列表管理:查看当前接入的所有应用实例、健康状况等。控制台本质上是一个独立的 Spring Boot 应用,默认端口为8080(可通过参数修改)。当微服务应用成功接入 Sentinel 并连接至控制台后,控制台会周期性地拉取各应用的监控数据并在前端显示。Sentinel 实时监控是微服务流量防护的核心环节,可帮助开发者及时发现系统瓶颈和问题。
2025-01-26 03:20:58
593
原创 Alibaba Spring Cloud 十七 Sentinel熔断降级
原理:通过统计资源的响应时间、异常数或异常率等指标,在达到阈值后启动熔断,在熔断窗口内直接拒绝或降级请求,降低对不稳定资源的依赖。优势:相比传统限流或熔断框架,Sentinel 除了熔断降级外还支持丰富的流控场景,结合控制台的可视化管理,使得配置和监控更加灵活。最佳实践根据业务 SLA 设定合理的 RT / 异常率 阈值,避免误触发熔断。与流控、热点限流、系统保护等功能配合使用,提供更全面的稳定性保障。配合的fallback或全局异常处理机制,实现业务定制化的降级响应。
2025-01-24 22:55:49
1036
原创 Alibaba Spring Cloud 十六 Sentinel 流量控制
多维度限流:支持基于 QPS、线程数、热点参数、调用链路等多维度配置限流规则。多种控制策略:提供“快速失败”、“排队等待”、“预热”等多种限流行为,可根据业务场景灵活选择。可视化配置:Sentinel 控制台能实时监控和动态调整流控规则,无需重新部署应用。与 Spring Cloud 生态深度整合:通过或自动化配置,集成成本低。借助 Sentinel 的流量控制能力,可以让我们在微服务架构下更从容地应对高并发和流量洪峰,为系统的稳定运行保驾护航。
2025-01-24 22:51:27
993
原创 Alibaba Spring Cloud 十五 Sentinel
在微服务架构下,可靠性是核心问题之一,而Sentinel恰恰能够帮助我们在限流、熔断与系统稳定性方面提供一整套完整而灵活的解决方案。结合 Spring Cloud Alibaba 的 Starter 进行使用,可以大幅减少集成成本,同时借助可视化的 Sentinel 控制台,对系统运行状况和配置管理一目了然。如果你打算在 Spring Cloud 或者其他 Java 微服务应用中落地流控、熔断、系统自适应保护等功能,Sentinel 会是一个非常不错的选择。
2025-01-24 22:45:52
801
原创 Alibaba Spring Cloud 十四 Spring Cloud Gateway + Sentinel 实现限流、熔断、动态路由以及负载均衡、路径匹配等核心功能的综合指南
基于 Spring WebFlux 的网关解决方案,能够为微服务提供统一的路由、限流、熔断、安全、监控等功能。Sentinel:阿里开源的一款高可用防护框架,提供灵活的流量控制、熔断降级、系统负载保护等功能,可与 Spring Cloud Gateway 深度整合,实现网关层的统一限流和熔断。若需自定义响应内容或跳转页面,可以通过或@Override});自带灵活的路由和负载均衡能力,结合Sentinel的流量控制、熔断降级,实现了网关层面的“拦截保护”,保护下游微服务的稳定性。
2025-01-24 01:01:25
778
原创 Alibaba Spring Cloud 十三 Nacos,Gateway,Nginx 部署架构与负载均衡方案
在微服务体系中,Nacos 主要承担“服务注册与发现、配置中心”的职能,Gateway(如 Spring Cloud Gateway)通常负责“路由转发、过滤、安全鉴权、灰度流量控制”等功能,而 Nginx 则常被用作“边缘反向代理”或“统一流量入口”。在实际项目里,这三者经常组合使用,以实现高扩展、高可用、可观测且灵活的流量调度。
2025-01-24 00:55:40
1308
原创 Alibaba Spring Cloud 十二 Nacos 灰度发布
在微服务架构中,灰度发布(也称“金丝雀发布”或“蓝绿发布”)可以帮助我们在上线新功能时,将流量逐步引入到新版本,从而减少大规模变更带来的风险。Nacos 本身提供了服务注册和配置管理的能力,但并不直接内置“灰度发布”一键功能。通常,我们需要借助 Nacos 的标签 / 分组 / 元数据 与 Spring Cloud 生态(如 Gateway、LoadBalancer 等) 共同实现灰度的效果。
2025-01-24 00:48:34
860
原创 Alibaba Spring Cloud 十一 Nacos 服务注册、发现与配置管理中心
Nacos(Naming and Configuration Service)是阿里巴巴开源的服务注册、发现与配置管理中心,也是 Spring Cloud Alibaba 生态下的重要组件之一
2025-01-24 00:44:09
571
原创 Alibaba Spring Cloud 十 Seata 的分布式事务处理模式 AT 模式
XA(eXtended Architecture)是由 X/Open(现在隶属于 Open Group)定义的分布式事务标准。它提供了一套接口,用于协调一个或多个资源管理器(例如数据库)在分布式事务中实现两阶段提交(2PC)。
2025-01-24 00:40:00
406
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人