java技术圈 为您找到相关结果 24

proc/sys/net/ipv4/下各项的意义-技术港湾

/proc/sys/net/ipv4/icmp_timeexceed_rate这个在traceroute时导致著名的“Solaris middle star”。这个文件控制发送ICMP Time Exceeded消息的比率。 /proc/sys/net/ipv4/igmp_max_memberships主机上最多有多少个igmp (多播)套接字进行监听。 /proc/sys/net/ipv4/inet_peer_gc_maxtime求 助: Add a little explanation about the inet peer storage? Minimum interval between garbage collection passes. This interval is in e...阅读全文

博文 2019-06-12 10:47:20 51CTO博客

Elasticsearch-入门到精通-7 PUT和POST区别_云姐的博客

文章目录 1、创建document 区别使用ES自动生成id使用自定义id 2、更新document 区别PUT全量替换 POST(1)最简单的 update 请求(2)使用脚本局部更新i. 修改_source字段内容ii. 添加数组字段的值iii. 根据内容删除文档iv. 更新可能不存在的文档v. 更新和冲突 3、HTTP 协议之PUT POSTPOSTPUT用PUT还是POST 4、总结:举例,给view字段+1操作疑问 PUT 是 强制创建、全量更新操作 POST 是 创建、局部更新操作 看上去PUT和POST都可以创建、更新document,那么在创建document、更新document的时候有什么区别呢? 1、创建document 区别 使用ES自动生成id 我们如何确定是完全创...阅读全文

博文 2022-04-21 12:52:53 CSDN博客_put和post的区别

Java阻塞延迟队列DelayQueue原理及使用_Hopefully Sky的博客

阻塞队列 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,从队列中获取元素的消费者线程会一直等待直到队列变为非空。当队列满时,向队列中放置元素的生产者线程会等待直到队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。 在阻塞队列不可用时,这两个附加操作提供了4种处理方式: 抛出异常:当队列满时,插入元素会抛出IllegalStateException;返回特殊值:offer()是入队方法,当插入成功时返回true,插入失败返回false;poll()是出队方法,当出队成功时返回元素的值,队列为空时返回null一直阻塞:当队列满时,阻塞执行插入方法的线程;当队列空时,阻塞执行出队方法的...阅读全文

博文 2021-09-24 03:45:20 CSDN博客_java 延迟队列

Kafka Producer重试参数retries设置取舍【实战笔记】 - 腾讯云开发者社区

目录1.retries参数说明 2.retries使用建议 3.retries后续发展复制1.retries参数说明参数的设置通常是一种取舍,看下retries参数在版本0.11.3说明:Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error. Note that this retry is no different than if the client resent the record upon receiving the error. Allowing retries without s...阅读全文

博文 2023-02-27 12:11:25 腾讯云

kafka系列之重试机制(15)

kafka 重试机制 kafka 消息的重试机制作为kafka 生产者端的数据不丢失的重要保障,对我们学习和理解kafka 大有裨益,前面我们学习kafka 生产者的时候,了解了kafka 异步生产者的Callback 机制,合理使用Callback机制也可以保证我们生产者端的数据不丢失,但是Callback我们往往是在重试机制之后使用的,也会是说重试之后依然失败的情况下,可以作为我们生产者端最后的保障。 重试源码 首先我们从KafkaProducer的send 方法入手我们看到其实客户端是不会直接发送数据的,而是将其加入到了一个缓存队列里面去,实例化KafkaProducer会实例RecordAccumulator,RecordAccumulator维护了一个Map,key为不同的主题和p...阅读全文

博文 2023-02-27 12:06:56 掘金

kafka是如何保证消息不丢失的 - 腾讯云开发者社区

今天和大家聊一下,kafka对于消息的可靠性保证。作为消息引擎组件,保证消息不丢失,是非常重要的。 那么kafka是如何保证消息不丢失的呢?前提条件任何消息组件不丢数据都是在特定场景下一定条件的,kafka要保证消息不丢,有两个核心条件。第一,必须是已提交的消息,即committed message。kafka对于committed message的定义是,生产者提交消息到broker,并等到多个broker确认并返回给生产者已提交的确认信息。而这多个broker是由我们自己来定义的,可以选择只要有一个broker成功保存该消息就算是已提交,也可以是令所有broker都成功保存该消息才算是已提交。不论哪种情况,kafka只对已提交的消息做持久化保证。第二,也就是最基本的条件,虽然kafka集...阅读全文

