0%

为了避免使用方法直接显示的参数传递,我们可以采用 ThreadLocal 实现上下文来存储和获取参数,假设我们现在需要实现提现上下文 WithdrawContext,首先定义一个上下文类 WithdrawContext,并定义对应上下文管理器 WithdrawManager

阅读全文 »

1. 脑裂现象

所谓的脑裂,就是指在主从集群中,同时有两个主节点,它们都能接收写请求。而脑裂最直接的影响,就是客户端不知道应该往哪个主节点写入数据,结果就是不同的客户端会往不同的主节点上写入数据。而且,严重的话,脑裂会进一步导致数据丢失。

阅读全文 »

1. 监听过期 key

基于监听过期key的方式来实现延迟队列是我想到的第一个方案,为了弄懂这个方案实现的细节,我还特地去扒了扒官网,还真有所收获

1.1 Redis发布订阅模式

一谈到发布订阅模式,其实一想到的就是MQ,只不过Redis也实现了一套,并且跟MQ贼像,如图:

阅读全文 »

1. 摘要

Redis是一款性能强劲的内存数据库,但是在使用过程中,我们可能会遇到Big Key问题,这个问题就是Redis中某个key的value过大,所以Big Key问题本质是Big Value问题,导致Redis的性能下降或者崩溃。本文将向大家介绍如何排查和解决这个问题。

阅读全文 »

当Java程序性能达不到既定目标,且其他优化手段都已经穷尽时,通常需要调整垃圾回收器来进一步提高性能,称为GC优化。但GC算法复杂,影响GC性能的参数众多,且参数调整又依赖于应用各自的特点,这些因素很大程度上增加了GC优化的难度。即便如此,GC调优也不是无章可循,仍然有一些通用的思考方法。本篇会介绍这些通用的GC优化策略和相关实践案例,主要包括如下内容: > 优化前准备: 简单回顾JVM相关知识、介绍GC优化的一些通用策略。 > 优化方法: 介绍调优的一般流程:明确优化目标→优化→跟踪优化结果。 > 优化案例: 简述笔者所在团队遇到的GC问题以及优化方案。

阅读全文 »

1. 项目背景

ElasticJob 是一个分布式调度解决方案,旨在解决大型分布式软件系统中的定时任务管理问题,提供高效的任务调度和分布式资源管理。然而,现有的ElasticJob 解决方案在监控定时任务执行方面还有不足之处,为了确保系统资源的有效利用并降低定时任务执行过程中可能出现的问题,我们决定对 ElasticJob 进行定时任务执行监控改造。

阅读全文 »

1. 前言

这里我们将介绍 Spring Boot 中一个非常有特色的主题,系统监控。

系统监控是 Spring Boot 中引入的一项全新功能,它对应用程序运行状态的管理非常有效。而 Spring Boot Actuator 组件主要通过一系列 HTTP 端点提供的系统监控功能来实现系统监控。

因此,接下来我们将引入 Spring Boot Actuator 组件,以支付系统为例来介绍如何使用它进行系统监控,以及如何对 Actuator 端点进行扩展。并结合 Prometheus 、Grafana 来更加直观的展示这些信息。

阅读全文 »

1. 买卖股票的最好时机Ⅰ

BM80买卖股票的最好时机(一)

描述

假设你有一个数组prices,长度为n,其中prices[i]是股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益

1.你可以买入一次股票和卖出一次股票,并非每天都可以买入或卖出一次,总共只能买入和卖出一次,且买入必须在卖出的前面的某一天

2.如果不能获取到任何利润,请返回0

3.假设买入卖出均无手续费

阅读全文 »