自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

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

2025-06-13 22:37:19 469

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

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

2025-06-12 08:06:52 465

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

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

2025-06-11 07:38:58 304

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

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

2025-06-10 21:36:54 409

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

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

2025-06-06 08:21:47 753

原创 生 产 资 料 的 终 极 来 源

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

2025-06-03 21:32:14 129

原创 荒唐地出售生产资料

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

2025-06-03 21:32:14 328

原创 教 育 投 入

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

2025-06-03 21:32:14 182

原创 生活艰辛的根本原因

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

2025-06-03 21:32:14 215

原创 分布式微服务系统架构第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 727

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

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

2025-05-30 22:12:05 1130

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

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

2025-05-27 07:52:13 798

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

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

2025-05-27 07:52:13 415

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

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

2025-05-25 23:58:15 1020

原创 Kafka介绍

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

2025-05-24 23:32:01 623

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

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

2025-05-22 11:55:38 703

原创 分布式微服务系统架构第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 1048

原创 分布式微服务系统架构第137集:ES的分布式架构原理

这里有个真实的案例。然后这样的话,你大量的时间是在访问热数据 index,热数据可能就占总数据量的 10%,此时数据量很少,几乎全都保留在 filesystem cache 里面了,就可以确保热数据的访问性能是很高的。根据我们自己的生产环境实践经验,最佳的情况下,是仅仅在 es 中就存少量的数据,就是你要用来搜索的那些索引,如果内存留给 filesystem cache 的是 100G,那么你就将索引数据控制在 100G 以内,这样的话,你的数据几乎全部走内存来搜索,性能非常之高,一般可以在 1 秒以内。

2025-05-19 08:26:23 1350

原创 分布式微服务系统架构第135集:面试了一位中兴的运维程序员

CPU2 | 8.79 | 4.40 | 1.10 | 4.40 | 81.32 | soft 较高,可能是网络或 Cassandra 线程池抢占 || CPU1 | 12.77| 3.19 | 2.13 | 1.06 | 80.85 | 主要在处理业务逻辑(如 Java 线程) || CPU0 | 7.61 | 4.35 | 3.26 | 3.26 | 81.52 | IO/软中断略高,稳定 || 核心 | %usr | %sys | %iowait | %soft | %idle | 说明 |

2025-05-18 12:55:28 915

原创 分布式微服务系统架构第136集:面试了一位华为的运维程序员

使用 GitLab CI / Jenkins / GitHub Actions 自动拉取代码,执行构建任务(如 Maven、Webpack)仓库地址:https://webvueblog.github.io/JavaPlusDoc/合理线程池配置(如 gunicorn、Java executor)、避免死循环、热点缓存。使用 jemalloc / G1 GC(JVM)、释放无用缓存、定时重启长生命周期服务。各种临时文件(客户端请求体、代理、FastCGI、uWSGI、SCGI)的存放目录。

2025-05-18 12:55:28 737

原创 分布式微服务系统架构第134集:笔记1运维服务器经验,高并发,大数据量系统

Grafana/Prometheus 将 CPU、iowait、GC、p99 延迟放在同一 Dashboard。仓库地址:https://webvueblog.github.io/JavaPlusDoc/,能直接定位是哪一个进程监听该端口。先定位资源瓶颈 → 再定位进程 → 再看线程 / 调用栈 / 系统调用 / 数据结构。load≈CPU 核数且 %sy/%wa 高 → 先查 CPU 或磁盘。:ab / wrk / vegeta 重放流量,配合。:先看全局指标再聚焦具体进程 / 线程 / 调用栈。

2025-05-17 23:29:12 690

原创 分布式微服务系统架构第133集:运维服务器6年经验,高并发,大数据量系统

构建一个系统:使用 MongoDB 分片集群保存订单数据,Redis 缓存热数据,Elasticsearch 存储历史数据,并通过 Java 服务读写协调。长时间接近 100%,排查是频繁写入日志导致 IO 拥塞,优化后日志按级别写入,响应恢复。导入到 ES,支持快速搜索、分页、复杂统计分析,而不影响 Mongo 的读写压力。(如用户最新订单、订单状态)缓存到 Redis,避免 MongoDB 频繁查询。的核心方式,适用于订单类系统、日志系统、交易系统等场景。dump 栈分析是某个线程死循环。