博文 2023-02-27 12:28:51 腾讯云

seata file模式引入springboot项目步骤(不使用注册中心) - 秋雨清笛

seata的官方文档如下 http://seata.io/zh-cn/docs/overview/what-is-seata.html seata-server的启动和配置 从官方下载seata-server安装包https://github.com/seata/seata/releases,下载完成后解压该安装包 tar -xvf seata-server-1.4.2.tar.gz 在配置文件中修改,设置部署模式为file模式 cd seata-server-1.4.2/confvim file.conf 配置文件如下 ## transaction log store, only used in seata-serverstore { ## store mode: file、db、redi...阅读全文

博文 2023-12-19 11:14:12 博客园

谈阿里核心业务监控平台SunFire的技术架构

谈阿里核心业务监控平台SunFire的技术架构 2017-01-01 19:00 相关阅读: 在2016年双11全球购物狂欢节中,天猫全天交易额1207亿元,前30分钟每秒交易峰值17.5万笔,每秒支付峰值12万笔。承载这些秒级数据背后的监控产品是如何实现的呢?接下来本文将从阿里监控体系、监控产品、监控技术架构及实现分别进行详细讲述。 阿里有众多监控产品,且各产品分工明确,百花齐放。整个阿里监控体系如下图: 集团层面的监控,以平台为主,全部为阿里自主研发(除引入了第三方基调、博睿等外部检测系统,用于各地CDN用户体验监控),这些监控平台覆盖了阿里集团80%的监控需求。 此外,每个事业群均根据自身特性自主研发了多套监控系统,以满足自身特定业务场景的监控需求,如广告的GoldenEye、菜鸟的棱...阅读全文

博文 2024-07-10 19:28:45 www.sohu.com

基于快照的异步远程复制介绍

本文分享自天翼云开发者社区《基于快照的异步远程复制介绍》,作者:l****n1、简介:本文介绍了基于RBD快照的异步远程复制技术2、概念介绍:异步远程复制:通过定时的将业务端的数据同步到备份端,从而实现数据的备份和灾难恢复的技术;RBD快照:RBD快照是RBD在某一时刻全部数据的只读镜像,可以保留某个时间点的状态历史;同步快照:当发起定时拷贝任务时,主端(即业务端)创建的RBD快照作为此次同步任务的同步快照;一致性快照:当主从拷贝任务完成后,对从端创建RBD快照,此时从端的数据与主端的同步快照的时间点数据一致,此时的快照称为一致性快照;3、工作原理:创建移步远程复制pair对:选择跨region或者跨AZ的大小一致的卷,建立主从异步远程复制关系对;异步远程复制分为主端设备与从端设备,主端设备...阅读全文

博文 2024-07-16 16:12:00 Tianyiyun

阿里万亿交易量级下的秒级监控

我要讲的内容是偏工程的:怎么在万亿交易量下实现足够实时的秒级监控? 先介绍一下监控系统 Sunfire,它是阿里集团的业务监控系统,前身是蚂蚁的 xflush, 支持应用标准化监控,如操作系统,JVM,中间件等。除此之外还有更强大的日志监控能力,大多数业务的监控指标都从应用的日志中抽取。目前覆盖了集团几乎所有 BU 和绝大多数业务,每分钟处理 TB 级日志。 下面将从以下四个方面进行讲解: 架构规模与挑战技术选择方向 一、架构 每分钟处理这么大的TB级日志量,我们是怎么设计架构去实现它的呢? 1.1、传统日志监控 上图是传统的日志监控,现在大多数监控平台采用的一个方案。Agnet 检测日志变化增量推送,经过消息中间件如 kafka,流式计算引擎如 Jstorm/flink 去消费 kafka...阅读全文

博文 2024-07-17 16:54:32 阿里云开发者社区

分布式系统心跳机制(一)

