- 博客(407)
- 收藏
- 关注
原创 CompletableFuture#getNow 源码解析&最佳实践
的结果,同时允许指定一个默认值用于未完成的情况。总之,这个方法提供了一种非阻塞的方式来获取。
2025-01-23 09:21:15
407
原创 CompletableFuture#allOf 源码解析&最佳实践
使用等待多个并行任务完成结合thenApply或thenAccept处理所有任务的结果使用或handle处理可能发生的异常考虑设置超时,避免无限期等待根据需要,将allOf与其他 CompletableFuture 方法结合使用注意内存使用,特别是处理大量任务时考虑使用自定义的线程池来控制并发度这些示例展示了的多种用法,涵盖了常见的并发编程场景。根据具体需求,你可以选择合适的模式并进行适当的调整。
2025-01-23 08:48:56
1002
原创 总交易额(GTV)概念
通过这个公式,企业可以更精确地理解和预测其总交易额,并有针对性地制定提升策略。流量×转化率×复购率×笔单价=GTV。转化率:表示有多少比例的访问用户最终完成了购买。复购率:表示平均每个用户在一定时期内购买的次数。总订单数×笔单价=总交易额(GTV)购买用户数×复购率=总订单数。流量:代表访问您的平台的用户总数。流量×转化率=购买用户数。笔单价:每个订单的平均金额。
2025-01-19 15:39:50
238
原创 jvm G1 垃圾收集日志分析示例(GC)
这次GC效果良好,释放了大量内存(从4.5GB降至1.8GB)。GC暂停时间(44.7ms)低于目标暂停时间(100ms),表现优秀。内存使用模式看起来正常,没有明显的内存泄漏迹象。G1GC的预测和实际表现接近,显示其工作正常。Metaspace使用稳定,没有增长,这是个好现象。这个GC日志显示系统运行状况良好,G1GC配置合理,能够有效管理应用的内存使用。
2025-01-19 07:53:30
1121
原创 awk 使用示例 END
这个awk命令是一个强大的数据汇总工具,能够快速计算分组数据的统计信息。它在处理日志文件、分析数值数据和生成报告等任务中非常有用。理解和使用这样的命令可以大大提高数据处理的效率。这个awk命令是一个复杂的数据处理脚本,用于计算和汇总数据。这个命令读取输入数据,按第一列分组,计算第二列的总和和平均值,最后输出每组的统计结果。在处理完所有输入后执行。
2025-01-19 07:27:42
353
原创 IntelliJ IDEA 中 Editor > General > Appearance 设置:编辑器的视觉外观和行为
这些设置可以根据个人喜好进行调整,以创建最适合您的编码环境。如果您对某个特定设置还有疑问,或者需要更详细的解释,请随时告诉我。
2024-12-26 17:01:25
1020
原创 map<Long,Long> resultCache = new HashMap<Long,Long>(1000000),100w数据存满时,粗估resultCache大约占多少内存?
Java中HashMap的内存占用取决于多个因素,包括键值对的数量、负载因子、容量以及每个对象的内存占用。对于,我们可以大致估算其内存占用。假设我们有一个,其初始容量设置为100万(1,000,000),默认负载因子为0.75。LongLongHashMap假设HashMap的容量扩展到足以容纳100万个键值对,实际容量会是大于或等于100万的最小2的幂次,即1048576(2^20)。因此,数组部分大约占用8 * 1048576 = 8388608字节(8MB)。
2024-10-31 21:49:14
980
1
原创 DTS(Data Transfer Service)概念简述
DTS(Data Transfer Service)是一个广泛用于数据迁移和数据同步的术语,它可以指代多种不同的技术和服务。在不同的上下文中,DTS可能有不同的含义,但通常它涉及到在不同的数据库、存储系统或应用之间迁移和同步数据。
2024-10-30 09:19:04
633
原创 TiDB 概念简述
TiDB 是一个适用于互联网和传统行业大规模数据处理需求的分布式数据库解决方案。它结合了传统 RDBMS 的易用性和 NoSQL 的可扩展性,提供了一种新的数据库技术选择。
2024-10-30 09:14:53
442
原创 TSO(Timestamp Oracle,时间戳预言机)概念简述
TSO(Timestamp Oracle,时间戳预言机)是分布式系统中用于生成全局唯一且递增的时间戳的服务或组件。在分布式数据库和事务管理系统中,TSO扮演着至关重要的角色,它确保了事务的顺序性和一致性,是实现分布式事务一致性算法(如Google的Percolator、Apache HBase中的时间戳管理等)的关键。
2024-10-30 09:07:00
585
原创 分布式架构中时钟同步方案
在客户端和服务器端交互的过程中,这四个时间戳(T1, T2, T3, T4)来计算网络延迟(Delay)和时钟偏差(Offset)。在分布式架构中,由于网络延迟、不同机器的时钟偏差等因素,保持系统内各个节点之间的时钟同步是一个挑战。时钟同步对于事务处理、日志记录、数据一致性等多个方面都至关重要。
2024-10-30 08:31:52
856
原创 Redis 客户端简述
不同的Redis客户端根据其支持的编程语言、设计理念和实现机制有着不同的特点、优缺点。选择合适的客户端通常取决于项目的具体需求、开发团队的技术栈以及对性能、可用性的考量。
2024-10-23 19:51:02
1098
原创 jvm objectMonitor 源码【重量级锁源码解释】
minor version: 0 major version: 52 // Java 8 对应的版本号flags: ACC_PUBLIC, ACC_SUPER // 类的访问标志,public 类型,继承了超类Constant pool: // 常量池,存储各种常量和符号引用// 常量池条目,包括类、方法、字段引用和字符串常量等。
2024-10-23 18:05:36
1022
原创 NoSQL数据库分类简述
NoSQL数据库是一种非关系型数据库,它提供了一种存储和检索数据的机制,这种机制与传统的关系型数据库表格模型不同。NoSQL数据库设计用于大规模数据的存储和高性能的查询,特别适合于处理大量的非结构化或半结构化数据。
2024-10-19 21:28:36
607
原创 分布式事务协议Saga
通过这个示例,我们可以看到Saga模式如何在分布式系统中通过一系列本地事务和补偿事务来管理长事务,确保业务流程的最终一致性。在实际应用中,Saga的实现可能需要依赖于消息队列、事件总线或专门的Saga协调器来协调各个服务间的操作。
2024-10-19 19:44:46
634
原创 MYSQL OPTIMIZE TABLE 命令重建表和索引
是一个有用的工具,可以帮助维护和优化 MySQL 数据库表的性能。然而,由于它的操作特性,建议在低峰时段执行,并且在执行前对数据库进行备份,以防万一。
2024-10-19 16:29:20
452
原创 架构意识概述
架构意识不仅仅局限于技术层面的考虑,它还涉及到如何在团队内部和利益相关者之间进行有效沟通,以及如何在项目初期就预见并解决潜在的问题。
2024-10-19 00:04:38
1049
1
原创 异地多活架构
选择合适的异地多活部署模式需要根据业务需求、成本预算、法律法规要求以及对延迟和灾难恢复能力的具体要求来综合考虑。同城异区适合对延迟敏感的应用,跨城异地平衡了灾难恢复能力和成本,而跨国异地则为全球服务提供了最强的支持和最广的覆盖范围。优点简单易实现。性能好,不需要额外的存储或计算资源。缺点可能会丢失数据,因为较早的写入会被后来的写入覆盖。需要精确的时间同步。应用场景对数据一致性要求不高的场景,如用户个人设置。具体示例。
2024-10-18 23:49:28
577
原创 冲突自由复制数据类型(Conflict-free Replicated Data Type, CRDT)
CRDT通过设计来自动解决分布式系统中的数据冲突。状态型CRDT通过合并状态来解决冲突,而操作型CRDT通过传播和应用操作来解决冲突。两种类型的CRDT都依赖于数学属性(如幂等性、交换性和结合性)来保证数据的最终一致性,从而简化了分布式数据同步和冲突解决的复杂性。
2024-10-18 09:50:17
855
原创 Riak KV(Riak Key-Value)数据库
Riak KV(Riak Key-Value)是一个高可用、分布式、无模式的键值存储系统,属于 NoSQL 数据库。设计用于处理大量的读写操作并提供无缝的数据扩展能力。它是由 Basho Technologies 开发的,主要用于需要高可用性、容错性和水平扩展性的应用场景。Riak KV 支持多种数据类型,包括字符串、JSON 和二进制数据,使其适用于各种不同的数据存储需求。
2024-10-18 09:09:51
798
原创 G-Set(增长集合,Grow-Only Set)
由于 G-Set 是一个只增不减的集合,这意味着一旦标签被添加,它就会永久保留在集合中,适用于标签的累积和历史记录。当需要合并两个节点的计数器时,可以将两个 G-Set 的元素合并到一个新的 G-Set 中,这个新的 G-Set 包含了所有唯一的阅读事件。当需要同步或合并两个节点的在线用户集合时,可以简单地将两个 G-Set 的元素合并到一个新的 G-Set 中。当需要同步或合并两个节点的标签集合时,可以简单地将两个 G-Set 的元素合并到一个新的 G-Set 中。
2024-10-17 08:57:15
1490
原创 线程池最优线程数计算公式
这个公式是用来估算最佳线程数的一种方法,通常被称为"线程数计算公式"或"最优线程数计算公式"。让我们来解析一下这个公式:线程数 = CPU核数 * CPU利用率 * (1 + 等待时间/计算时间)CPU核数:物理CPU核心的数量CPU利用率:通常在0.8-0.9之间,表示CPU的期望利用率等待时间(W):线程等待时间,如I/O操作时间计算时间(C):线程实际运行计算的时间这个公式考虑了以下因素:CPU核数:更多的核心可以支持更多的并发线程。
2024-10-15 23:32:21
950
原创 实时协作编辑的技术:操作转换(Operational Transformation, OT)算法
确保操作的定义明确,包括操作类型、位置和内容。
2024-10-13 16:36:22
1046
原创 并行与并发
而并行则依赖于多核处理器的能力,通过真正的同时处理来减少完成任务所需的总时间。在设计系统和应用时,理解并合理利用这两种概念,可以帮助我们更有效地利用计算资源,提高系统的性能和响应速度。这并不意味着任务在同一时刻发生,而是指在单个处理器上,通过任务之间的快速切换,使得看起来任务是同时执行的。并发关注的是如何有效地管理和调度多个同时处于活动状态的任务,以提高资源的利用率和系统的吞吐量。在单核处理器上,尽管我们不能真正同时处理多个任务,但我们可以在多个任务之间进行切换,给人一种“同时处理”的错觉。
2024-10-11 13:53:26
418
原创 跨站请求伪造(CSRF,Cross-Site Request Forgery)
由于跨站请求通常无法携带自定义头信息,因此检查请求中是否包含自定义头可以作为一种防御手段。使用自定义请求头是一种防御跨站请求伪造(CSRF)攻击的技术。这种方法的基本思想是在客户端的请求中添加一个自定义的HTTP头部(Header),服务器端检查这个头部以验证请求的合法性。由于跨站请求通常无法设置自定义头部,这为服务器提供了一种简单的验证机制。
2024-10-10 13:40:52
2113
1
原创 CPU 和处理核心(Core)中间有3个缓存
CPU和处理核心之间的关系是整体与部分的关系。随着多核技术的发展,现代CPU通过包含多个处理核心来提高其并行处理能力和整体性能,同时在核心之间实现资源的有效共享和独立使用。这种架构的进步使得计算机能够更高效地运行复杂和资源密集型的应用程序。
2024-10-10 07:37:52
1397
原创 xss 跨站脚本攻击
XSS 是一种注入类型的攻击,攻击者将恶意脚本注入到受信任的网站中。当其他用户访问该网站时,这些脚本会在用户的浏览器中执行。
2024-10-09 21:23:37
977
原创 CDN(Content Delivery Network,内容分发网络)
CDN(Content Delivery Network,内容分发网络)是一种分布式网络架构,旨在通过将内容分散到全球各地的服务器上,以提高网站性能、可靠性和可用性。
2024-10-09 21:05:18
703
原创 Linux系统中显示有关CPU架构的信息 :lscpu
考虑到系统有2个NUMA节点,可以优化操作系统和应用程序,确保它们能够有效利用NUMA架构,比如通过将进程和它们访问的内存绑定到同一个NUMA节点上,减少跨节点的内存访问延迟。总之,CPU核心的在线和离线状态既可以是由系统自动管理的,也可以通过手动设置来控制,这取决于> 系统的配置、管理员的需求和操作系统的支持情况。这种手动控制CPU核心的在线和离线状态的能力,允许系统管理员根据需要优化系统的性能和能耗。CPU的在线和离线状态可以通过系统管理操作来控制,既可以是自动的,也可以是手动设置的。
2024-10-09 08:51:23
2380
原创 负载均衡可以在网络模型的哪一层?
网络模型是用于描述网络通信过程和网络服务的抽象框架。最常见的网络模型有两种:OSI(开放式系统互联)模型和TCP/IP模型。
2024-10-03 23:35:06
1444
1
原创 preconnect 预解析
preconnect是一种浏览器优化技术,用于告诉浏览器提前与指定的域名建立连接,包括DNS解析、TCP握手和TLS协商(如果适用)。这样做可以减少客户端在请求资源时所需的往返时间(RTT),从而提高页面加载速度。
2024-10-03 12:35:07
466
原创 dns-prefetc 预解析
是一种浏览器技术,用于提前解析用户可能访问的域名的DNS,以减少用户实际请求资源时的延迟。当浏览器解析到含有指令的标签时,它会在用户点击链接或请求资源之前,提前进行DNS查询,从而在用户实际需要这些资源时,减少DNS解析所需的时间。
2024-10-03 12:34:16
543
原创 浏览器 F12 application 应用程序面板
在大多数现代浏览器中,按下 F12 键会打开开发者工具(Developer Tools),这是一个为开发者设计的强大工具集,用于调试网页和应用。在开发者工具中,“Application”(应用程序)面板提供了对网站在浏览器中存储的数据和资源的详细视图和管理能力。
2024-10-03 09:47:57
1581
原创 http cache-control
Cache-Control 是 HTTP 协议中用于控制缓存行为的重要头部字段。它定义了客户端和服务器端如何缓存资源,以及缓存的有效期。
2024-10-03 08:43:17
990
Scala入门教程文档
2023-10-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人