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

Nagle算法-

说明:本文是最近项目上使用tcp时遇到的问题找到的原因,参考了网络上的几篇文章整理出来,如有版权问题,请留言。 Nagle 算法用于对缓冲区内的一定数量的消息进行自动连接。该处理过程(称为Nagling),通过减少必须发送的封包的数量,提高了网络应用程序系统的效率。 **1. ** Nagle算法的规则 (可参考tcp_output.c文件里tcp_nagle_check函数注释): 1)如果包长度达到MSS(MSS是最大分段大小Maxitum Segment Size ,MTU是最大传输单元Maxitum Transmission Unit),则允许发送; 2)如果该包含有FIN,则允许发送; 3)设置了TCP_NODELAY选项,则允许发送; 4)未设置TCP_CORK选项时,若所有发出...阅读全文

博文 2021-11-05 07:39:41 TCP缓冲区管理算法

Skip List--跳表(全网最详细的跳表文章没有之一)

登录注册写文章首页下载APPIT技术抽奖Skip List--跳表(全网最详细的跳表文章没有之一)fanrui关注赞赏支持Skip List--跳表(全网最详细的跳表文章没有之一)跳表是一种神奇的数据结构,因为几乎所有版本的大学本科教材上都没有跳表这种数据结构,而且神书《算法导论》、《算法第四版》这两本书中也没有介绍跳表。但是跳表插入、删除、查找元素的时间复杂度跟红黑树都是一样量级的,时间复杂度都是O(logn),而且跳表有一个特性是红黑树无法匹敌的(具体什么特性后面会提到)。所以在工业中,跳表也会经常被用到。废话不多说了,开始今天的跳表学习。 通过本文,你能 get 到以下知识: 什么是跳表? 跳表的查找、插入、删除元素的流程 跳表查找、插入、删除元素的时间复杂度 跳表插入元素时,如何动态...阅读全文

博文 2021-08-17 07:25:32 简书

【Netty】(8)---理解ChannelPipeline - 雨点的名字

ChannelPipeline ChannelPipeline不是单独存在,它肯定会和Channel、ChannelHandler、ChannelHandlerContext关联在一起,所以有关概念这里一起讲。 一、ChannelHandler 1、概念 先看图 ChannelHandler下主要是两个子接口 ChannelInboundHandler(入站): 处理输入数据和Channel状态类型改变。 适配器: ChannelInboundHandlerAdapter(适配器设计模式) 常用的: SimpleChannelInboundHandler ChannelOutboundHandler(出站): 处理输出数据 适配器: ChannelOutboundHandlerAdapter...阅读全文

博文 2021-09-02 12:29:43 博客园

MySQL中IN子查询会导致无法使用索引 - MSSQL123

今天看到一个博客园的一篇关于MySQL的IN子查询优化的案例,一开始感觉有点半信半疑(如果是换做在SQL Server中,这种情况是绝对不可能的,后面会做一个简单的测试。)随后动手按照他说的做了一个表来测试验证,发现MySQL的IN子查询做的不好,确实会导致无法使用索引的情况(IN子查询无法使用所以,场景是MySQL,截止的版本是5.7.18) MySQL的测试环境 测试表如下 create table test_table2 ( id int auto_increment primary key, pay_id int, pay_time datetime, other_col varchar(100) ) 建一个存储过程插入测试数据,测试数据的特点是pay_id可重复,这里在存储过程处理...阅读全文

博文 2021-02-24 06:23:47 博客园

JDK 9学习笔记 - (2)能屈能伸的String

背景String作为JDK最核心的数据类型之一,非常有必要专门学习一下,重点关注这4个文件jdk/src/java.base/share/native/libjava/String.cjdk/src/java.base/share/classes/java/lang/String.javajdk/src/java.base/share/classes/java/lang/StringLatin1.javajdk/src/java.base/share/classes/java/lang/StringUTF16.java存储无论是何种语言的何种实现,String本质上都是字节序列,所有可能的字符加起来就构成了字符集,给字符集中每个字符一个序号就是字符编码,使用最广泛的就是Unicode了,它几...阅读全文

博文 2020-06-11 04:52:36 知乎

聊聊MyBatis缓存机制

前言MyBatis是常见的Java数据库访问层框架。在日常工作中,开发人员多数情况下是使用MyBatis的默认缓存配置,但是MyBatis缓存机制有一些不足之处,在使用中容易引起脏数据,形成一些潜在的隐患。个人在业务开发中也处理过一些由于MyBatis缓存引发的开发问题,带着个人的兴趣,希望从应用及源码的角度为读者梳理MyBatis缓存机制。本次分析中涉及到的代码和数据库表均放在GitHub上,地址: mybatis-cache-demo 。目录本文按照以下顺序展开。一级缓存介绍及相关配置。一级缓存工作流程及源码分析。一级缓存总结。二级缓存介绍及相关配置。二级缓存源码分析。二级缓存总结。全文总结。一级缓存一级缓存介绍在应用运行过程中,我们有可能在一次数据库会话中,执行多次查询条件完全相同的S...阅读全文

博文 2020-11-02 07:13:23 美团技术团队

淘宝分布式NOSQL框架:Tair - 如果的事

