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

http 协议的结束符 · Issue #34 · jinhailang/blog · GitHub

http 协议的结束符 突然想起很久之前一次面试,面试官问我,当请求头没有 content-length 时,怎么知道请求体结束了? http 的 header 和 body 之间空行分割的,又因为每个头部项是以 \r\n 作为结束符,所以,数据流中是以 \r\n\r\n 来分割解析请求头(响应头)与请求体(响应体)的。如下图所示: 那么怎么知道(请求体)响应体结束了呢? http 协议规定,响应头的字段 content-length 用来表示响应体长度大小,但是,有可能发送请求头时,并不能知道完整的响应体长度(比如当响应数据太大,服务端流式处理的情况),这时需要设置请求头Transfer-Encoding: chunked,使用数据块的方式传输,数据块格式如下图所示: 每个数据块分为两个部...阅读全文

博文 2020-04-24 13:28:31 github.com

Lucene段概念

Lucene段概念分段存储 在早期的全文检索中为整个文档集合建立了一个很大的倒排索引,并将其写入磁盘中,如果索引有更新,就需要重新全量创建一个索引来替换原来的索引。这种方式在数据量很大时效率很低,并且由于创建一次索引的成本很高,所以对数据的更新不能过于频繁,也就不能保证时效性。 现在,在搜索中引入了段的概念(将一个索引文件拆分为多个子文件,则每个子文件叫作段),每个段都是一个独立的可被搜索的数据集,并且段具有不变性,一旦索引的数据被写入硬盘,就不可再修改。 在分段的思想下,对数据写操作的过程如下。 新增。当有新的数据需要创建索引时,由于段的不变性,所以选择新建一个段来存储新增的数据。 删除。当需要删除数据时,由于数据所在的段只可读,不可写,所以Lucene在索引文件下新增了一个.del的文件...阅读全文

博文 2020-11-18 11:02:36 简书

JVM 系列文章之 Full GC 和 Minor GC

Full GC Full GC 就是收集整个堆,包括新生代,老年代,永久代(在JDK 1.8及以后,永久代会被移除,换为metaspace)等收集所有部分的模式 RednaxelaFX大在Major GC和Full GC的区别是什么?触发条件呢?- 知乎这个问题有关于 GC分类的回答: 针对 HotSpot VM的实现,它里面的GC其实准确分类有两种: Partial GC(局部 GC): 并不收集整个 GC 堆的模式 Young GC: 只收集young gen的GC,Young GC还有种说法就叫做 "Minor GC" Old GC: 只收集old gen的GC。只有垃圾收集器CMS的concurrent collection 是这个模式 Mixed GC: 收集整个young gen...阅读全文

博文 2019-11-27 07:00:30 掘金

解剖Go语言map底层实现

map是Go语言中基础的数据结构,在日常的使用中经常被用到。但是它底层是如何实现的呢? Golang中map的底层实现是一个散列表,因此实现map的过程实际上就是实现散表的过程。在这个散列表中,主要出现的结构体有两个,一个叫hmap(a header for a go map),一个叫bmap(a bucket for a Go map,通常叫其bucket)。这两种结构的样子分别如下所示:hmap: 图中有很多字段,但是便于理解map的架构,你只需要关心的只有一个,就是标红的字段:buckets数组。Golang的map中用于存储的结构是bucket数组。而bucket(即bmap)的结构是怎样的呢? bucket: 相比于hmap,bucket的结构显得简单一些,标红的字段依然是“核心”...阅读全文

博文 2019-05-16 09:39:25 RyuGou的博客

B+树及插入和删除操作详解

本节介绍一种应文件系统所需而生的一种 B-树的变型树——B+树。前面介绍了B-树,B+树其实同B-树有许多相同之处,本节将用B-树同B+树通过对比两者的差异来介绍B+树。 什么是B+树? 一颗 m 阶的 B+树和 m 阶的 B-树的差异在于: 有 n 棵子树的结点中含有 n 个关键字; 在上一节中,在 B-树中的每个结点关键字个数 n 的取值范围为⌈m/2⌉ -1≤n≤m-1,而在 B+树中每个结点中关键字个数 n 的取值范围为:⌈m/2⌉≤n≤m。 所有的叶子结点中包含了全部关键字的信息,及指向含这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。 所有的非终端结点(非叶子结点)可以看成是索引部分,结点中仅含有其子树(根结点)中的最大(或最小)关键字。 例如,图 1 中所示...阅读全文

博文 2021-04-09 06:27:02 data.biancheng.net

Hive On HBase实战 - 哥不是小萝莉

1.概述 HBase是一款非关系型、分布式的KV存储数据库。用来存储海量的数据,用于键值对操作。目前HBase是原生是不包含SQL操作,虽然说Apache Phoenix可以用来操作HBase表,但是需要集成对应的Phoenix依赖包到HBase集群中,同时需要编写对应的Schema才能实现SQL操作HBase。 本篇博客,笔者将为大家介绍另一位一种SQL方式来操作HBase,那就是Hive。 2.内容 2.1 使用场景 熟悉大数据的同学应该都知道,Hive是一个分布式的数据仓库,它能够将海量数据,结构化存储到HDFS上,然后通过SQL的方式对这些海量数据进行业务处理。而且,Hive学习成本很低,熟悉SQL的同学,很快就能编写一个Hive应用程序。 我们通过Hive把数据加载到HBase表中...阅读全文

博文 2020-11-12 03:39:16 博客园

如何在 Linux 中使用ss命令监控网络连接