2025-05-16 23:54:35 1141

原创 分布式微服务系统架构第132集:Python大模型,fastapi项目-Jeskson文档-微服务分布式系统架构

synchronized和lock他们都是锁的实现,进行并发控制,synchronized它是一个关键字,而lock它是一个接口,lock接口下有多个实现类,如ReentrantLock,ReentrantReadWriteLock等。synchronized是非公平锁,ReentrantLock是可重入锁,也是公平锁,公平锁和非公平锁的区别是,公平锁是按照线程请求的顺序来分配锁,而非公平锁是随机分配的。的锁可以是对象级别的,也可以是更细粒度的,比如ReentrantLock可以锁住代码块中的某个变量。

2025-05-14 08:03:59 944

原创 分布式微服务系统架构第131集:fastapi-python

阿里云 Elasticsearch Service(AES)是一项托管服务,包含 Elasticsearch 和 Kibana,免运维、可弹性伸缩。托管式 Elasticsearch Service(AES) + Logstash/Beats。仓库地址:https://webvueblog.github.io/JavaPlusDoc/控制台 → 产品 → Elasticsearch(托管版)→ 创建实例。选择规格(节点数、规格、存储)与网络(VPC、交换机)

2025-05-13 08:13:01 684

原创 分布式微服务系统架构第130集:Python工程化FastAPI,运维Nginx-keepalived+Nginx实现高可用集群

FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 并基于标准的 Python 类型提示。:基于(并完全兼容)API 的相关开放标准:[OpenAPI] (以前被称为 Swagger) 和 [JSON Schema]。仓库地址:https://webvueblog.github.io/JavaPlusDoc/,核心目的是验证系统的可用性、监控/告警能力、容灾/自动恢复机制是否健全。🏭 CI(持续集成)和 CD(持续部署)基于GitHub Actions。

2025-05-11 16:04:39 837

原创 分布式微服务系统架构第127集:cassandra安装部署

适用对象:希望在生产环境(4 核 / 16 GB RAM 及以上)快速部署并维护 Apache Cassandra 的运维 / 开发人员。:停节点 → 备份配置 → 升级 JDK → 替换目录 → 启动 → 等 ring 绿 → 下一节点。仓库地址:https://webvueblog.github.io/JavaPlusDoc/Apache Cassandra 安装与部署指南(2025 年版)Apache Cassandra 安装与部署指南(2025 年版)

2025-05-10 11:02:23 1258

原创 分布式微服务系统架构第126集:集群,数据库扩展,多节点分布,分库,分表,分片,分表,运维

