异步http和同步http原理和差异

开发服务器端程序时,一种常见的需求是,通过向另一个http服务器发送请求,获得数据。最常规的作法是使用同步http请求的方式,过程如下 这种方式简单好用,但是在高并发场景下有缺陷。在单线程环境下,程序发送http请求是串行的,也就是第一个请求未完成的情况下,第二个请求发不出去,就像一条单行车道,车子只能一辆一辆的过。 为此我们会引入多线程提高并发性,然而多线程对并发发送http请求的提升也是有限的,比如8个线程同时只能发送8个请求,假如每个请求从发送到得到结果的时间是1秒,那么8个线程每秒钟也只...阅读全文

MySQL之谓词下推 - 等不到的口琴

MySQL之谓词下推 什么是谓词 在SQL中,谓词就是返回boolean值即true或者false的函数,或是隐式转换为boolean的函数。SQL中的谓词主要有 LKIE、BETWEEN、IS NULL、IS NOT NULL、IN、EXISTS 谓词下推的基本思想即: 将过滤表达式尽可能移动至靠近数据源的位置,以使真正执行时能直接跳过无关的数据。 传统数据库中的谓词下推: 在传统数据库的查询系统中谓词下推作为优化手段很早就出现了,谓词下推的目的就是通过将一些过滤条件尽可能的在最底层执行可以减...阅读全文

博客园 2020-12-22 21:19 博客园

Kafka和RocketMQ底层存储之那些你不知道的事 - yes的练级攻略

大家好,我是yes。 我们都知道 RocketMQ 和 Kafka 消息都是存在磁盘中的,那为什么消息存磁盘读写还可以这么快?有没有做了什么优化?都是存磁盘它们两者的实现之间有什么区别么?各自有什么优缺点? 今天我们就来一探究竟。 先说下快的主要原因就是顺序读写、mmap、sendfile。我们先来看看这几点,然后再盘一下 RocketMQ 和 Kafka是如何应用的。 存储介质-磁盘 一般而言消息中间件的消息都存储在本地文件中,因为从效率来看直接放本地文件是最快的,并且稳定性最高。毕竟要是放类...阅读全文

博客园 2020-07-26 10:58 博客园

跟我学RocketMQ之消息持久化原理与Mmap

文章目录 1. RocketMQ消息持久化(消息不丢失)原理1.1. 如何保证消息写入CommitLog文件性能接近内存写入性能?1.2. RocketMQ对PageCache的使用(Mmap)1.3. RocketMQ消息刷盘1.3.1. 同步刷盘1.3.2. 异步刷盘2. Mmap内存映射及RocketMQ中的应用2.1. 其他零拷贝策略2.2. 内存预映射机制2.3. 内存预热2.4. 总结3. 参考文献 大家好,跟我学RocketMQ系列并没有结束。随着笔者对RocketMQ的学习与感悟...阅读全文

朝·闻·道 2020-02-11 00:00 朝·闻·道

使用O_DIRECT/O_DIRECT_NO_FSYNC来提升MySQL性能 – 运维那点事

12345678910111213141516171819202122232425262728293031323334 # 清理缓存$ echo 3 > /proc/sys/vm/drop_caches$ free -h              total        used        free      shared  buff/cache   availableMem:            62G        1.1G         61G        9.2M      ...阅读全文

www.ywnds.com 2020-05-06 00:00 www.ywnds.com

不同的类加载器加载的类和方法,可以互相调用吗

### **1. 类加载器的命名空间与类型隔离** - **命名空间隔离**:每个类加载器拥有独立的命名空间。即使两个类的全限定名相同,若由不同的类加载器加载,JVM会将其视为**完全不同的类型**。 - **类型转换限制**:若尝试跨类加载器进行类型转换(如 `instanceof` 或强制类型转换),会抛出 `ClassCastException`,因为二者在JVM中属于不同的类。 ### **2. 跨类加载器调用的条件** #### **(1) 父子类加载器关系** - ...阅读全文

java技术圈 2025-04-09 00:20:18 dalang

高性能环形队列Disruptor

