日志开源组件(六)Adaptive Sampling 自适应采样

2023-08-28
阅读 6 分钟
761
业务背景有时候日志的信息比较多,怎么样才可以让系统做到自适应采样呢?拓展阅读日志开源组件(一)java 注解结合 spring aop 实现自动输出日志日志开源组件(二)java 注解结合 spring aop 实现日志traceId唯一标识日志开源组件(三)java 注解结合 spring aop 自动输出日志新增拦截器与过滤器日志开源组件(四)如何...

和 chatgpt 聊了一会儿分布式锁 redis/zookeeper distributed lock

2023-04-07
阅读 10 分钟
612
前言最近的 chatGPT 很火爆,听说取代程序员指日可待。于是和 TA 聊了一会儿分布式锁,我的感受是,超过大部分程序员的水平。Q1: 谈一谈 java 通过 redis 实现分布式 锁chatGPT: {代码...} 我们针对过期时间附加两个小问题。Q1.1 谈一谈 redis 分布式锁中,锁的过期时间应该设置多久才合理呢chatGPT: {代码...} Q1.2 如...

rate-limit 一款 java 开源渐进式分布式限流框架使用介绍

2022-12-13
阅读 4 分钟
802
项目简介rate-limit 是一个为 java 设计的渐进式限流工具。目的是为了深入学习和使用限流,后续将会持续迭代。特性渐进式实现支持独立于 spring 使用支持整合 spring支持整合 spring-boot内置多种限流策略快速开始需求jdk 1.7maven 3.x+maven 导入 {代码...} 入门例子方法定义@RateLimit 限流注解放在方法上,指定对应的...

java 实现开箱即用基于 redis 的分布式锁

2022-12-08
阅读 4 分钟
1k
项目简介lock 为 java 设计的分布式锁,开箱即用,纵享丝滑。开源地址:[链接]目的开箱即用,支持注解式和过程式调用基于 redis 的分布式锁内置支持多种 redis 的整合方式渐进式设计,可独立于 spring 使用整合 spring整合 spring-boot快速开始需要jdk1.7+maven 3.x+maven 引入 {代码...} 入门例子基于本地 redis 的测试...

更好的 java 重试框架 sisyphus 的 3 种使用方式

2021-10-23
阅读 5 分钟
2k
回顾我们前面学习了更好的 java 重试框架 sisyphus 入门简介更好的 java 重试框架 sisyphus 配置的 2 种方式介绍更好的 java 重试框架 sisyphus 背后的故事java 重试框架 sisyphus 开源地址这一节让我们一起学习下 sisyphus 的 3 种使用方式。sisyphus 代理模板目的为了便于用户更加方便地使用注解,同时又不依赖 spring...

更好的 java 重试框架 sisyphus 配置的 2 种方式介绍

2021-10-21
阅读 4 分钟
1.7k
回顾我们前面学习了更好的 java 重试框架 sisyphus 入门简介更好的 java 重试框架 sisyphus 背后的故事这一节让我们一起学习下 sisyphus 基于函数式的配置和注解式的配置。函数式配置概览为了满足更加方便的配置,Retryer 类提供了许多可以配置的信息。默认配置 {代码...} 和下面的代码是等价的: {代码...} 方法说明con...

java 从零开始手写 RPC (07)-timeout 超时处理

2021-10-13
阅读 11 分钟
2k
《过时不候》最漫长的莫过于等待我们不可能永远等一个人就像请求永远等待响应超时处理java 从零开始手写 RPC (01) 基于 socket 实现java 从零开始手写 RPC (02)-netty4 实现客户端和服务端java 从零开始手写 RPC (03) 如何实现客户端调用服务端?java 从零开始手写 RPC (04) 序列化java 从零开始手写 RPC (05) 基于反射...

java 从零开始手写 RPC (06) reflect 反射实现通用调用之客户端

2021-10-11
阅读 21 分钟
1.2k
通用调用java 从零开始手写 RPC (01) 基于 socket 实现java 从零开始手写 RPC (02)-netty4 实现客户端和服务端java 从零开始手写 RPC (03) 如何实现客户端调用服务端?java 从零开始手写 RPC (04) -序列化上一篇我们介绍了,如何实现基于反射的通用服务端。这一节我们来一起学习下如何实现通用客户端。因为内容较多,所...

java 从零开始手写 RPC (05) reflect 反射实现通用调用之服务端

2021-10-11
阅读 14 分钟
1.6k
通用调用java 从零开始手写 RPC (01) 基于 socket 实现java 从零开始手写 RPC (02)-netty4 实现客户端和服务端java 从零开始手写 RPC (03) 如何实现客户端调用服务端?java 从零开始手写 RPC (04) -序列化前面我们的例子是一个固定的出参和入参,固定的方法实现。本节将实现通用的调用,让框架具有更广泛的实用性。基本...

【分布式】load balance 04-java 从零手写实现负载均衡

2020-06-20
阅读 4 分钟
1.1k
负载均衡系列专题 01-负载均衡基础知识 02-一致性 hash 原理 03-一致性哈希算法 java 实现 04-负载均衡算法 java 实现 本节我们来看一下如何实现一负载均衡框架。 源码 核心接口定义 {代码...} 1. 随机策略 {代码...} 2. 轮训 {代码...} 3. 有权重的轮训 这个需要对数据进行初始化处理,计算数组的最大公约数。 {代码......

【分布式】load balance 03-一致性哈希算法 java 实现

2020-06-20
阅读 3 分钟
1.3k
负载均衡系列专题 01-负载均衡基础知识 02-一致性 hash 原理 03-一致性哈希算法 java 实现 04-负载均衡算法 java 实现 本节我们来看一下如何实现一个一致性 hash 框架。 源码 普通 hash 我们首先定义一下 hash 接口,以及最简单的 jdk 实现: IHash {代码...} HashJdk.java {代码...} Node 定义 用来定义一个节点: 此处...

【分布式】load balance 02-consistent hash algorithm 一致性哈希算法原理详解

2020-06-20
阅读 6 分钟
1.8k
负载均衡系列专题 01-负载均衡基础知识 02-一致性 hash 原理 03-一致性哈希算法 java 实现 04-负载均衡算法 java 实现 概念 一致哈希是一种特殊的哈希算法。 在使用一致哈希算法后,哈希表槽位数(大小)的改变平均只需要对 K/n个关键字重新映射,其中K是关键字的数量, n是槽位数量。 然而在传统的哈希表中,添加或删除...

【分布式】load balance 01-负载均衡基础知识

2020-06-20
阅读 7 分钟
1.2k
负载均衡系列专题 01-负载均衡基础知识 02-一致性 hash 原理 03-一致性哈希算法 java 实现 04-负载均衡算法 java 实现 负载均衡 负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。 传统架构 在这里用户是直连到 web 服务器,如果这个服务...

分布式 id 的四种写法,你会吗?

2020-05-14
阅读 1 分钟
1.2k
引言 我们在生活中,id 与我们的生活实际上是形影不离的。 身份证号,QQ 号,手机号,银行卡号,学生时代的学号,甚至是躺在你硬盘里的番号。 这些 id 标识是如此的重要,乃至每一个后台程序员都要去思考这个问题—— id 的有几种写法?都有哪些利弊? 本文就带你深入浅出学习几种常见的 id 的生成策略。 入门学习 由于篇...