本文分享自天翼云开发者社区《分布式系统心跳机制(一)》,作者:白杨分布式系统架构当前大部分分布式系统架构如下图:​有一个中心节点来存储集群元数据和管理work儿节点,中心节点采用主备模式来实现HA。当中心节点主故障后,备节点接管业务成为主节点。我们下面讨论的心跳机制就是基于这种分布式架构而设计的。心跳设计目标:1.master控制节点的切换,不可以影响server的心跳。2.server可以感知到master的每一次切换。3.master在任意场景下都不会丢失server故障的事件。4.心跳可以作为其它控制消息是否需要重试的依据。心跳Clien端设计:​a.worker2启动后只有master的列表,并不知道哪个是leader,因此先广播bootstrap信息。b.只有leader节点响应b...阅读全文

博文 2024-07-31 11:25:40 Tianyiyun

微服务架构-海量数据商用短链平台项目大课

微服务架构-海量数据商用短链平台项目大课​获课:微服务架构-海量数据商用短链平台项目大课获取ZY↑↑方打开链接↑↑微服务架构(Microservices Architecture)是一种设计软件应用程序的方法,它将应用程序划分为一组独立的、可互相调用的服务。每个服务对应一个具体的业务功能,它们可以独立部署和扩展,并且每个服务都有自己的数据存储。这种架构风格与传统的单体架构(Monolithic Architecture)相比,具有以下几个显著特点:微服务的优势:独立性:每个微服务可以独立开发、测试、部署和扩展。灵活性:可以使用不同的语言和技术栈来开发不同的微服务。容错性:服务之间隔离性好,一个服务的故障不会影响到整个系统。易于理解和维护:由于每个服务相对较小,因此更易于理解和维护。可伸缩性:...阅读全文

极客时间-初级Go工程师训练营(完结)

极客时间-初级Go工程师训练营(完结)​获课:aixuetang点xyz/6141/获取ZY↑↑方打开链接↑↑本课程介绍了榜单模型与分布式任务调度榜单模型与分布式任务调度是两个紧密相关的概念,尤其是在处理大规模数据和高并发请求的场景中。以下是对这两个概念的详细解析:榜单模型榜单模型通常用于处理各种排名、评分或统计数据的展示,如热门歌曲榜、电影票房榜、游戏排行榜等。在构建榜单模型时,需要考虑以下几个关键因素:数据源:榜单的数据来源至关重要。它可能来自用户行为数据、第三方API、数据库等。确保数据的准确性和实时性是构建高质量榜单的基础。算法:根据业务需求选择合适的算法来计算排名。例如,基于点击量、播放量、评分、下载量等多种指标的综合排名算法。实时性:对于某些榜单,如实时热搜榜,需要实现高实时性的...阅读全文

深入Go底层原理,重写Redis中间件实战(完结)

​​​​​​​​获课:weiranit.fun/1997/获取ZY↑↑方打开链接↑↑一、项目背景与目标随着分布式系统的广泛应用,Redis作为高性能的键值存储系统,在缓存、会话管理、消息队列等多个场景中发挥着重要作用。然而,直接使用Redis客户端库可能无法满足复杂业务场景下的需求,如连接池管理、命令重试、负载均衡等。因此,开发一个自定义的Redis中间件显得尤为重要。本项目旨在通过深入Go语言底层原理,重写一个功能强大、性能优越的Redis中间件,以满足复杂业务场景下的需求。二、Go语言底层原理探究在重写Redis中间件之前,我们需要对Go语言的底层原理有一定的了解,这包括但不限于以下几个方面:内存管理:了解Go语言的垃圾回收机制、内存分配策略等,对于优化中间件的性能和内存使用至关重要。并...阅读全文

博文 2025-02-21 13:02:21 wlkq258

Dubbo源码分析:小白入门篇