ss命令是用于在Linux系统上显示与网络套接字相关的信息的工具。 该工具显示netstat命令的更多详细信息,该命令用于显示活动的套接字连接。 在本教程中,我们会举例说明ss命令如何用于在Linux中显示各种网络连接信息。 1、列出所有连接 基本的ss命令,不带任何选项,仅列出所有连接,无论它们处于什么状态。 ss 2、列出监听端口和非监听端口 您可以使用-a选项检索侦听端口和非侦听端口的列表,如下所示。 ss -a 3、列出监听套接字 要仅显示侦听套接字,请使用-l标志,如图所示。 ss -l 4、列出所有TCP连接 要显示所有TCP连接,请使用-t选项,如图所示。 ss -t 5、列出所有侦听的TCP连接 要查看所有侦听的TCP套接字连接,请使用-lt组合,如图所示。 ss -lt 6...阅读全文

博文 2020-07-30 02:28:17 linux资讯

如何有效进行项目集管理?

随着企业的扩张,业务往来日益增多,企业同时开展多个项目是不可避免的,如何有效进行多项目管理,是许多企业急需解决的问题。 这一趋势导致多项目管理角色的兴起。它与项目高效和谐地配合,为企业的快速发展提供了动力。 如今,大多数企业参与到多项目管理中,但他们仍然在寻找应对这种环境复杂性的最佳工具。 有趣的是,许多人依然觉得难以区分多项目管理和项目组合管理,导致难以“对症下药”。 接下来CORNERSTONE将教大家如何区分。 一、多项目管理 多项目管理最基本的定义指针对组织中进行的多个项目进行全生命周期的管理。 在多个项目同时进行中,管理人员必须在资源池共享的情况下,顺利完成期限不同、规模不同的项目。 因为多项目这个概念提出来的时间不长,这也是如今企业没有足够的策略、技术和工具来管理多项目的原因。 ...阅读全文

博文 2020-07-15 07:08:23 CORNERSTONE

并查集(Union-Find)算法介绍_网络_不忘初心,好好沉淀

本文主要介绍解决动态连通性一类问题的一种算法,使用到了一种叫做并查集的数据结构,称为Union-Find。 更多的信息可以参考Algorithms 一书的Section 1.5,实际上本文也就是基于它的一篇读后感吧。 原文中更多的是给出一些结论,我尝试给出一些思路上的过程,即为什么要使用这个方法,而不是别的什么方法。我觉得这个可能更加有意义一些,相比于记下一些结论。 关于动态连通性 我们看一张图来了解一下什么是动态连通性: 假设我们输入了一组整数对,即上图中的(4, 3) (3, 8)等等,每对整数代表这两个points/sites是连通的。那么随着数据的不断输入,整个图的连通性也会发生变化,从上图中可以很清晰的发现这一点。同时,对于已经处于连通状态的points/sites,直接忽略,比如...阅读全文

博文 2020-03-21 08:26:13 CSDN博客

为什么 MongoDB 使用 B 树?