Tair 分布式K-V存储方案 tair 是淘宝的一个开源项目,它是一个分布式的key/value结构数据的解决方案。 作为一个分布式系统,Tair由一个中心控制节点(config server)和一系列的服务节点(data server)组成, config server 负责管理所有的data server,并维护data server的状态信息;为了保证高可用(High Available),config server可通过hearbeat 以一主一备形式提供服务; data server 对外提供各种数据服务,并以心跳的形式将自身状况汇报给config server;所有的 data server 地位都是等价的。 tair集群的基本概念: configID,唯一标识一个tair集群...阅读全文

博文 2020-11-02 06:38:49 博客园

30张图解: TCP 重传、滑动窗口、流量控制、拥塞控制 - 小林coding

前言 前一篇「硬不硬你说了算!近 40 张图解被问千百遍的 TCP 三次握手和四次挥手面试题」得到了很多读者的认可,在此特别感谢你们的认可,大家都暖暖的。 来了,今天又来图解 TCP 了,小林可能会迟到,但不会缺席。 迟到的原因,主要是 TCP 巨复杂,它为了保证可靠性,用了巨多的机制来保证,真是个「伟大」的协议,写着写着发现这水太深了。。。 本文的全部图片都是小林绘画的,非常的辛苦且累,不废话了,直接进入正文,Go! 正文 相信大家都知道 TCP 是一个可靠传输的协议,那它是如何保证可靠的呢? 为了实现可靠性传输,需要考虑很多事情,例如数据的破坏、丢包、重复以及分片顺序混乱等问题。如不能解决这些问题,也就无从谈起可靠传输。 那么,TCP 是通过序列号、确认应答、重发控制、连接管理以及窗口控...阅读全文

博文 2021-08-26 04:09:30 博客园

多个单列索引和联合索引的区别详解_数据库_Abysscarry的博客

背景: 为了提高数据库效率,建索引是家常便饭;那么当查询条件为2个及以上时,我们是创建多个单列索引还是创建一个联合索引好呢?他们之间的区别是什么?哪个效率高呢?我在这里详细测试分析下。 一、联合索引测试 注:Mysql版本为 5.7.20 创建测试表(表记录数为63188): CREATE TABLE `t_mobilesms_11` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `userId` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '用户id,创建任务时的userid', `mobile` varchar(24) NOT NULL D...阅读全文

博文 2020-04-21 04:36:55 CSDN博客

tcpdump抓包规则命令大全-kxt314

说是大全其实我列取得只是一些常用的命令与大家分享。 下面的例子全是以抓取eth0接口为例,如果不加”-i eth0”是表示抓取所有的接口包括lo。 1、抓取包含10.10.10.122的数据包 # tcpdump -i eth0 -vnn host 10.10.10.122 2、抓取包含10.10.10.0/24网段的数据包# tcpdump -i eth0 -vnn net 10.10.10.0/24 3、抓取包含端口22的数据包# tcpdump -i eth0 -vnn port 22 4、抓取udp协议的数据包# tcpdump -i eth0 -vnn udp 5、抓取icmp协议的数据包# tcpdump -i eth0 -vnn icmp 6、抓取arp协议的数据包# tcpd...阅读全文

博文 2021-05-29 06:44:06 ChinaUnix博客

Hive内部表与外部表(外部表使用场景)_UniqueChunBlog

官网解释 Managed and External Tables By default Hive creates managed tables, where files, metadata and statistics are managed by internal Hive processes. A managed table is stored under the hive.metastore.warehouse.dir path property, by default in a folder path similar to /apps/hive/warehouse/databasename.db/tablename/. The default location can be over...阅读全文

博文 2021-11-01 12:23:34 CSDN博客

由阿里巴巴Java开发规约HashMap条目引发的故事-云栖社区

大热的《阿里巴巴Java开发规约》中有提到: 【推荐】集合初始化时,指定集合初始值大小。说明:HashMap使用如下构造方法进行初始化,如果暂时无法确定集合大小,那么指定默认值(16)即可: public HashMap (int initialCapacity) { this(initialCapacity, DEFAULT_LOAD_FACTOR); } 看到代码规约这一条的时候,我觉得是不是有点太 low 了,身为开发,大家都知道 HashMap 的原理。 什么?这个要通过插件监测?没必要吧,哪个开发不知道默认大小,何时 resize 啊,然后我和孤尽打赌随机咨询几位同学以下几个问题: HashMap 默认bucket数组多大? 如果new HashMap<>(19),bucket数组...阅读全文

博文 2020-07-14 09:57:56 阿里云

图解LinkedHashMap原理