​获课:youkeit.xyz/13677/获取ZY↑↑方打开链接↑↑Dubbo 的集群容错机制是其核心特性之一,旨在提高分布式服务调用的可靠性和稳定性。通过集群容错机制,Dubbo 能够有效地处理服务调用过程中可能出现的各种异常情况,如服务不可用、网络故障等,从而保证系统的整体可用性和健壮性。以下是对 Dubbo 集群容错机制的详细解释:1. 集群容错的基本概念集群容错是指在分布式系统中,当某个服务提供者节点出现故障时,调用方(消费者)能够自动切换到其他可用的服务提供者节点,从而保证服务的连续性和可用性。Dubbo 提供了多种集群容错策略,以适应不同的应用场景和需求。2. 集群容错的主要组件Cluster 接口:定义了集群容错的基本行为,是所有集群容错策略的顶层接口。源码路径:dubbo-...阅读全文

博文 2025-03-02 10:52:01 13933033762

TiDB 和 HBase 副本机制及其故障转移流程

--- ### **一、TiDB 与 HBase 的副本机制对比** #### **1. TiDB 的副本机制(基于 Raft 协议)** - **核心原理**: - TiDB 的存储层 TiKV 采用 **Raft 共识算法**,每个数据 Region 默认维护 **3 个副本**,分布在不同的物理节点上。 - 写入时,数据通过 Raft Leader 同步到 Follower 副本,多数派(N/2 + 1)确认后提交,保证强一致性。 - 副本角色:Leader(处理读写)、Follower(同步数据)、Learner(只读异步副本)。 - **特点**: - **自动故障转移**:Leader 故障时,剩余副本通过 Raft 选举新 Leader。 - **数据强一致**:所有读请求默认...阅读全文

博文 2025-03-13 19:56:29 zhidiantech

偏向锁和轻量级锁

--- ### 一、设计目标的差异 | **锁类型** | **核心目标** | **适用场景** | |------------|-----------------------------------------------------------------------------|-----------------------------------------------------------------------------| | **偏向锁** | **消除无竞争场景下的同步开销**,通过记录首次获得锁的线程 ID,后续无需任何同步操作 | 单线程重复访问同步代码(如工具类单例初始化) | | **轻量级锁** | **减少轻量竞争场景的互斥量开销**,通过 CAS 自旋避免...阅读全文

博文 2025-03-19 15:51:00 zhidiantech

MQ大牛成长课–从0到1手写分布式消息队列中间件(言果fx)

获课:789it.top/5291/获取ZY↑↑方打开链接↑↑MQ基础知识详解:为手写分布式消息队列打下坚实基础1. 消息队列的核心概念消息队列(Message Queue, MQ)是一种在分布式系统中用于异步通信的中间件。它允许应用程序通过发送和接收消息来进行通信,从而实现解耦、异步处理和负载均衡。1.1 消息(Message)定义:消息是通信的基本单位,通常包含数据和元数据(如消息ID、时间戳等)。格式:可以是文本、JSON、XML等格式。1.2 队列(Queue)定义:队列是消息的存储容器,遵循先进先出(FIFO)的原则。类型:点对点队列(Point-to-Point)和发布/订阅队列(Publish/Subscribe)。1.3 生产者(Producer)定义:生产者是发送消息的应用...阅读全文

Dubbo集群容错策略

Dubbo 的集群容错策略是其分布式服务治理的核心能力之一,通过灵活配置不同的容错机制,确保服务调用在部分节点故障时仍能维持系统稳定性和可用性。 --- ### **1. Failover Cluster(失败自动切换)** • **定义**:默认的容错策略,当服务调用失败时自动切换到其他可用节点重试,直至成功或达到最大重试次数。 • **适用场景**: • **读操作**(如数据查询),因读操作通常幂等,重试不会导致数据不一致。 • 需要高可用性的服务,例如电商系统中的订单查询服务。 • **配置参数**:通过 `retries` 设置重试次数(不含首次调用),例如 `` 表示最多尝试 3 次调用。 • **实现细节**: • 调用...阅读全文

MQ大牛成长课–从0到1手写分布式消息队列中间件(言果fx)

获课:quangneng.com/5274/获取ZY↑↑方打开链接↑↑消息分派是消息系统中至关重要的环节,它决定了消息如何从生产者传递到消费者,并确保消息传递的可靠性、有序性和高效性。在诸多消息系统中,ConsumeQueue(消费队列)作为一种关键的数据结构,扮演着消息分派核心的角色。以下是对ConsumeQueue的深入分析:一、ConsumeQueue的定义与功能ConsumeQueue,即消费队列,是消息系统中用于暂存待消费消息的一种数据结构。它通常与消息存储(如Kafka中的日志文件)和消息索引(如偏移量索引)配合使用,以实现高效的消息分派和消费。ConsumeQueue的主要功能包括:消息暂存:将生产者发送的消息暂存在队列中,等待消费者进行消费。顺序消费:保证消费者按照消息生产的...阅读全文