为什么这么设计(Why's THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点、对具体实现造成的影响。如果你有想要了解的问题,可以在文章下面留言。我们在这一系列前面的文章曾经分析过 为什么 MySQL 使用 B+ 树,有读者在文章下面留言,希望能出一个为什么 MongoDB 使用 B 树的对比文章,这是一个比较好的问题,MySQL 和 MongoDB 两种不同类型的数据库使用了相似却不同的数据结构,为什么 MySQL 选择使用 B+ 树而 MongoDB 使用 B 树呢?概述MongoDB 是一个通用的、面向文档的分布式数据库[^1],这是官方对 MongoDB 介绍。区别于传统的关系型数据库...阅读全文

博文 2020-02-15 03:28:04 mp.weixin.qq.com

面对复杂业务,if-else coder 如何升级?_阿里技术

阿里云开发者 1.5k 面对复杂业务,if-else coder 如何升级? 程序员 发布于 9月25日 简介: 针对业务在不同场景下的差异,我们常常会习惯性地使用if-else来实现不同的业务逻辑,久而久之代码越来越难以维护。那么如何消除这些if-else?面对复杂业务应如何思考和分析?本文分享阿里高级技术专家张建飞(Frank)关于复杂业务治理的方法论,介绍一种多维度分析问题的方法:矩阵分析法。You should not be a if-else coder, should be a complexity conquer.——Frank这篇文章,是对之前我在《阿里高级技术专家方法论:如何写复杂业务代码?》说的“自上而下的结构化分解 + 自下而上的抽象建模”方法论的升级。因为在之前的方法...阅读全文

博文 2020-09-26 12:24:18 SegmentFault 思否

VMware网络连接模式—桥接、NAT以及仅主机模式的详细介绍和区别(软件指南针)

在使用VMware Workstation(以下简称:VMware)创建虚拟机的过程中,配置虚拟机的网络连接是非常重要的一环,当我们为虚拟机配置网络连接时,我们可以看到如下图所示的几种网络连接模式:桥接模式、NAT模式、仅主机模式、自定义网络连接模式。那么这几种网络连接模式都各自有什么主要用途,它们之间又有哪些区别呢? 磨刀不误砍柴工,为了更好地使用虚拟机,了解这几种连接模式的主要用途以及它们之间的区别是非常有必要的。在这里,我们就以下面的网络连接示意图为例来进行相关介绍。 在VMware中,虚拟机的网络连接主要是由VMware创建的虚拟交换机(也叫做虚拟网络)负责实现的,VMware可以根据需要创建多个虚拟网络。在Windows系统的主机上,VMware最多可以创建20个虚拟网络,每个虚拟...阅读全文

Thrift 服务器端的几种工作模式分析 - 云+社区

相关示例代码见:http://download.csdn.net/detail/hjx_1000/8374829 五、 Thrift服务器端几种工作模式分析与总结 Thrift为服务器端提供了多种工作模式,本文中将涉及以下5中工作模式:TSimpleServer、TNonblockingServer、THsHaServer、TThreadPoolServer、TThreadedSelectorServer,这5中工作模式的详细工作原理如下: 1. TSimpleServer模式 TSimpleServer的工作模式只有一个工作线程,循环监听新请求的到来并完成对请求的处理,它只是在简单的演示时候使用,它的工作方式如图5.1所示: 图5.1 TSimpleServer的工作模式 TSimpleS...阅读全文

博文 2021-05-02 16:54:01 腾讯云

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

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

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

JVM 之 ParNew 和 CMS 日志分析

在两年前的文章 JVM 学习——垃圾收集器与内存分配策略 中,已经对 GC 算法的原理以及常用的垃圾收集器做了相应的总结。今天这篇文章主要是对生产环境中(Java7)常用的两种垃圾收集器(ParNew:年轻代,CMS:老年代)从日志信息上进行分析,做一下总结,这样当我们在排查相应的问题时,看到 GC 的日志信息,不会再那么陌生,能清楚地知道这些日志是什么意思,GC 线程当前处在哪个阶段,正在做什么事情等。 ParNew 收集器ParNew 收集器是年轻代常用的垃圾收集器,它采用的是复制算法,youngGC 时一个典型的日志信息如下所示: 12018-04-12T13:48:26.134+0800: 15578.050: [GC2018-04-12T13:48:26.135+0800: 155...阅读全文

博文 2020-07-31 06:29:22 Matt's Blog

SpringBoot 在线协同办公小程序开发 全栈式项目实战【网盘下载无密】

download: SpringBoot 在线协同办公小程序开发 全栈式项目实战未来,在线协同办公将成为一种常态化的工作方式。本课程将采用最流行的前后端分离架构设计,应用 SpringBoot+uniapp 技术栈开发一款在线协同办公的小程序。让你掌握未来趋势型业务 + 前后端综合技术栈,带你实现全技术栈的综合提升。技术要求1.HTML / CSS 基础 2.JS 交互知识 3.基本的 Vue 知识 4.JavaWeb 相关知识环境参数SpringBoot 2.3、uni-app2.9 开发工具:IDEA、HBuilderX什么是Spring BootSpring Boot 是由 Pivotal 团队供应的全新结构,其规划意图是用来简化新 Spring 运用的初始树立以及开发进程。该结构运用...阅读全文

博文 2021-01-16 21:02:18 jmterorh

聊聊MyBatis缓存机制

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

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

linux下core dump【总结】 - Rabbit_Dale

1、前言 一直在从事linux下后台开发,经常与core文件打交道。还记得刚开始从事linux下开发时,程序突然崩溃了,也没有任何日志。我不知所措,同事叫我看看core,我却问什么是core,怎么看。同事鄙视的眼神,我依然在目。后来学会了从core文件中分析原因,通过gdb看出程序挂再哪里,分析前后的变量,找出问题的原因。当时就觉得很神奇,core文件是怎么产生的呢?难道系统会自动产生,可是我在自己的linux系统上面写个非法程序测试,并没有产生core问题?这又是怎么回事呢?今天在ngnix的源码时候,发现可以在程序中设置core dump,又是怎么回事呢?在公司发现生成的core文件都带有进程名称、进程ID、和时间,这又是怎么做到的呢?今天带着这些疑问来说说core文件是如何生成,如何配...阅读全文

博文 2020-12-03 07:16:21 博客园

【译】深入理解G1的GC日志(一)

本文翻译自:www.redhat.com/en/blog/col… 这篇文章将深入研究G1的日志和调优参数。为了在实际工作中对G1进行调优,作为开发者的你需要理解G1垃圾收集器的每个步骤,以及每个步骤在整个垃圾收集周期中的作用。为了方便读者学习,这篇文章将G1的日志参数分为等级递增的三块,这篇文章将会分别介绍每一部分参数的作用和调优时候使用的场景。 基础参数 - 在生产中使用G1收集器,必须使用这些参数 高级参数 - 随着应用的成熟或业务负载的增加,需要使用这些参数针对某些问题进行调优。 Debug参数 - 这些参数是用来解决特定的性能问题,如果某个问题在非生产环境中无法复现,才会在生产环境中使用这些参数排查问题。 基础参数 如果你要在生产环境中使用G1 GC,下面这些跟日志相关的参数是必备...阅读全文

博文 2020-07-31 06:28:03 掘金

深入学习MySQL事务:ACID特性的实现原理 - 编程迷思

事务是MySQL等关系型数据库区别于NoSQL的重要方面,是保证数据一致性的重要手段。本文将首先介绍MySQL事务相关的基础概念,然后介绍事务的ACID特性,并分析其实现原理。 MySQL博大精深,文章疏漏之处在所难免,欢迎批评指正。 一、基础概念 事务(Transaction)是访问和更新数据库的程序执行单元;事务中可能包含一个或多个sql语句,这些语句要么都执行,要么都不执行。作为一个关系型数据库,MySQL支持事务,本文介绍基于MySQL5.6。 首先回顾一下MySQL事务的基础知识。 1. 逻辑架构和存储引擎 图片来源:https://blog.csdn.net/fuzhongmin05/article/details/70904190 如上图所示,MySQL服务器逻辑架构从上往下可...阅读全文

博文 2021-08-17 06:36:55 博客园

mac提示文件已损坏的处理方法_sudo xattr -r -d com.apple.quarantine_qq_32526375的博客

用户在使用mac系统安装或下载一些软件应用时,偶尔会出现“XXX软件已损坏”的情况,下面就来教大家遇到这种情况怎么解决: 1、MacOS 10.15及以上新系统出现应用提示损坏打不开的解决方法: 打开终端(屏幕下方Dock栏中的的小火箭图标“启动台”——“其他”——打开“终端”),在终端中粘贴下面命令: sudo xattr -r -d com.apple.quarantine (* quarantine 后面有个空格) 打开屏幕下方的“访达(笑脸图标)”—选择左侧边栏的“应用程序”,再找到你需要处理的软件拖拽到命令后面,按回车后输入密码执行,举个例子,比如需要打开sketch应用的命令是: sudo xattr -r -d com.apple.quarantine /Application...阅读全文

博文 2023-09-13 16:37:45 CSDN博客

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

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

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

云数据库 MongoDB 基于 CVM 连接 MongoDB 进行数据导入导出的方法-最佳实践-文档中心

通过云服务器 CVM 连接云数据库 MongoDB 可以进行数据导入和导出,请注意使用最新版本的 MongoDB 客户端套件,具体操作可参见 连接实例。注意local 数据库主要存储副本集的配置信息、oplog 等元数据;admin 数据库则主要存储用户、角色等信息。为了防止数据错乱、鉴权失败等现象发生,云数据库 MongoDB 禁止将 local 和 admin 数据库导入实例。导出导入命令MongoDB 官方提供了两套数据导入导出工具:mongodump 和 mongorestore mongoexport 和 mongoimportmongodump 和 mongorestore进行整库导出导入时,通常使用 mongodump 和 mongorestore,这一对组合操作的数据是 BS...阅读全文

博文 2023-01-13 02:35:29 腾讯云

再聊 TCP backlog

这篇文章我们以 backlog 参数来深入研究一下建连的过程。通过阅读这篇文章,你会了解到下面这些知识: backlog、半连接队列、全连接队列是什么 linux 内核是如何计算半连接队列、全连接队列的 为什么只修改系统的 somaxconn 和 tcp_max_syn_backlog 对最终的队列大小不起作用 如何使用 systemtap 探针获取当前系统的半连接、全连接队列信息 iprouter 库中的 ss 工具的原理是什么 如何快速模拟半连接队列溢出,全连接队列溢出 注:本文中的代码和测试均在内核版本 3.10.0-514.16.1.el7.x86_64 下进行。 半连接队列、全连接队列基本概念 为了理解 backlog,我们需要了解 listen 和 accept 函数背后的发生了...阅读全文

博文 2022-11-02 09:14:44 HeapDump性能社区

Kafka消费者 之 指定位移消费 - 腾讯云开发者社区

每一个成功人士的背后,必定曾经做出过勇敢而又孤独的决定。放弃不难,但坚持很酷~由于消费者模块的知识涉及太多,所以决定先按模块来整理知识,最后再进行知识模块汇总。今天学习一下消费者如何指定位移消费。一、auto.offset.reset值详解在 Kafka 中,每当消费者组内的消费者查找不到所记录的消费位移或发生位移越界时,就会根据消费者客户端参数 auto.offset.reset 的配置来决定从何处开始进行消费,这个参数的默认值为 “latest” 。auto.offset.reset 的值可以为 earliest、latest 和 none 。关于 earliest 和 latest 的解释,官方描述的太简单,各含义在真实情况如下所示:earliest :当各分区下存在已提交的 offs...阅读全文

博文 2023-02-24 02:19:34 腾讯云

Prometheus 服务的自动发现使用-腾讯云开发者社区

前面我们了解了 Prometheus 中 Relabeling 重新标记的使用,本文我们将学习 Prometheus 中是如何使用服务发现来查找和抓取目标的。我们知道在 Prometheus 配置文件中可以通过一个 static_configs 来配置静态的抓取任务,但是在云环境下,特别是容器环境下,抓取目标地址是经常变动的,所以用静态的方式就不能满足这些场景了。所以我们需要监控系统能够动态感知这个变化,不可能每次变动都去手动重新配置的,为了应对复杂的动态环境,Prometheus 也提供了与基础设施中的服务发现集成的功能。Prometheus 已经支持多种内置的服务发现机制:发现云服务商的 VM 虚拟机Kubernetes 上的自动发现通用的服务查找,例如 DNS、Consul、Zooke...阅读全文

博文 2023-09-20 11:38:32 腾讯云

Prometheus基础相关--PromQL 基础(4)

见字如面,我是小斐,上文介绍了关于运算、阈值、集合操作等相关操作和说明,本文将继续说明PromQL的基础,上文链接如下:排序本节我们将学习如何对查询结果进行排序,或者只选择一组序列中最大或最小的值。我们可以使用 sort()(升序) 或者 sort_desc()(降序)函数来实现对输出结果进行排序,例如,要显示按值排序的每个路径请求率,从最高到最低,我们可以用下面的语句进行查询:sort_desc(sum by(path) (rate(demo_api_request_duration_seconds_count{job="demo"}[5m])))有的时候我们并不是对所有的时间序列感兴趣,只对最大或最小的几个序列感兴趣,我们可以使用 topk() 和 bottomk() 这两个运算符来操作...阅读全文

博文 2023-10-08 14:36:42 知乎

存储成本下降66%,得物云原生全链路追踪架构实践_Trace_数据_采样

存储成本下降66%,得物云原生全链路追踪架构实践 2022-10-20 09:54 来源: dbaplus社群 发布于:广东省 原标题:存储成本下降66%,得物云原生全链路追踪架构实践 分布式链路追踪作为解决分布式应用可观测问题的重要技术,得物全链路追踪(简称Trace2.0)基于OpenTelemetry提供的可观测标准方案实现新一代的一站式全链路观测诊断平台,并通过全量采集Trace帮助业务提高故障诊断、性能优化、架构治理的效率。 全量采集Trace数据(日增数百TB 、数千亿条Span数据)并以较低的成本保证数据的实时处理与高效查询,对Trace2.0后端整体的可观测性解决方案提出了极高的要求。本文将详细介绍Trace2.0背后的架构设计、尾部采样和冷热存储方案,以及我们是如何通过自建...阅读全文

博文 2023-10-12 16:26:20 roll.sohu.com

这一次,彻底掌握go mod

1. 版本号规范 go mod 对版本号的定义是有一定要求的,它要求的格式为 v..,如果 major 版本号大于 1 时,其版本号还需要体现在 Module 名字中。比如 我的项目github.com/pibigstar/go-demo,如果我的版本号增长到v2.x.x时,我的 Module 名字也需要相应的改变为: github.com/pibigstar/go-demo/v2, 有人可能就要问了,我不改可以吗? 可以的!但是 go mod 会在你依赖的后面打一个+incompatible 标志 2. 伪版本 我们将项目上传到 github 后,如果不打 tag,或 tag 不符合v..这个格式,那么当我...阅读全文

博文 2023-09-13 16:38:57 Go 技术论坛

React 源码剖析系列 - 不可思议的 react diff

目前,前端领域中 React 势头正盛,使用者众多却少有能够深入剖析内部实现机制和原理。本系列文章希望通过剖析 React 源码,理解其内部的实现原理,知其然更要知其所以然。React diff 作为 Virtual DOM 的加速器,其算法上的改进优化是 React 整个界面渲染的基础,以及性能提高的保障,同时也是 React 源码中最神秘、最不可思议的部分,本文从源码入手,深入剖析 React diff 的不可思议之处。阅读本文需要对 React 有一定的了解,如果你不知何为 React,请详读 React 官方文档。如果你对 React diff 存在些许疑惑,或者你对算法优化感兴趣,那么本文值得阅读和讨论。前言React 中最值得称道的部分莫过于 Virtual DOM 与 diff...阅读全文

博文 2023-05-30 05:58:00 知乎

再获权威认可!天翼云论文被IEEE/ACM CCGrid收录

近日,由天翼云弹性网络开拓者团队撰写的《Towards Better QoS and Lower Costs of P4 EIP Gateway at the Edge》论文被The 24th IEEE/ACM International Symposium on Cluster, Cloud, and Internet Computing (CCGrid 2024) 长文收录。​CCGrid是云计算领域较高水平的国际学术会议,也是中国计算机学会CCF推荐的国际会议之一。CCGrid平均每年收到数百篇来自世界各地的论文投稿,近三年的论文接收率分别为21%(2023年)、24%(2022年)、26.1%(2021年)。此次弹性网络开拓者团队所著论文被收录,代表着天翼云技术创新能力再获业界权威机...阅读全文

博文 2024-04-17 14:18:08 Tianyiyun

慕课微课-掌握Java并发编程的“基石”,入门并发编程

### 慕课微课-掌握Java并发编程的“基石”,入门并发编程 download:https://www.zxit666.com/6378/ 大范围视觉预锻炼显著进步了大型视觉模型的性能。但是,作者察看到现有的低FLOPs模型无法从大范围预锻炼中受益的问题。在本文中,作者提出了一种通用的设计准绳,即ParameterNet,用于在大范围视觉预锻炼中增加更多参数的同时坚持低FLOPs。 例如,采用动态卷积技术能够为网络提供更多参数,同时仅稍微增加FLOPs。提出的ParameterNet计划使得低FLOPs网络可以从大范围视觉预锻炼中受益。 在大范围ImageNet-22K数据集上的实考证明了作者ParameterNet计划的杰出性能。例如,ParameterNet-600M相比普遍运用的Sw...阅读全文

博文 2023-07-18 11:34:43 zxit666

prometheus中step或resolution的含义_iceman1952的博客

prometheus官方文档对resolution的解释真是语焉不详,只有下面寥寥几句话 https://prometheus.io/docs/prometheus/latest/querying/examples/ Subquery Return the 5-minute rate of the http_requests_total metric for the past 30 minutes, with a resolution of 1 minute. rate(http_requests_total[5m])[30m:1m] 由于官方文档的缺失,想了解也无从看起。网上有两篇文章解释的比较清楚: https://blog.csdn.net/weixin_33778778/articl...阅读全文

博文 2023-07-12 11:35:24 CSDN博客

[完结14章]鸿蒙系统实战短视频App 从0到1掌握HarmonyOS

学习地址1:https://pan.baidu.com/s/1vLcrBLZ59KSCDgsDj4K8rg 提取码: vfff 学习地址2:https://share.weiyun.com/aXaiIMC3 密码:q5aaj7 实际搭建流程: 下载鸿蒙源码 → docker拉取镜像 → 创建容器 → 进入容器 → 下载hb编译工具(也可使用build.sh、build.py脚本编译,但是不如hb辅助工具指令好用)→ 编译(内核、芯片厂商的uboot、系统镜像 ...) 1. 准备开发环境: 首先,您需要设置用于鸿蒙应用程序开发的开发环境。 2. 学习鸿蒙应用程序开发: 了解鸿蒙应用程序开发的基础知识,包括鸿蒙应用程序的架构、UI设计和鸿蒙系统的特性。 3. 开发应用程序: 使用鸿蒙开发工具,...阅读全文

博文 2023-12-01 16:20:29 giadnbhaytgw

[Hive]表生成函数(UDTF)使用指南

UDTF是User-Defined Table-Generating Functions 的缩写,即用户定义的表生成函数。UDTF 用于从原始表中的一行生成多行数据。典型的 UDTF有EXPLODE、posexplode等函数,它能将array或者map展开。 表生成函数和聚合函数是相反的,表生成函数可以把单列扩展到多列。表生成函数:可以理解为一个函数可以生成一个表。 1、explode函数-行转列 explode函数以array类型数据输入,然后对数组中的数据进行迭代,返回多行结果,一行一个数组元素值。 ARRAY函数是将一列输入转换成一个数组输出。 1.1 explode函数语法 返回类型函数名描述Texplode(ARRAY a)可以返回0到多行的结果,每行对应的是array数组中的一...阅读全文

博文 2024-04-01 19:13:34 CSDN博客

深入浅出分析LSM树(日志结构合并树)

零、前言最近在调研NoSQL数据库,发现RocksDB、LevelDB、HBase以及Prometheus等,其底层的存储引擎都是基于LSM树,于是决定花时间彻底吃透LSM树这一数据结构。不幸的是,在查阅资料学习的过程中,发现网上各种文章汗牛充栋、抄来抄去,不是文不对题就是不知所云。一气之下决定自己写一篇出来消消气,便有了这篇文章。。。PS:学了这么多数据结构,LSMTree应该是最年轻的一个,它在1996年被设计出来(属老鼠的),年纪比我还小~相比于B/B+树或者倒排索引,LSMTree采用了“疯狂到不顾一切”的干啥都磁盘顺序写的方案,赋予了它无与伦比的写吞吐量。一、LSM树数据结构定义查阅了一些资料,LSM树并没有一种固定死的实现方式,更多的是一种将:“磁盘顺序写” + “多个树(状数据...阅读全文

博文 2023-05-11 09:07:03 知乎

MySQL基本操作教程,让你轻松掌握增、删、改、查技巧!

对数据库进行查询和修改操作的语言叫做 SQL(Structured Query Language,结构化查询语言)。SQL 语言是目前广泛使用的关系数据库标准语言,是各种数据库交互方式的基础。 在之前的文章中,我们已经掌握了SQL语言的基本概念以及常用的DDL(数据定义)和DML(数据操作)语句。接下来,我们将探讨如何运用这些知识进行MySQL数据库的操作。在本篇文章中,我们将详细介绍基本的增、删、改、查等操作方法。 ![image.png](http://static.itsharecircle.com/231118/9f9f39ab6d46175ad82903d8b502ef13.png) 首先我们来回顾一下标识符命名规则: - 数据库名、表名不得超过30个字符,变量名限制为29个。 -...阅读全文

博文 2023-11-18 14:51:11 YDYXCODE

[完结24章]Qt 全流程实战企业级项目 - 云对象存储浏览器

![1.png](http://static.itsharecircle.com/240110/469a5f9429dd281097e09c8377876610.png) 一、什么是QT? Qt是一个跨平台的C++图形用户界面库,由挪威TrollTech公司出品,包括Qt、基于FrameBuffer的Qtopia Core、快速开发工具Qt Designer和国际化工具Qt Linguist等部分。Qt支持所有的UNIX系统,当然也包括Linux系统,还支持WinNT/Win2k、Windows 95/98平台。 二、QT的优点有哪些? 1、作为桌面前端的SDK,成熟度很高; 2、由商业公司控制,技术路线很稳定; 3、API没有大量采用晦涩难懂的模板,大部分都是传统的面向对象的编程方式,而且...阅读全文

博文 2024-01-10 10:48:53 udbmaidns

Maven下载安装与配置、Idea配置Maven(详细版)

>Maven是Apache软件基金会的一个开源项目,是一款优秀的项目构建工具,它主要用于帮助开发者管理项目中jar以及jar之间的依赖关系,最终完成项目编译,测试,打包和发布等工作。 前面我们已经简单介绍了Maven的概念、特点及使用,本篇文章就来给大家出一个详细的安装和配置教程,还没有安装Maven的小伙伴要赶紧收藏起来哦! 首先给大家解释一下为什么学习Java非要学Maven不可。 ## 一、为什么要学习Maven? 大家在读这篇文章之前大部分人都已经或多或少的经历过项目,说到项目,在原生代码无框架的时候,最痛苦的一件事情就是要在项目中导入各种各样使用的jar包,jar太多就会导致项目很难管理。 需要考虑到jar包之间的版本适配的问题还有去哪找项目中使用的这么多的jar包,等等。这个时候...阅读全文

博文 2023-12-14 15:21:55 YDYXCODE

天翼云VPC支持专线健康检查介绍

本文分享自天翼云开发者社区《天翼云VPC支持专线健康检查介绍》,作者:汪****波天翼云支持本地数据中心IDC(Internet Data Center)通过冗余专线连接到天翼云云上专有网络VPC(Virtual Private Cloud)时,需要在本地IDC侧和VPC侧分别配置健康检查来检测物理专线的连通性。当其中一条物理专线检测出故障时,可以顺利切换到另一条物理专线。如图1所示,天翼云控制器在云侧部署了对专线客户侧互联IP1的探测会话,源IP我们可以选择云侧VPC网段选择,例如VPC网段为10.0.0.0/24的地址,我们可以选择10.0.0.100作为健康检查IP1。另一条专线进行类似配置对专线客户侧互联IP2的探测会话,源IP我们可以选择云侧VPC网段选择,例如VPC网段为10.0...阅读全文

博文 2024-05-17 14:41:34 Tianyiyun

基于三层流量卸载方案的子网路由

本文分享自天翼云开发者社区《基于三层流量卸载方案的子网路由》,作者:l****n顾名思义,子网路由是子网级别的。如果子网关联了子网路由,那么会优先查子网路由表中的路由。通过使用子网路由,用户的虚拟私有网络将具备一些高/级的功能,比如在VPC中部署集中式防火墙等。本文介绍的子网路由功能是基于三层流量卸载方案、通过OpenFlow流表方式来实现的。在介绍子网路由之前,先了解一下东西向三层流量卸载方案。如图1所示,vm1、vm2和vm3分别属于三个不同网段的子网,同属于一个VPC,即三层可通。在卸载之前,同VPC三层流量均需要通过租户网关TGW拉通,导致TGW的流量压力较大,无法满足大客户对于同VPC三层互访流量的需求。​图1 基本组网图卸载前同主机跨网段和跨主机跨网段互访流量路径分别如下图2和图...阅读全文

博文 2024-05-31 10:36:18 Tianyiyun

可视化全链路日志追踪

1. 背景1.1 业务系统日益复杂随着互联网产品的快速发展,不断变化的商业环境和用户诉求带来了纷繁复杂的业务需求。业务系统需要支撑的业务场景越来越广、涵盖的业务逻辑越来越多,系统的复杂度也跟着快速提升。与此同时,由于微服务架构的演进,业务逻辑的实现往往需要依赖多个服务间的共同协作。总而言之,业务系统的日益复杂已经成为一种常态。1.2 业务追踪面临挑战业务系统往往面临着多样的日常客诉和突发问题,“业务追踪”就成为了关键的应对手段。业务追踪可以看做一次业务执行的现场还原过程,通过执行中的各种记录还原出原始现场,可用于业务逻辑执行情况的分析和问题的定位,是整个系统建设中重要的一环。目前在分布式场景下,业务追踪的主流实现方式包括两类,一类是基于日志的ELK方案,一类是基于单次请求调用的会话跟踪方案。...阅读全文

博文 2024-07-16 14:59:34 美团技术团队

CBAM注意力模型介绍

本文分享自天翼云开发者社区《CBAM注意力模型介绍》,作者:Liuzijia近年来,注意力机制在各项深度学习任务中表现出色。研究表明,人类视觉感知过程中,注意力机制发挥了积极的效果,可以帮助人们高效和自适应的处理视觉信息并聚焦于显著的画面区域,从而能够做出最准确的判断。因此,通过模拟视觉注意力机制,在网络结构中加入注意力模块,使模型可以更加关注待分类图像中的关键信息,抑制不相关的特征信息,促使模型对重要的特征区域更加敏感,从而有效提升相关任务的性能。本文简要介绍一种经典的混合注意力模型CBAM。CBAM[1]是一种结合了通道与空间注意力的混合注意力模块,通过该模块可以自适应的强化特征提取过程。​图1 CBAM结构(引用自文献[1])图1为CBAM的结构。对于输入特征图,该模块会依次推断出一个...阅读全文

博文 2024-06-24 17:29:03 Tianyiyun

ZOS对象存储跨域资源访问的实现和使用

本文分享自天翼云开发者社区《ZOS对象存储跨域资源访问的实现和使用》,作者:对象存储二三事跨域的定义跨域指的是从一个域名去请求另外一个域名的资源,即跨域名请求。跨域时,浏览器不能执行其他域名网站的脚本,这是由浏览器的同源策略造成的,是浏览器施加的安全限制。同源策略是一种约定,是浏览器最核心也最基本的安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源 ,这是一个用于隔离潜在恶意文件的重要安全机制。同源的定义所谓同源是指:请求的url与当前网页的协议、域名、端口三者都相同,只要三者之间有一个不同,就不是同源,发送的请求即跨域请求。基于同源策略,浏览器都会阻止跨域请求,如下图所示:​CORSCORS是一个W3C标准,全称是跨域资源共享(cross-origin resource ...阅读全文

博文 2024-08-02 16:53:47 Tianyiyun

rbd常用的配置参数

本文分享自天翼云开发者社区《rbd常用的配置参数》,作者:l****nrbd的基本介绍rbd的架构如下图所示:​rbd采用CRUSH算法实现数据的随机分布。CRUSH算法,即Controlled Replication Under Scalable Hashing,是一种基于哈希的数据分布算法。CRUSH算法以数据唯一标识符、当前存储集群的拓扑结构以及数据备份策略作为CRUSH的输入,可以随时随地通过计算获取数据所在的底层存储设备并直接通信获取或者写入数据,从而避免查表操作,实现去中心化和高度并发,将数据均衡的存储到各个存储节点,实现数据存储的负载均衡;另外去中心化以及哈希的数据随机分布,使得rbd存储在理论上具备无限的可扩展性。CRUSH算法支持数据的多种备份策略,支持可配置副本数,支持存...阅读全文

博文 2024-07-16 16:08:32 Tianyiyun

基于空域时空图卷积的步态情绪识别方法

本文分享自天翼云开发者社区《基于空域时空图卷积的步态情绪识别方法》,作者:w****n步态轨迹是一帧帧图结构数据,图结构就是由点和边组成的非欧几里得数据。图结构数据与欧几里得数据,还是存在很大的差距,所以不能直接将卷积操作应用于图结构数据上,从而产生了专门处理图结构数据的图卷积操作。图卷积分为两种:基于空域和基于频域。本文介绍的是基于基于空域图卷积的步态情绪识别方法。空域卷积通过将相邻节点的信息进行聚合来类比传统卷积。结合MPNN(消息传递网络)的思想,空域卷积在形式上可以分解为两个过程:第一个过程是确定每个节点的邻域节点并将节点的信息传递给相邻的节点;第二个过程是节点获取到相邻节点信息后,需要经过相乘求和的方法将信息进行聚合,从而实现节点的状态更新。基于Shif时空图卷积的步态情绪识别网络...阅读全文

博文 2024-08-23 17:41:36 Tianyiyun

饿了么监控系统 EMonitor 与美团点评 CAT 的对比-腾讯云开发者社区

背景介绍饿了么监控系统 EMonitor :是一款服务于饿了么所有技术部门的一站式监控系统,覆盖了系统监控、容器监控、网络监控、中间件监控、业务监控、接入层监控以及前端监控的数据存储与查询。每日处理总数据量近 PB ,每日写入指标数据量百T,每日指标查询量几千万,配置图表个数上万,看板个数上千。CAT:是基于 Java 开发的实时应用监控平台,为美团点评提供了全面的实时监控告警服务。本文通过对比分析下两者所做的事情为契机讨论监控系统或许该有的面貌,以及浅谈下监控系统发展的各个阶段。CAT 做的事情(开源版)首先要强调的是这里我们只能拿到 GitHub 上开源版 CAT 的最新版 3.0.0 ,所以是基于此进行对比。接下来说说 CAT 做了哪些事情?抽象出监控模型抽象出 Transaction...阅读全文

博文 2024-09-06 14:29:47 腾讯云

超大规模数据库集群保稳系列之三:美团数据库容灾体系建设实践

1 容灾介绍我们通常会把故障分为三大类,一是主机故障,二是机房故障,三是地域故障。每类故障都有各自的诱发因素,而从主机到机房再到地域,故障发生概率依次越来越小,而故障的影响却越来越大。容灾能力的建设目标是非常明确的,就是要能够应对和处理这种机房级和地域级的大规模故障,从而来保障业务的连续性。近几年,业界也发生了多次数据中心级别的故障,对相关公司的业务和品牌产生了非常大的负面影响。当前容灾能力已经成为众多IT企业建设信息化系统的必选项。2 业务容灾架构2.1 容灾架构演进容灾架构从最早期的单活形态(同城主备)到同城多活形态,再演化到异地多活,根据这个路径可以将容灾分为容灾1.0、容灾2.0、容灾3.0三个阶段。容灾1.0:容灾体系围绕数据建设,多以主-备的方式部署,但备用机房不承担流量,基本上...阅读全文

博文 2024-09-14 16:48:05 美团技术团队

【摄影学堂】机械快门、电子快门、电子前帘快门的区别

当今的许多相机,尤其是无反相机,都可以让您在机械快门和电子快门之间进行选择。有些相机还有第三种选择,称为“电子前帘快门”(EFCS),它是机械快门与电子快门的混合体。每种快门机制都有利有弊,如果您选错了快门方式,可能会影响到图像质量。什么是机械快门?机械快门是静态摄影默认的快门机制。许多旧一些的相机只允许您使用机械快门拍照。机械快门使用物理“快门帘幕”,一般由两个帘幕组成,像舞台“拉幕”一样左右或上下缝隙“划过”,以便于光线照射到传感器中。您可以在图像底部附近看到两个快门帘幕之间的间隙,如下图所示。什么是电子快门?电子快门如今越来越流行,电子快门通过逐行读取相机传感器的数据来工作。一些电影摄影机有一种叫做“全局快门”的东西,它可以同时读取整个传感器,而不是逐行读取,但是,至少目前,这项技术还...阅读全文

博文 2024-11-04 11:37:31 www.360doc.com

HTTP2,性能测试,

WeTest 导读 HTTP/1.X出色地满足互联网的普遍访问需求,但随着互联网的不断发展,其性能越来越成为瓶颈。IETF在2015年发布了HTTP/2标准, 着重于提高HTTP的访问体验, HTTP2优势主要包括: 二进制传输、头部压缩、多路复用和服务器推送(Server Push)。 截止目前, 大部分CDN厂商已经宣布支持HTTP/2,然而”支持”大多省略了服务器推送(ServerPush)特性。估计这和nginx开源版本没有支持Server Push相关。为提供完备的HTTP2能力,腾讯CDN现已完成HTTP/2的Server Push支持,并完成了详细的性能测试。 序言 在介绍Server Push功能之前,先来分析网站的加载过程。图1是腾讯课堂(https://ke.qq.com...阅读全文

博文 2023-09-14 10:44:06 wetest.qq.com