图解LinkedHashMap原理1 前言 LinkedHashMap继承于HashMap,如果对HashMap原理还不清楚的同学,请先看上一篇:图解HashMap原理 2 LinkedHashMap使用与实现 先来一张LinkedHashMap的结构图,不要虚,看完文章再来看这个图,就秒懂了,先混个面熟: LinkedHashMap结构.png 2.1 应用场景 HashMap是无序的,当我们希望有顺序地去存储key-value时,就需要使用LinkedHashMap了。 Map hashMap = new HashMap(); hashMap.put("name1", "josan1"); hashMap.put("name...阅读全文

博文 2021-08-20 08:19:33 简书

UDP 单播、广播和多播 - Rimond_Jing

使用UDP协议进行信息的传输之前不需要建议连接。换句话说就是客户端向服务器发送信息,客户端只需要给出服务器的ip地址和端口号,然后将信息封装到一个待发送的报文中并且发送出去。至于服务器端是否存在,或者能否收到该报文,客户端根本不用管。 单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信。单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网上的主机进行通信。实际情况下,经常需要对一组特定的主机进行通信,而不是整个局域网上的所有主机,这就是多播的用途。 通常我们讨论的udp的程序都是一对一的单播程序。本章将讨论一对多的服务:广播(broadcast)、多播(multicast)。对于广播,网络中的所有主机都会接收一份数据副本。对于多播,消息只是发送到一...阅读全文

博文 2021-08-26 04:06:01 博客园

为什么用MQTT不用TCP长连接透传 | 文章

前言在接触到MQTT之后,总是会有疑问,为什么用MQTT不用TCP长连接透传?看起来【TCP长连接+私有协议透传】和【MQTT+业务主题】似乎都能达到同样的目的,甚至用MQTT会使得设备端逻辑实现、APP端逻辑实现、云端架构实现更加复杂。那么为什么物联网还要使用MQTT协议呢?一、MQTT相比于TCP长连接的优势1、协议更标准MQTT是标准的RFC协议,相比于私有协议而言更加标准。好处在于:(1)协议非常完整,能够马上用于生产。各端实现同一套协议之后,就能进行通信;私有协议还需要进行大量的验证,看有无缺陷或欠考虑的地方等。(2)协议的标准化带来大量的开源组件,降低开发难度。随着物联网+5G生态越来越好,开源组件越来越多,可以减少重复编码量。(3)标准协议利于第三方接入。当第三方设备、平台想要...阅读全文

博文 2021-08-26 07:24:00 BEWINDOWEB

Prometheus核心概念:一图了解Counter和Gauge两种数据指标类型的区别_Hugo Lei的博客

目录 1 背景 2 何为Counter类型? 2.1 Counter定义 3 何为Gauge类型? 3.1 Gauge定义 4 Counter和Gauge的对比 1 背景 Prometheus整体架构分为Server端和Exporter端,而Exporter通常是基于官方的SDK开发(例如Go SDK)。 这里要明确一个概念:数据指标类型只是Client端的一个概念,用于维护Metric的生产,以方便在业务上有所区分。 而Server端是不区分数据类型的,因为所有的数据都是一种格式,也即时间序列 Metric value, timestamp. 2 何为Counter类型? Counter是一个累计类型的数据指标,它代表单调递增的计数器。 其值只能在重新启动...阅读全文

博文 2023-01-03 02:55:22 CSDN博客_prometheus gauge

刨根问底,Kafka消息中间件到底会不会丢消息

大型互联网公司一般都会要求消息传递最大限度的不丢失,比如用户服务给代金券服务发送一个消息,如果消息丢失会造成用户未收到应得的代金券,最终用户会投诉。 为避免上面类似情况的发生,除了做好补偿措施,更应该在系设计的时候充分考虑各种异常,设计一个稳定、高可用的消息系统。 认识 Kafka 看一下维基百科的定义 Kafka 是分布式发布-订阅消息系统。它最初由 LinkedIn 公司开发,之后成为 Apache 项目的一部分。Kafka是一个分布式的、可划分的、冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。 Kafka 架构 Kafka 的整体架构非常简单,是显式分布式架构,主要由 Producer、Broker(Kafka) 和 Consumer 组成。 Kafka架构(精简版) Pr...阅读全文

博文 2022-07-08 07:45:39 爱代码爱编程

大数据开发之Hive篇19-Hive分区表详解

备注: Hive 版本 2.1.1 Table of Contents一.Hive分区表概述二.静态分区2.1 单分区测试2.2 多分区测试三.动态分区3.1 动态分区测试3.2 动态分区和静态分区混合使用四.分区的其它操作4.1 恢复分区4.2 归档分区4.3 交换分区参考 一.Hive分区表概述 数据分区的概念以及存在很久了,通常使用分区来水平分散压力,将数据从物理上移到和使用最频繁的用户更近的地方,以及实现其目的。 hive中有分区表的概念,我们可以看到分区具重要性能优势,而且分区表还可以将数据以一种符合逻辑的方式进行组织,比如分层存储 Hive官方网站对Hive partition的介绍: 可以使用Partitioned BY子句创建分区表。一个表可以有一个或多个分区列,并且为分区列...阅读全文

博文 2022-07-14 11:01:16 墨天轮

干货 | Elasticsearch Reindex性能提升10倍+实战_铭毅天下的博客

Elasticsearch 最少必要知识实战教程直播回放 #1、reindex的速率极慢,是否有办法改善? 以下问题来自社区:https://elasticsearch.cn/question/3782 问题1:reindex和snapshot的速率极慢,是否有办法改善? reindex和snapshot的速率比用filebeat或者kafka到es的写入速率慢好几个数量级(集群写入性能不存在瓶颈),reindex/snapshot的时候CPU还是IO使用率都很低,是不是集群受什么参数限制了reindex和snapshot的速率? reindex不管是跨集群还是同集群上都很慢,大约3~5M/s的索引速率,会是什么原因导致的? 问题2:数据量几十个G的场景下,elasticsearch rei...阅读全文

博文 2022-04-02 10:12:57 CSDN博客_es reindex速度

时序数据库技术体系-时序数据存储模型设计 – 有态度的HBase/Spark/BigData

时序数据库技术体系中一个非常重要的技术点是时序数据模型设计,不同的时序系统有不同的设计模式,不同的设计模式对时序数据的读写性能、数据压缩效率等各个方面都有不同程度的影响。这篇文章笔者将会分别针对OpenTSDB、Druid、InfluxDB以及Beringei这四个时序系统中的时序数据模型设计进行介绍。 在详细介绍时序数据模型之前,还是有必要简单回顾一下时序数据的几个基本概念,如下图所示: 上图是一个典型的时序数据示意图,由图中可以看出,时序数据由两个维度坐标来表示,横坐标表示时间轴,随着时间的不断流逝,数据也会源源不断地吐出来;和横坐标不同,纵坐标由两种元素构成,分别是数据源和metric,数据源由一系列的标签(tag,也称为维度)唯一表示,图中数据源是一个广告数据源,这个数据源由publ...阅读全文

博文 2022-04-15 07:21:46 hbasefly.com

大型互联网公司一般都会要求消息传递最大限度的不丢失,比如用户服务给代金券服务发送一个消息,如果消息丢失会造成用户未收到应得的代金券,最终用户会投诉。为避免上面类似情况的发生,除了做好补偿措施,更应该在系设计的时候充分考虑各种异常,设计一个稳定、高可用的消息系统。认识 Kafka看一下维基百科的定义Kafka 是分布式发布-订阅消息系统。它最初由 LinkedIn 公司开发,之后成为 Apache 项目的一部分。Kafka是一个分布式的、可划分的、冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。Kafka 架构Kafka 的整体架构非常简单,是显式分布式架构,主要由 Producer、Broker(Kafka) 和 Consumer 组成。Kafka架构(精简版)Producer(生...阅读全文

博文 2022-07-08 07:45:07 mp.weixin.qq.com

Hive典型应用场景之行列转换_小飞鱼_bigdata的博客

在使用Hive处理数据时,经常遇到行列转换的场景,本文将对Hive的行列转换操作做详细的说明。 行转列## 1)多行转多列 假设数据表 row2col: col1 col2 col3 a c 1 a d 2 a e 3 b c 4 b d 5 b e 6 现在要将其转化为: col1 c d e a 1 2 3 b 4 5 6 此时需要使用到max(case … when … then … else 0 end),仅限于转化的字段为数值类型,且为正值的情况。 HQL语句为: select col1, max(case col2 when 'c' then col3 else 0 end) as c, max(case col2 when 'd' then col3 else 0 end) a...阅读全文

博文 2022-03-27 05:58:44 CSDN博客_hive 行列互换

Hive中的explode使用全解

本节主要介绍explode和posexplode函数的使用。1、数据介绍 主要包括三列,分别是班级、姓名以及成绩,数据表名是default.classinfo。2、单列Explode 首先来看下最基本的,我们如何把student这一列中的数据由一行变成多行。这里需要使用split和explode,并结合lateral view实现。代码如下:select class,student_name from default.classinfo lateral view explode(split(student,',')) t as student_name 结果如下:3、单列Posexplode 接下来,我们想要给每个同学来一个编号,假设编号就按姓名的顺序,此时我们要用到另一个hive函数,叫做...阅读全文

博文 2022-03-27 05:57:59 知乎

Elasticsearch 聚合数据结果不精确,怎么破?_铭毅天下的博客

1、实战开发遇到聚合问题 请教一个问题,ES 在聚合的时候发生了一个奇怪的现象聚合的语句里面size设置为10和大于10导致聚合的数量不一致,这个size不就是返回的条数吗?会影响统计结果吗?dsl语句摘要(手机敲不方便,双引号就不写了): aggs:{topcount:{terms:{field:xx,size:10}}} 就是这个size,设置10和大于10将会导致聚合结果不一样,难道是es5.x的bug吗? 以上是实战中的真实问题,基于这个问题,有了本篇文章。 本文探讨的聚合主要指:terms 分桶聚合。下图为分桶 terms 聚合示意图。 从一堆多分类的产品中聚合出 TOP 3 的产品分类和数量。TOP3 结果: 产品 Y:4 产品 X:3 产品 Z:2 2、前提认知:Elastic...阅读全文

博文 2022-07-12 06:05:41 CSDN博客

使用nonce巩固接口签名安全_猿天地的技术博客_51CTO博客

前面我们有讲过如何进行API的安全控制,其中包括数据加密,接口签名等内容。详细可以参考我下面两篇文章:-《前后端API交互如何保证数据安全性》请添加链接描述-《再谈前后端API签名安全?》请添加链接描述在签名部分,通过时间戳的方式来判断当前请求是否有效,目的是为了防止接口被多次使用。但是这样并不能保证每次请求都是一次性的,今天给大家介绍下如何保证请求一次性?首先我们来回顾一些时间戳判断的原理:客户端每次请求时,都需要进行签名操作,签名中会加上signTime参数(当前请求时间戳)。HTTP请求从发出到达服务器的正常时间不会很长,当服务器收到HTTP请求之后,首先进行签名检查,通过之后判断时间戳与当前时间相比较,是否超过了一定的时间,这个时间我们可以自行决定要多长,比如1分钟,2分钟都可以,时...阅读全文

博文 2022-03-23 12:55:02 blog.51cto.com

ElasticSearch学习笔记之九 复杂数据类型和嵌套对象_灵动的艺术的博客

ElasticSearch学习笔记之九 复杂数据类型和嵌套对象 复杂数据类型空域数组域多层级对象内部对象的映射内部对象的索引内部对象数组 嵌套对象嵌套对象映射 复杂数据类型 除了前面说到的简单数据类型,Elasticsearch还支持JSON 的null ,数组,和对象. 空域 字段取值可以为空,当然,数组也可以为空。 然而,在 Lucene 中是不能存储 null 值的,所以我们认为存在 null 值的域为空域。 下面三种域被认为是空的,它们将不会被索引: "null_value": null, "empty_array": [], "array_with_null_value": [ null ] 数组域 很多时候,我们希望 tag 域 包含多个标签。我们可以以数组的形式索引标签: { ...阅读全文

博文 2022-10-02 13:22:46 CSDN博客

虚拟IP技术 ip地址漂移技术 - myseries

1.虚拟IP 在 TCP/IP 的架构下,所有想上网的电脑,不论是用何种方式连上网路,都必须要有一个唯一的 IP-address。事实上IP地址是主机硬件地址的一种抽象,简单的说,MAC地址是物理地址,IP地址是逻辑地址。 虚拟IP,就是一个未分配给真实主机的IP,也就是说对外提供服务器的主机除了有一个真实IP外还有一个虚IP,使用这两个IP中的任意一个都可以连接到这台主机。 虚拟IP一般用作达到HA(High Availability)的目的,比如让所有项目中数据库链接一项配置的都是这个虚IP,当主服务器发生故障无法对外提供服务时,动态将这个虚IP切换到备用服务器。 2.虚拟IP原理 ARP是地址解析协议,它的作用很简单,将一个IP地址转换为MAC地址,然后给传输层使用。 每台主机中都有一...阅读全文

SQL子查询总结:相关子查询与非相关子查询有什么区别

如果一个select语句能够返回单个值或者一列值,且该select语句嵌套在另一个SQL语句(例如select语句、insert语句、update语句或者delete语句)中,那么该select语句成为“子查询”(也叫内层查询),包含子查询的SQL语句称为“主查询”(也叫外层查询)。为了标记子查询与主查询之间的关系,通常将子查询写在小括号内。子查询一般用在主查询的where子句或having子句中,与比较运算符或者逻辑运算符一起构成where筛选条件或having筛选条件。子查询分为“相关子查询”(Dependent Subquery)与“非相关子查询”。 非相关子查询如果子查询返回单个值,则可以讲一个表达式的值与子查询的结果进行比较。 例如,检索成绩比学生张三平均分高的所有学生及课程的信息...阅读全文

博文 2022-06-30 02:47:22 知乎

Seata 分布式事务 XA 与 AT 全面解析

Seata 分布式事务 XA 与 AT 全面解析 2021-04-23 FUNKYE Seata Seata 目录 1.XA模式是什么? 1.1什么是XA 1.2什么是Seata的事务模式? 2那么什么是Seata XA 模式? 2.1什么是Seata AT(TXC) 模式? 2.2AT 模式如何做到对业务的无侵入 ? AT模式一阶段 2.3 AT 模式如何保证隔离性 AT 模式二阶段提交 AT 模式二阶段回滚 3.为什么支持XA? 4.为什么Seata要支持XA模式? AT与XA的关系 Seata AT与XA的优劣 总结 Seata 是一款开源的分布式事务解决方案,star高达17300+,社区活跃度极高,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。 注:本期分享借鉴于Sea...阅读全文

博文 2022-11-12 17:32:05 objcoding.com

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 腾讯云

Hbase split的三种方式和split的过程 - albeter

在Hbase中split是一个很重要的功能,Hbase是通过把数据分配到一定数量的region来达到负载均衡的。一个table会被分配到一个或多个region中,这些region会被分配到一个或者多个regionServer中。在自动split策略中,当一个region达到一定的大小就会自动split成两个region。table在region中是按照row key来排序的,并且一个row key所对应的行只会存储在一个region中,这一点保证了Hbase的强一致性 。 在一个region中有一个或多个stroe,每个stroe对应一个column families(列族)。一个store中包含一个memstore 和 0 或 多个store files。每个column family 是...阅读全文

博文 2023-09-21 11:48:41 博客园

分布式链路追踪在字节跳动的实践

综述字节跳动在发展过程中,逐渐形成了十分复杂的超大规模微服务体系,对后端整体的可观测性解决方案提出了极高的要求。为了解决这个问题,基础架构智能运维团队自研链路追踪系统,将海量 Metrics/Trace/Log 数据进行整合与统一,并在此基础上实现了新一代的一站式全链路观测诊断平台,帮助业务解决监控排障、链路梳理、性能分析等问题。本文将会介绍字节跳动链路追踪系统的整体功能和技术架构,以及实践过程中我们的思考与总结。什么是分布式链路追踪(Trace) ?M T L 的关系可观测性的三大基础数据是 Metrics / Log / Trace。说到这三大件,可能大家会想到当需要监控变化趋势和配置告警时就去用 Metrics;当需要细查问题时去查 log;对于微服务数量较多的系统,还得有 Trace...阅读全文

博文 2023-10-12 15:55:45 mp.weixin.qq.com

HPC云化部署的优势和挑战

本文分享自天翼云开发者社区《HPC云化部署的优势和挑战》 作者:土豆炒肉丝HPC云化部署指的是将高性能计算(HPC)工作负载部署在云计算平台上,这种方式带来了一些明显的优势,但同时也面临一些挑战。以下是HPC云化部署的主要优势和挑战: 优势:1.灵活性和弹性:云计算平台提供灵活的资源调度和弹性伸缩功能,可以根据需要动态分配计算资源。这使得HPC应用能够更加高效地利用计算资源,根据实际需求进行资源扩展或收缩,从而降低成本。2.成本效益:传统HPC集群的建设和维护需要昂贵的硬件设备和专业技术团队。通过在云平台上进行部署,用户无需投资大量资金购买硬件设备,而是按需付费,只支付实际使用的资源,节省了大量成本。3.全球可访问性:云计算平台的服务通常分布在多个地理位置,用户可以从世界各地的终端设备访问这...阅读全文

java.nio.ByteBuffer用法小结_java bytebuffer用法_水蓝城城主的博客

文章目录 简介初始化向ByteBuffer写数据手动写入数据从SocketChannel中读入数据至ByteBuffer 从ByteBuffer中读数据复位position读取数据确保数据长度字节序处理 继续写入数据总结 简介 在Java的Socket编程中,若使用阻塞式(BIO),则往往通过ServerSocket的accept()方法获取到客户端Socket之后,再使用客户端Socket的InputStream和OutputStream进行读写。Socket.getInputstream.read(byte[] b)和Socket.getOutputStream.write(byte[] b)的方法中的参数都是字节数组。这种阻塞式的Socket编程显然已经远远不能满足目前的并发式访问需求...阅读全文

博文 2023-09-13 16:38:22 CSDN博客

HBase 参数设置参考

HBase 参数设置参考 前言HBase 配置参数极其繁多,参数配置可能会影响到 HBase 性能问题,因此得好好总结下。 HBase 调优是个技术活。得结合多年生产经验加测试环境下性能测试得出。 JVM垃圾回收优化 本地 memstore 分配缓存优化 Region 拆分优化 Region 合并优化 Region 预先加载优化 负载均衡优化 启用压缩,推荐snappy 进行预分区,从而避免自动 split,提高 HBase 响应速度 避免出现 region 热点现象,启动按照 table 级别进行 balance GCHBase CMS GC 配置参考 RS 参数hbase.server.thread.wakefrequency 该值默认是 10 秒,它影响着 Flush 和 Compac...阅读全文

博文 2023-09-21 14:58:57 lihuimintu

HBase原理 – 所有Region切分的细节都在这里了 – 有态度的HBase/Spark/BigData

Region自动切分是HBase能够拥有良好扩张性的最重要因素之一,也必然是所有分布式系统追求无限扩展性的一副良药。HBase系统中Region自动切分是如何实现的?这里面涉及很多知识点,比如Region切分的触发条件是什么?Region切分的切分点在哪里?如何切分才能最大的保证Region的可用性?如何做好切分过程中的异常处理?切分过程中要不要将数据移动?等等,这篇文章将会对这些细节进行基本的说明,一方面可以让大家对HBase中Region自动切分有更加深入的理解,另一方面如果想实现类似的功能也可以参考HBase的实现方案。 Region切分触发策略 在最新稳定版(1.2.6)中,HBase已经有多达6种切分触发策略。当然,每种触发策略都有各自的适用场景,用户可以根据业务在表级别选择不同的...阅读全文

博文 2023-09-21 14:20:13 hbasefly.com

数据如何同步到云服务器

本文分享自天翼云开发者社区《数据如何同步到云服务器》,作者:每日知识小分享随着云计算技术的快速发展,越来越多的企业和个人选择将他们的数据和应用程序存储在云服务器上。然而,将数据同步到云服务器是一个复杂的过程,需要一定的技术知识和规划。本文将介绍数据同步到云服务器的最-佳做法,包括数据备份、数据恢复、数据迁移等方面。一、数据同步的概念数据同步是指将数据从一个地方复制或传输到另一个地方,以保证数据的完整性和一致性。在云服务器中,数据同步通常指将本地数据备份到云服务器中,或者将云服务器中的数据恢复到本地或者其他云服务器中。二、数据同步的分类数据备份数据备份是指将本地数据备份到云服务器上,以防止本地数据丢失或损坏。在备份过程中,需要选择合适的备份软件和备份策略,以确保备份数据的完整性和可靠性。同时,...阅读全文

如此狂妄,自称高性能队列的Disruptor有啥来头? - 博学谷狂野架构师

并发框架Disruptor 1. Disruptor概述 1.1 背景 ​ Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级),基于Disruptor开发的系统单线程能支撑每秒600万订单,2010年在QCon演讲后,获得了业界关注,2011年,企业应用软件专家Martin Fowler专门撰写长文介绍。同年它还获得了Oracle官方的Duke大奖。 ​ 目前,包括Apache Storm、Camel、Log4j 2在内的很多知名项目都应用了Disruptor以获取高性能。 ​ 需要特别指出的是,这里所说的队列是系统内部的内存队列,而不是Kafka这样的分布式队列。 有界无锁 高并发队列 1...阅读全文

博文 2023-03-03 02:58:58 博客园

【Java集合】想成为Java编程高手?先来了解一下List集合的特性和常用方法!

通过前面文章的介绍,相信大家对Java集合框架有了简单的理解,接下来说说集合中最常使用的一个集合类的父类,List 集合。那么,List到底是什么?它有哪些特性?又该如何使用呢?让我们一起来揭开List的神秘面纱。 List,顾名思义,就是列表的意思。在Java中,List是一个接口,它继承了Collection接口,表示一个有序的、可重复的元素集合。下面我们从List 接口的概念、特点和常用方法等方面来介绍List。 ## 一、List 接口介绍 java.util.List 接口,继承自 Collection 接口(可以回看咱们第二篇中的框架体系),List 接口是单列集合的一个重要分支,习惯性地将实现了List 接口的对象称为List集合。 ![image.png](http://st...阅读全文

博文 2023-11-15 17:01:34 YDYXCODE

HBase 写吞吐场景资源消耗量化分析及优化-腾讯云开发者社区

一、概述HBase 是一个基于 Google BigTable 论文设计的高可靠性、高性能、可伸缩的分布式存储系统。 网上关于 HBase 的文章很多,官方文档介绍的也比较详细,本篇文章不介绍 HBase 基本的细节。本文从 HBase 写链路开始分析,然后针对少量随机读和海量随机写入场景入手,全方面量化分析各种资源的开销, 从而做到以下两点:在给定业务量级的情况下,预先评估好集群的合理规模在 HBase 的众多参数中,选择合理的配置组合二、HBase 写链路简要分析HBase 的写入链路基于 LSM(Log-Structured Merge-Tree), 基本思想是把用户的随机写入转化为两部分写入:Memstore 内存中的 Map, 保存随机的随机写入,待 memstore 达到一定量的...阅读全文

博文 2023-09-18 11:12:26 腾讯云

一种通过延迟事务提升数据库性能的方法

本文分享自天翼云开发者社区《一种通过延迟事务提升数据库性能的方法》,作者:唐****律一、背景在数据库代理层中,写节点的数据库连接是一种很重要和稀缺的资源,提升其利用率是一个提升数据库整体性能的重要手段。数据库连接占用过高会大幅增加数据库的资源负担,降低数据库的处理能力。通过延迟启动的事务,可以减少不必要的连接占用时长,提升数据库连接利用率。在用户通过代理层使用数据库的时候,如果提交了一条只读查询,那么代理层可以从连接池中获取一个连接、查询、获取数据、然后归还连接。如果在只读查询之前启动了事务,那么在用户提交或者回滚事务之前,该连接不能归还到连接池,大大增加了数据库连接的占用时间。而在ReadCommitted事务隔离级别中,只读查询语句的查询结果是不可重复的,这时如果事务中没有其它写操作,...阅读全文

博文 2023-09-28 16:23:55 Tianyiyun

技术大牛成长课,从0到1带你手写一个数据库系统-完结11章

参考地址1:https://pan.baidu.com/s/1N-x48vz9Z0peZdjOU5Gh-g 提取码: nxts 参考地址2:https://share.weiyun.com/Tp6ewDIJ 密码:6crcwd 关于数据库系统的开发一直以来都是一个难点,它的流程复杂,涉及到的技术点众多,特别在部署这块尤为重要,今天就带着大家手把手去实现这样一个数据库系统项目。 我将从理论结合实际场景综合性落地,让大家轻松吃透核心技术底层原理。 首先是应用场景这块:复用到日常开发场景中,如何运用高级数据结构、算法和设计模式,如何正确面对高并发进行编程,如何进行数据库的优化,如何理解数据库的执行计划分析慢SQL的原因等; 其次是原理剖析: 深度剖析数据库系统原理,将数据库几十年发展精髓拆解并呈现...阅读全文

博文 2023-11-29 17:32:10 feilipu2023nui

idea编译项目很慢

如果你正在使用 IntelliJ IDEA 编译 Java 项目,遇到编译速度缓慢的问题,以下是一些可能的原因和解决方法: 内存不足:检查你的电脑内存是否足够支持 IDEA 运行,并确保为 IDEA 分配了足够的内存。你可以编辑 IntelliJ IDEA 安装目录下的 bin 目录下的 idea64.exe.vmoptions 文件,将-Xms和-Xmx参数值增加一些。 插件过多:禁用不必要的插件,因为一些插件可能会导致 IDEA 编译速度变慢。 外部依赖库:检查你的项目是否引用了大量的外部依赖库,如果是,建议尝试减少依赖库的数量或者更换为较小的依赖库。 编译设置:检查你的编译设置是否正确。例如,你可以在“File” -> “Settings” -> “Build, Execution, ...阅读全文

Netty+Nacos+Disruptor自研企业级API网关

## download:[Netty+Nacos+Disruptor自研企业级API网关](https://www.51xuebc.com/thread-566-1-1.html) 数据类型、变量和常量的使用 在计算机编程中,数据类型、变量和常量是非常重要的概念。它们可以帮助程序员更好地理解和处理数据,从而实现更加复杂的功能。本文将详细介绍这些概念及其使用。 数据类型 数据类型是指计算机中可用的不同种类的数据。在编程语言中,通常有多种基本数据类型,如整数、浮点数、布尔值、字符等。每种数据类型都有其自己的特定格式和范围。 例如,在Python编程语言中,有以下常见的数据类型: 整数(int):表示整数,如1、2、3等。 浮点数(float):表示小数,如1.5、3.14等。 布尔值(bool)...阅读全文

博文 2023-05-31 12:27:59 zxit666

图文解释 读写分离、垂直拆分、水平拆分、分库分表

1. 前言 相信你经常被 读写分离、垂直拆分、水平拆分、分库分表 这几个名词搞得很懵逼。我有时候也很懵逼,那么今天就来把这几个数据库常用术语搞清楚,同时也记录一下。 2. 读写分离 这个相对比较好理解一些,就是将数据库分为主从库,一个主库(Master)用于写数据,多个从库(Slaver)进行轮询读取数据的过程,主从库之间通过某种通讯机制进行数据的同步,是一种常见的数据库架构。下面这张图就展示了 “一主二从” 的结构: 2.1 为什么要读写分离 大多数互联网数据操作往往都是读多写少,随着数据的增长,数据库的“读”会首先成为瓶颈。如果我们希望能线性地提升数据库的读性能和写性能,就需要让读写尽可能的不相互影响,各自为政。在使用读写分离之前我们应该考虑使用缓存能不能解决问题。然后再考虑对数据库按照...阅读全文

博文 2023-09-13 16:02:53 掘金

大圣前端啃算法

download: https://caodada.com/7084.html【资源目录】:├──单课01、01-前端为什么要学算法.mp4 22.60M├──单课02、02-一个leetcode题了解算法复杂度.mp4 51.49M├──单课03、通用01-如何把代码提交到github.mp4 34.07M├──单课04、通用02-如何获取github代码权限并且提交pr.mp4 25.13M├──单课05、03-链表和数组.mp4 13.07M├──单课06、04-链表的javascript实现01.mp4 26.12M├──单课07、05-链表的javascript实现-leetcode203题.mp4 21.49M├──单课08、06-链表的javascript实现-leetcode...阅读全文

博文 2023-08-08 08:44:55 caodada

CSRF 保护_Spring Security

Spring Security 跨站请求伪造保护 1. 前言 很多小伙伴在开发 Spring Security 项目时候,本地测试都没有问题,一放到生产环境后,就会遇到「Invalid CSRF Token」问题,这其实是 Spring Security 防止服务免受「跨站请求伪造」攻击攻击的防护行为。 跨站请求伪造(Cross Site Request Forgery),简写成「CSRF」或者「XSRF」,是一种挟持用户所用浏览器,执行非法操作的攻击方法,也就是说,攻击者利用「CSRF」漏洞伪造用户操作,可实现例如购物、注销等效果,还可以利用该漏洞配合产生其他多种攻击方式。 针对「CSRF」攻击最经济的解决方式是增加「Referer」头或者增加校验「Token」。 Spring Secur...阅读全文

博文 2023-04-12 06:59:09 慕课网

HBase原理 | HBase Compaction介绍与参数调优-腾讯云开发者社区

我们知道,数据达到HBase服务端会写WAL-写Memstore,然后定期或满足一定条件时刷写磁盘生成一个HFile文件,随着时间推移生成的HFile会越来越多,将会影响HBase查询性能,同时会对HDFS造成一定影响。因此HBase会定期执行Compaction操作以合并减少HFile数量。1.两种合并HBase中Compaction分为两种。Minor Compaction称为小合并,主要是选取一些小的、相邻的HFile将他们合并成较大的HFile,并删除HFile中的过期数据。Major Compaction称为大合并,会将一个列族下的所有HFile合并成一个大的HFile,同时删除过期数据、已删除数据(打了Delete标记的)、版本过大的数据等三类无效数据。2. 参数调优1).hba...阅读全文

博文 2023-09-21 14:59:11 腾讯云

图灵 Python全栈开发工程师

download:https://www.daxiacode.com/7446.html【资源目录】:| ├──1–django 简介.mp4 1.65G| ├──10–权限分配.mp4 637.10M| ├──11–批量操作.mp4 1011.98M| ├──12–权限分配实现.mp4 696.79M| ├──13–rbac组件.mp4 804.36M| ├──14–stark组件(上).mp4 699.82M| ├──15–stark组件(下).mp4 635.81M| ├──16–CRM项目开发(上).mp4 362.90M| ├──2–路由匹配与函数视图.mp4 1.36G| ├──3–数据模型.mp4 1.56G| ├──4–数据查询与网络请求.mp4 1.22G| ├──5–网络...阅读全文

博文 2023-08-21 14:39:42 xiaotu

[完结11章]技术大牛成长课,从0到1带你手写一个数据库系统

学习地址1:https://pan.baidu.com/s/1OWDu5fNq_BXRUbLGrxzpJw 提取码:tjty 学习地址2:https://share.weiyun.com/Tp6ewDIJ 密码:6crcwd 今天跟大家交流一下关于开发一款数据库系统的相关事宜,从零开始,手把手带着大家一步步去实现这个功能,希望对大家有所帮助。 数据库系统是为适应数据处理的需要而发展起来的一种较为理想的数据处理系统,也是一个为实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质 、处理对象和管理系统的集合体。 数据库系统DBS(Data Base System,简称DBS)通常由软件、数据库和数据管理员组成。其软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统。数据库由数...阅读全文