你的观察非常敏锐!确实,**链表实现的队列(如 `LinkedList`)不需要像数组队列那样处理数据搬移问题**,但这并不代表环形队列(通常基于数组实现)没有独特的优势。两者的核心区别在于 **底层数据结构的选择**,而不同数据结构在不同场景下的性能、内存占用、访问效率等差异显著。下面通过几个关键点详细对比: --- ### **1. 内存占用与碎片** - **链表队列(如 `LinkedList`)**: - 每个节点需要存储 **数据 + 两个指针(前驱和后继)*...阅读全文

java技术圈 2025-04-08 16:08:37 dalang

RoaringBitmap的压缩原理

Roaring Bitmap 的压缩原理可以用一个 **“分抽屉整理物品”** 的比喻来理解,它的核心是通过 **“分块 + 动态压缩”** 的方式,针对不同数据特征选择最省空间的存储方法。 --- ### **1. 分块思想:把大问题拆成小问题** - **32位数拆成高16位和低16位** 想象你要管理一个超大的仓库(存放所有32位整数),直接管理整个仓库会非常麻烦。于是你把仓库分成 **65536个小抽屉**(因为高16位有 `2^16=65536`种可能),每个抽...阅读全文

java技术圈 2025-04-08 15:23:23 dalang

AI 摄影变现:ComfyUI 可变现项目全流程实战|已完结

获课♥》jzit.top/14028/ComfyUI的核心技能及生态体系可以归纳为以下几个方面:一、核心技能节点化工作流架构ComfyUI采用节点化工作流架构,将深度学习模型的每个操作步骤模块化,用户可以通过简单的拖放操作,将这些节点按需组合成完整的生成工作流。每个节点代表一个独立的处理步骤,如噪声处理、采样、图像解码等,这种设计使得操作更加直观、易于理解。实时可视化每一个节点都可以实时显示其处理结果,用户可以在工作流的每一步进行调整并即时查看效果。这种高度可视化的设计帮助用户在图像生成过程中精...阅读全文

java技术圈 2025-04-08 14:26:12 ddgg

鸿蒙HarmonyOS4.0应用开发从入门到实战(完结)

鸿蒙HarmonyOS4.0应用开发从入门到实战(完结)​获课地址:jzit.top/3228/鸿蒙HarmonyOS 4.0:开启全场景智慧生态新篇章在当今万物互联的时代,操作系统作为连接数字世界与物理世界的桥梁,其重要性日益凸显。华为推出的鸿蒙HarmonyOS 4.0,不仅是技术层面的迭代升级,更是对未来智能生态的前瞻布局。本文将带您了解这一系统的主要特性与应用价值,无需代码,纯粹从用户体验和生态发展的角度进行探讨。一、分布式能力再进化HarmonyOS 4.0最核心的突破在于其分布式能力...阅读全文

java技术圈 2025-04-08 14:25:34 ddgg

大厂学院SVIP十套课程合集|百度网盘|完结无密

获课:789it.top/2018/RPC 框架核心源码深度解析一、RPC 框架概述在分布式系统中,RPC(Remote Procedure Call,远程过程调用)框架扮演着关键角色,它允许程序像调用本地函数一样调用远程服务器上的函数。RPC 框架主要解决了分布式系统中不同服务之间的通信问题,使得开发者可以更专注于业务逻辑的实现,而无需过多关注底层的网络通信细节。核心组件RPC 框架通常包含以下几个核心组件:服务注册与发现:负责管理服务的提供者和消费者信息,使得消费者能够找到对应的服务提供者。...阅读全文

java技术圈 2025-04-08 14:03:11 dvfdf

鸿蒙HarmonyOS4.0应用开发从入门到实战(完结)

