上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 19 下一页
摘要: 基础 ZooKeeper的4个节点 持久节点:默认的节点类型,一直存在于ZooKeeper中 持久顺序节点:在创建节点时,ZooKeeper根据节点创建的时间顺序对节点进行编号 临时节点:当客户端与ZooKeeper断开连接后,该进程创建的临时节点就会被删除 临时顺序节点:按时间顺序编号的临时节点 阅读全文
posted @ 2025-04-15 08:15 程序员Seven 阅读(169) 评论(0) 推荐(0)
摘要: 大部分互联网公司都需要处理计数器场景,例如风控系统的请求频控、内容平台的播放量统计、电商系统的库存扣减等。 传统方案一般会直接使用RedisUtil.incr(key),这是最简单的方式,但这种方式在生产环境中会暴露严重问题: // 隐患示例 public long addOne(String ke 阅读全文
posted @ 2025-04-14 08:15 程序员Seven 阅读(1188) 评论(0) 推荐(6)
摘要: 在微服务架构中,服务与服务之间通过远程调用的方式进行通信,一旦某个被调用的服务发生了故障,其依赖服务也会发生故障,此时就会发生故障的蔓延,最终导致灾难性雪崩效应。服务保护就是为了保证服务的稳定性而出生的一套保护方案。本文则着重介绍请求限流算法 雪崩问题 微服务调用链路中的某个服务故障,引起整个链路中 阅读全文
posted @ 2025-04-11 08:15 程序员Seven 阅读(218) 评论(0) 推荐(0)
摘要: 应用场景 批量提取、替换有规律的字符串 在各种高级文本编辑器的使用 在各类办公软件office的使用 各种开发语言中的使用(C#、Java、JS、Perl、PHP等等) 用户输入的合法性校验(IP地址、特殊的订单号要求等) 模板引擎的标签库开发 网络爬虫(抓取机器人)的开发 批量的文本高效处理 推荐 阅读全文
posted @ 2025-04-08 08:15 程序员Seven 阅读(117) 评论(0) 推荐(0)
摘要: 日常开发中,我们经常遇到这种业务场景,如:外卖订单超 30 分钟未支付,则自动取订单;用户注册成功 15 分钟后,发短信息通知用户等等。这就是延时任务处理场景。 在电商,支付等系统中,一设都是先创建订单(支付单),再给用户一定的时间进行支付,如果没有按时支付的话,就需要把之前的订单(支付单)取消掉。 阅读全文
posted @ 2025-04-07 08:15 程序员Seven 阅读(2689) 评论(7) 推荐(8)
摘要: MoreExecutors directExecutor ExecutorService executor = Executors.newSingleThreadExecutor(); SettableFuture<Integer> future = SettableFuture.create(); 阅读全文
posted @ 2025-04-04 08:15 程序员Seven 阅读(350) 评论(0) 推荐(1)
摘要: 引言 Guava 使用术语 流来表示可关闭的,并且在底层资源中有位置状态的 I/O 数据流。字节流对应的工具类为 ByteSterams,字符流对应的工具类为 CharStreams。 Guava 中为了避免和流直接打交道,抽象出可读的 源 source 和可写的 汇 sink 两个概念,指可以从中 阅读全文
posted @ 2025-04-03 08:15 程序员Seven 阅读(326) 评论(0) 推荐(3)
摘要: Collections2 private Collections2() { } 私有构造器,也没有静态构造器,所以可以很明确它是一个纯工具类了。 filter过滤方法 传入一个带过滤的容器,和一个实现过滤规则的函数类,返回一个带有过滤动作的容器 public static <E extends @N 阅读全文
posted @ 2025-04-02 08:15 程序员Seven 阅读(80) 评论(0) 推荐(0)
摘要: BiMap Map 可以实现 key -> value 的映射,如果想要 value -> key 的映射,就需要定义两个 Map,并且同步更新,很不优雅。Guava 提供了 BiMap 支持支持双向的映射关系,常用实现有HashMap, EnumBiMap, EnumHashBiMap...。 而 阅读全文
posted @ 2025-04-01 08:15 程序员Seven 阅读(262) 评论(2) 推荐(1)
摘要: Immutable 如《Effective Java》Item1)所述,在设计类的时候,倾向优先使用静态工厂方法(static factory method)而非构造函数(constructor)创建对象,优点在于: 静态工厂方法多了一层名称信息,比构造函数更富表达性。 可以更灵活地创建对象,比如缓 阅读全文
posted @ 2025-03-31 08:15 程序员Seven 阅读(311) 评论(0) 推荐(2)
摘要: Java 24作为2025年3月发布的最新版本,延续了Java平台每半年发布一次的节奏,带来了24项重要改进。本文将按照核心改进领域分类,详细解析每个特性的技术原理和实际价值,帮助开发者全面了解这一版本的能力边界和应用场景。 不过Java24是自Java 21 以来的第三个非长期支持版本,下一个长期 阅读全文
posted @ 2025-03-30 14:03 程序员Seven 阅读(778) 评论(0) 推荐(0)
摘要: 方法 49、检查参数的有效性 每次编写方法或构造函数时,都应该考虑参数存在哪些限制,并在文档中记录下来,然后在方法的开头显式地检查。 如果没有在方法开头就验证参数,可能会违反故障原子性。因为方法可能会在执行过程中出现让人困惑的异常而失败,或者计算出错误的结果然后返回,甚至可能埋藏隐患,导致将来在不确 阅读全文
posted @ 2025-03-28 08:15 程序员Seven 阅读(478) 评论(0) 推荐(0)
摘要: 创建和销毁对象 1、静态工厂方法代替构造器 优点 静态工厂方法有名称,能确切地描述正被返回的对象。 不必每次调用都创建一个新的对象。 可以返回原返回类型的任何子类对象。 创建参数化类型实例时更加简洁,比如调用构造 HashMap 时,使用 Map < String,List < String > m 阅读全文
posted @ 2025-03-25 08:15 程序员Seven 阅读(604) 评论(0) 推荐(1)
摘要: String相关工具 Strings Guava 提供了一系列用于字符串处理的工具: 对字符串为null或空的处理 nullToEmpty(@Nullable String string):如果非空,则返回给定的字符串;否则返回空字符串 public static String nullToEmpt 阅读全文
posted @ 2025-03-24 08:15 程序员Seven 阅读(332) 评论(0) 推荐(0)
摘要: Collections 是 JDK 提供的一个工具类,位于 java.util 包下,提供了一系列的静态方法,方便我们对集合进行各种操作,算是集合框架的一个大管家。 大致看一下方法名和参数就能知道这个方法是干嘛的: 排序操作 reverse(List list):反转顺序 shuffle(List 阅读全文
posted @ 2025-03-20 08:15 程序员Seven 阅读(214) 评论(0) 推荐(0)
摘要: Java 的 Objects 类是一个实用工具类,包含了一系列静态方法,用于处理对象。它位于 java.util 包中,自 Java 7 引入。Objects 类的主要目的是降低代码中的空指针异常(NullPointerException) 风险,同时提供一些非常实用的方法供我们使用。 Object 阅读全文
posted @ 2025-03-18 08:15 程序员Seven 阅读(300) 评论(0) 推荐(0)
摘要: 数组专用工具类指的是 java.util.Arrays 类,基本上常见的数组操作,这个类都提供了静态方法可供直接调用。毕竟数组本身想完成这些操作还是挺麻烦的,有了这层封装,就方便多了。 package java.util; /** * @author Josh Bloch * @author Nea 阅读全文
posted @ 2025-03-17 08:15 程序员Seven 阅读(462) 评论(0) 推荐(0)
摘要: 认识微服务 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢? 单体架构 单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署。 单体架构的优缺点如下: 优点: 架构简单 部署成本低 缺点: 耦合度高(维护困难、升 阅读全文
posted @ 2025-03-13 08:15 程序员Seven 阅读(978) 评论(2) 推荐(3)
摘要: 概述 如上图,设计一个软件用来进行加减计算。我们第一想法就是使用工具类,提供对应的加法和减法的工具方法。 //用于两个整数相加 public static int add(int a,int b){ return a + b; } //用于两个整数相加 public static int add(i 阅读全文
posted @ 2025-03-12 20:15 程序员Seven 阅读(70) 评论(1) 推荐(0)
摘要: 概述 备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤,当新的状态无效或者存在问题时,可以使用暂时存储起来的备忘录将状态复原,很多软件都提供了撤销(Undo)操作,如 Word、记事本、Photoshop、IDEA等软件在编辑时按 Ctrl+Z 组合键时能撤销当前操作 阅读全文
posted @ 2025-03-12 20:09 程序员Seven 阅读(99) 评论(0) 推荐(0)
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 19 下一页