这是基本前提:因为副本数是 2,Cassandra 需要能在两个不同节点存放相同的数据。使用 Spring Data for Apache Cassandra(推荐企业项目)启动时加载 SkyWalking 的探针(agent),用于采集调用链。✅ 副本数(replication_factor)设置建议。SkyWalking 后端 OAP 服务地址(收集数据)✅ Cassandra 中的 Keyspace 是什么?副本数(replication factor)将 Cassandra 数据部署为副本 2(

2025-05-10 11:02:23 834

原创 分布式微服务系统架构第129集:redis安装部署文档

(4 vCPU / 16 GB RAM 以上)快速部署 Redis(单机、哨兵、Cluster 模式)的后端 / 运维工程师。Master ×1、Slave ×2、Sentinel ×3(可与 Slave 同机)✅ 二、Spring Boot 集成 Redis 配置(支持单机、哨兵、集群)✅ 一、Redis 高可用部署指南(Sentinel + Cluster)✅ 二、Redis Cluster 自动化部署脚本(6 节点,3主3从)📌 2. Redis Cluster 集群模式(数据分片 + 高可用)

2025-05-10 11:02:23 2026

原创 分布式微服务系统架构第128集:elastic-search安装部署

(4 核 / 16 GB RAM 以上)构建高可用、可观测的 Elasticsearch 集群的 DevOps / 后端工程师。仓库地址:https://webvueblog.github.io/JavaPlusDoc/、Terraform 自动化部署或具体 ILM/安全脚本示例,请另行告知,我可以继续补充。:Linux(Ubuntu 20+/CentOS 7+/Rocky)或 macOS。设相同,≤ 32 GB (压缩指针);:ES 7.17.x(稳定)或 ES 8.x(安全增强)

2025-05-10 11:02:23 1263

原创 分布式微服务系统架构第125集:AI大模型

mongo,cassandra,elasticsearch,redis,clickhouse,mysql,postgresql集群,扩展,多节点分布。把用户上传的文件上传到腾讯云 COS,然后调用内容审核接口判断该文件是否包含违规内容(如暴力、涉黄等),如果违规就抛出异常。:这是 Spring Web 的一个接口,你可以用它来自定义 Web 行为(比如 CORS、静态资源、拦截器等)。每个主节点可有从节点。:至少 3 个 Etcd/Consul 实例+3 个 Patroni 主体节点,保证高可用。

2025-05-09 09:37:47 1684

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

Taro 会为你生成 TypeScript 配置和文件,允许你在开发过程中使用类型检查,这有助于发现潜在的错误并提供更好的代码提示和文档支持。:Webpack 可以处理复杂的打包需求,比如代码拆分、懒加载、Polyfill等,支持所有现代浏览器和低版本的浏览器。:如果你需要一个成熟、稳定且高度可定制的构建工具,特别是当项目较大,且需要复杂的打包、插件支持和优化,选择。**如果你的项目比较大,且需要精确的状态管理和全局数据流控制,或者你的团队已经熟悉 Redux,选择。,一个流行的状态管理库。

2025-04-30 08:27:26 672

原创 分布式微服务系统架构第123集:设备服务网络到微信小程序Taro开发效率,高并发架构

Taro 项目基于 node,请确保已具备较新的 node 环境(>=16.20.0),推荐使用 node 版本管理工具 [nvm] 来管理 node,这样不仅可以很方便地切换 node 版本,而且全局安装时候也不用加 sudo 了。在编译时,Taro 会帮你对样式做尺寸转换操作,但是如果是在 JS 中书写了行内样式,那么编译时就无法做替换了,针对这种情况,Taro 提供了 API。在 Java 微服务中,经常会有一些公共的工具方法,在 Taro 项目中同样可以有一个工具模块,统一管理常用的工具方法。

2025-04-29 23:25:19 952

原创 分布式微服务系统架构第122集:NestJS是一个用于构建高效、可扩展的服务器端应用程序的开发框架

排查k8s分配给docker容器的内存大小是否足够,若k8s分配给docker容器的内存足够大,依然报内存溢出,则可能是系统分配给node的内存不足(tips: 分配给node程序的内存64位系统下约为1.4GB,32位系统下约为0.7GB)在小程序中,发起请求时会涉及到多个并发流程和事件循环,下面详细描述了从发起请求到结束请求的整个过程,以及超时、挂起和低端手机性能慢时可能会遇到的各种情况。项目组模块,系统管理模块,发布预览,发布体验版,发布任务记录,日志,小程序二维码,用户操作选项卡。

2025-04-28 23:36:06 1047

原创 分布式微服务系统架构第120集:专业WebSocket鉴权

仓库地址:https://webvueblog.github.io/JavaPlusDoc/,可以自定义 WebSocket握手拦截器 → 返回HTTP状态码,比如401。不光从 URL,也能从 WebSocket 请求头拿 token。,统一管理所有在线Session(方便批量踢人/广播消息),比如客户端定时发送ping消息,服务端回复pong。可以在服务端定时心跳检测,把死掉的连接清理掉。比如token过期、恶意连接,可以主动断开。方法外包装一层 try-catch。灵活扩展,可以接认证中心、数据库。

2025-04-23 08:06:16 836

原创 分布式微服务系统架构第119集:WebSocket监控服务内部原理和执行流程

通常用来自定义 WebSocket 握手过程,比如:校验token、设置自定义属性、统一Session管理、拦截器(handshake拦截)等。如果你用的 Kafka Server 开了自动建Topic(auto.create.topics.enable=true),也可以不手动建。注解的类,自动注册成 WebSocket 端点。完就不管了,加一个Callback回调,拿到真正的发送成功 or 失败,做链路监控。:这里可以记录日志、发告警(钉钉/飞书/邮件),或者存到DB里,方便后续人工修复。

2025-04-23 08:06:16 810

原创 分布式微服务系统架构第121集:AppCtxHolder

本身是由 Web容器(Tomcat/Undertow/Jetty)托管的,不是 Spring 托管的!当前类不是被 Spring 托管的(比如普通 Java 类、第三方库、手动 new 出来的对象)是让你在任何地方都能访问 Spring 容器中 Bean 的万能工具。✅ 这样,WebSocket也能用上 Spring 的依赖了!(每连接一个客户端就 new 一个),而Spring容器默认是。里的 session 没移除干净,会慢慢堆积,最好在。根据 bean 名字,获取 Spring 容器里的对象。

2025-04-23 08:06:16 969

原创 分布式微服务系统架构第117集:Kafka发送工具,标准ASCII

Netty内部是责任链(Pipeline)模式,编码器和解码器在 pipeline 中按顺序处理。注意ByteBuf使用生命周期,避免内存泄漏(Netty内部有引用计数机制)完整表格(标准ASCII 0x00 ~ 0x7F片段,含0x7B重点标红):不是每一条都发,而是攒一批一起发(比如100条或者100ms发一次)每次发送时执行,通常是单线程串行(但需要注意共享资源)📈 1. 每分钟输出报警发送频率(TPS、QPS)📈 1. 每分钟输出报警发送频率(TPS、QPS)

2025-04-22 08:05:16 1088

原创 分布式微服务系统架构第118集:Future池管理容器-CompletableFuture

举个小例子,比如 Netty 收到一条业务请求,存个 CondFuture,异步发出去,下次 channelRead 回来,再通过 id 取出 Future,signal 一下返回响应,非常常见!客户端发指令(比如充值请求),服务器先缓存 Future,异步处理完后 signal 返回结果。A系统请求B系统处理数据,不阻塞主线程,通过 Future await 等待异步回包。下单后,发“支付成功消息”,等用户支付异步回调,signal Future并继续业务。

2025-04-22 08:05:16 759

原创 分布式微服务系统架构第114集:微信小程序订阅消息推送实践

在发送模板消息的接口中,也需此凭证,下面演示如何通过auth.getAccessToken来获取access_token。用户点击按钮,发起授权同意后,就会在微信的服务通知里收到如下消息,点击“进入小程序查看”,就会跳转到我们page属性的路径里。示例中创建了两个方法getJsCode()和getOpenId(),在sendMsg()方法中依次执行来获得openid。通过设置->基本设置来修改小程序类目。改造openAuth(),增加sendMsg()的调用,实现用户同意订阅消息模板后,发送模板消息。

2025-04-21 05:14:16 146

原创 分布式微服务系统架构第116集:设备网关,处理字节的大数据,过亿缓存

在程序中缓存到本地的数据时,通常会使用本地持久化存储(如文件、数据库、内存缓存等)来存储数据。如果数据量较小且只需要在内存中缓存,可以选择将数据存储在内存中,在程序启动时加载缓存数据。使用一个简单的文件或数据库同步机制,将内存数据持久化到文件或数据库中。如果需要缓存并持久化,可以使用 Redis 提供的持久化选项(RDB 或 AOF)。将缓存数据保存到本地文件中(如 JSON、XML、或二进制文件),在程序启动时读取文件恢复缓存。在启动时读取文件、数据库或 Redis 中存储的数据并恢复到内存缓存中。

2025-04-21 05:14:16 921

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关注的人

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