博文 2025-03-18 14:57:42 qwerty

Redisson 分布式锁的退避策略和事件监听

Redisson 分布式锁在无法立即获取锁时,其内部实现并非采用无脑的 `while` 循环轮询,而是通过 **退避策略 + 事件监听** 的组合机制优化性能,避免 CPU 资源浪费。 --- ### 一、锁获取失败的重试策略 1. **初次尝试失败后的退避机制** • 当首次获取锁失败时,Redisson 会基于 **随机退避算法** 等待一段时间再重试。例如,设置最大重试次数和最小/最大退避时间(如 `100ms~3s`),避免多个客户端同时竞争导致“惊群效应”。 • **退避公式**:`delay = baseDelay + random.nextInt(maxDelay - baseDelay)`,其中 `baseDelay` 是基础等待时间,`random` 生成随机增量。 2. ...阅读全文

博文 2025-03-28 17:55:18 dalang

如何保障Redis与数据库双写一致性

--- ### **1. 先更新数据库,再删除缓存(推荐方案)** #### **核心流程** 1. **更新数据库**:优先完成数据库的写入操作,确保数据持久化。 2. **删除缓存**:立即删除Redis中对应的缓存数据,使后续请求触发缓存回填。 #### **优点** • **减少不一致窗口期**:数据库更新成功后,缓存被删除,下次读请求会重新加载最新数据。 • **避免并发写冲突**:无缓存更新操作,降低因并发更新导致的数据错乱风险。 #### **潜在问题** • **缓存删除失败**:若删除缓存失败,需引入重试机制(如消息队列)或设置缓存过期时间兜底。 • **短暂不一致**:在删除缓存后、数据库更新前的极短时间窗口内,可能读到旧数据。 #### **适用场景** • **写少读...阅读全文

博文 2025-03-25 19:58:24 dalang

MySQL并发更新中的锁机制

MySQL在高并发更新场景下的锁机制和锁等待问题确实可能导致CPU使用率飙升,但具体机制与“sleep”或“无限重试”的逻辑有所不同。 --- ### 一、MySQL并发更新中的锁机制 1. **锁等待与阻塞机制** MySQL的InnoDB引擎采用行级锁机制,当多个事务并发更新同一条记录时,第一个获取锁的事务会持有排他锁(X Lock),后续事务会进入**锁等待队列**,而非通过`while true`循环主动抢锁。等待期间事务处于阻塞状态,由数据库内核调度唤醒,而非应用层主动轮询。 2. **等待超时与死锁处理** • 默认情况下,InnoDB设置锁等待超时参数`innodb_lock_wait_timeout`(默认50秒),超时后事务自动回滚并抛出错误。 • 若检测到死锁(如事务A等...阅读全文

博文 2025-03-30 22:00:22 dalang

深入拆解消息队列47讲

深入拆解消息队列47讲深入拆解消息队列:架构、原理与应用实践一、消息队列概述消息队列(Message Queue)作为分布式系统中的核心中间件,“获课”在现代软件架构中扮演着"系统血管"的角色,itxt.top/4367/负责在各个服务组件之间高效、可靠地传递消息。1.1 什么是消息队列消息队列是一种遵循"先进先出"(FIFO)原则的通信机制,允许应用程序通过写入和读取队列中的消息来进行异步通信。生产者和消费者不需要同时在线,也不需要直接交互,从而实现了系统间的解耦。1.2 消息队列的核心价值解耦:消除系统间的直接依赖异步:非阻塞式通信提高响应速度削峰:缓解突发流量对系统的冲击可靠:确保消息不丢失、不重复扩展:便于系统水平扩展1.3 典型应用场景电商系统中的订单处理流程日志收集与分析系统即时...阅读全文

博文 2025-03-31 09:45:41 xiao_wen123