鸿蒙HarmonyOS4.0应用开发从入门到实战(完结)​<<<下栽科>>>:789it.top/3228/TypeScript 基本语法核心概念(无代码版)一、TypeScript 与 JavaScript 的核心区别TypeScript(TS)是JavaScript 的超集,在 JS 基础上增加了静态类型系统,支持类型注解、接口定义、泛型等特性,最终编译为纯 JS 运行。核心目标是在开发阶段捕获类型错误,提升代码可读性和可维护性。二、基础类型系统基础数据类型any:关闭类型检查(慎用,失去 ...阅读全文

java技术圈 2025-04-08 14:02:25 dvfdf

网易云微专业-大数据开发工程师

<<<下栽科>>>:789it.top/3038/掌握大数据核心技能:从基础到精通的体系化指南大数据技术已成为数字时代的基础能力,本文将系统化梳理大数据领域的核心技能体系,帮助开发者构建完整的大数据技术栈。一、大数据技术全景图1. 大数据技术栈分层复制 ┌────────────────┐ │ 数据应用层 │ BI/AI/实时大屏 ├────────────────┤ │ 计算引擎层 │ Spark/Flink/MapReduce ├──────────────...阅读全文

java技术圈 2025-04-08 14:01:23 dvfdf

2024 鸿蒙零基础快速实战-仿抖音App开发

2024 鸿蒙零基础快速实战-仿抖音App开发仿抖音App开发:从零到一的短视频平台构建指南一、市场背景与产品定位近年来,短视频平台如抖音、TikTok等迅速崛起,“获课”改变了全球用户的娱乐和社交方式。itxt.top/5306/ 开发一款仿抖音的App不仅是一个技术挑战,更是对当前移动互联网趋势的把握。在开始开发前,需要明确:目标用户群体:年轻人为主还是全年龄段?专注垂直领域还是综合内容?核心差异化:与抖音相比,你的App将提供哪些独特价值?可能是更简洁的UI、更强的社交功能或特定的内容方向...阅读全文

java技术圈 2025-04-08 09:48:26 xiao_wen123

redis事务和使用lua脚本执行的区别

在 Redis 中,**事务(Transaction)** 和 **Lua 脚本执行** 都可以用于批量操作,但两者在实现机制、原子性保证、灵活性等方面有显著区别。 --- ### **1. 事务(Transaction)** #### **特点**: - **基于命令队列**: 通过 `MULTI` 开启事务,后续命令会进入队列(不立即执行),最后用 `EXEC` 提交执行。 - **弱原子性**: 事务中的命令按顺序执行,但 **不保证原子性**。若某条...阅读全文

java技术圈 2025-04-08 00:50:00 zhidiantech

JVM 地址对齐

--- ### **一、地址对齐的核心原因** 1. **提升CPU访问效率** 计算机硬件(如CPU)通常以固定块大小(如4字节、8字节)访问内存。若数据未对齐,CPU需要多次读取并拼接数据,导致性能下降。 **示例**:一个4字节的`int`变量若未按4字节对齐,可能跨越两个内存块,需两次读取操作。 2. **简化硬件设计** 内存对齐使硬件接口设计更简单。例如,32位CPU只需支持对齐地址的读写逻辑,避免处理非对齐地址的复杂电路设计。 ...阅读全文

java技术圈 2025-04-07 21:24:27 zhidiantech

通俗解析压缩指针的32GB寻址原理

#### **基础概念:指针压缩与地址对齐** 1. **指针压缩的作用** 在64位JVM中,普通指针占用8字节。启用压缩指针后,通过 **地址对齐** 和 **位移操作**,将指针压缩到4字节。这相当于用32位的空间存储原本需要64位的信息,节省内存占用。 2. **为什么要用8字节对齐?** JVM强制所有对象按 **8字节对齐**(类似“内存格子”的最小单位是8字节)。例如: • 对象A的起始地址可能是`0x1000`(十进制4096,是8的倍...阅读全文

java技术圈 2025-04-07 21:23:35 zhidiantech

网易云微专业-大数据开发工程师

网易云微专业-大数据开发工程师大数据开发工程师:数据洪流中的架构师与炼金术师一、职业概览:大数据工程师的使命大数据开发工程师是数字经济时代的核心建设者,“获课”负责设计、itxt.top/3038/ 构建和维护能够处理海量数据的基础设施与管道。根据IDC预测,到2025年全球数据总量将达到175ZB,而能够有效挖掘数据价值的大数据工程师已成为各行业竞相争夺的关键人才。核心职责矩阵:复制数据采集 → 数据存储 → 数据处理 → 数据分析 → 数据应用 │ │ ...阅读全文

java技术圈 2025-04-07 16:02:11 xiao_wen123