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

IntelliJ IDEA 常用快捷键 之 Mac 版_开发工具_CG国斌的博客

IntelliJ IDEA设置代码补全快捷键 01-14 阅读数 4067 由于IDEA原本的代码自动提示快捷键可能会跟输入法的快捷键冲突,所以更改首先File->Settings再将设置代码自动提示的快捷键设置为alt+/即可... 博文 来自: a549654065的博客 idea补全代码快捷键 09-17 阅读数 1432 两种方案:一:newString().var;回车即可;二:newString();ctrl+alt+v即可; 博文 来自: 乔治大哥的博客 IntelliJ IDEA For Mac 快捷键 03-09 阅读数 384 建议将 Mac 系统中与 IntelliJ IDEA 冲突的快捷键取消或更改,不建议改 IntelliJ IDEA 的默认快捷键。http:...阅读全文

博文 2020-04-09 13:05:38 CSDN博客

长连接/websocket/SSE等主流服务器推送技术比较

最近做的某个项目有个需求,需要实时提醒client端有线上订单消息。所以保持客户端和服务器端的信息同步是关键要素,对此我们了解了可实现的方式。本文将介绍web常用的几种方式,希望给需要服务器端推送消息的同学在选型上有一点启发。一、推送技术常用的集中实现的实现方式1.1 短连接轮询:前端用定时器,每间隔一段时间发送请求来获取数据是否更新,这种方式可兼容ie和支持高级浏览器。通常采取setInterval或者setTimeout实现。(轮询示意图)通过递归的方法,在获取到数据后每隔一定时间再次发送请求,这样虽然无法保证两次请求间隔为指定时间,但是获取的数据顺序得到保证。 缺点:1、页面会出现‘假死’setTimeout在等到每次EventLoop时,都要判断是否到指定时间,直到时间到再执行函数,...阅读全文

博文 2020-05-15 07:26:05 知乎

查看堆外内存_运维_浅蓝浅蓝

Java堆外内存排查小结 06-29 阅读数 1万+ 简介JVM堆外内存难排查但经常会出现问题,这可能是目前最全的JVM堆外内存排查思路。通过本文,你应该了解:pmap命令gdb命令perf命令内存RSS、VSZ的区别javaNMT起因这几天遇到一个比较... 博文 来自: 小姐姐味道 阿里巴巴 Arthas 3.1.0版本:在线教程、内存编译器和强大的自动补全 02-14 阅读数 52 Arthas是Alibaba开源的Java诊断工具,深受开发者喜爱。从Arthas上个版本发布,已经过去两个多月了,Arthas 3.1.0版本不仅带来大家投票出来的新LOGO,还带来强大的新功能和更... 博文 来自: weixin_33975951的博客 JVM堆外内存问题排查 07-15 阅读数 75...阅读全文

博文 2020-04-22 10:34:46 CSDN博客

JDK动态代理为什么必须用接口_Java_秀才的专栏

jdk的动态代理及为什么需要接口 05-14 阅读数 3437 参考文章:https://blog.csdn.net/zxysshgood/article/details/78684229动态代理有关,无非是使用JDK动态代理,和cglib动态代理。一直不待明白的... 博文 来自: 可爱马莲花的博客 深入分析JDK动态代理为什么只能使用接口 11-02 阅读数 403 初学JDK代理时,我们只知道调用一段构造方法Proxy.newProxyInstance(ClassLoader loader, Class[] interfaces, Invoca... 博文 来自: u014301265的博客 Java 动态代理为啥需要接口??? 03-08 阅读数 845 我们通过查看源码new...阅读全文

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

关于mysql中LOAD DATA LOCAL INFILE指定列_数据库_qq_31083701的博客

mysql load data部分字段的正确写法 05-30 阅读数 6321 在日常运维中,会经常遇到将文件中数据导入到数据库中,如果是.sql文件,直接采用source方式即可;如果是.csv、.txt文件,可以采用 load data 方式。这两种方式都十分熟悉,这里说一种... 博文 来自: MYSQL轻松学的专栏 mysql LOAD DATA INFILE 导入数据某一列为空 10-08 SQL 语句: LOAD DATA LOCAL INFILE 'data_info.txt' INTO TABLE t1 IGNORE 1 LINES (@date,@time,@name,@weight_lb,@state) SET dt = CONCAT(@date,' ',@time), ...阅读全文

博文 2020-04-24 08:11:28 CSDN博客

【主板上各种接口和附属部件科普】

前言:下一篇文章我打算简单介绍如何挑选主板,那么在下一篇文章写出来之前,我们先简单了解一下主板上那些沟沟槽槽,点点块块,详细了解一下主板各个接口以及附属部件的功能。顺带让一些小白在装机的时候,知道主板上这些东西都是干啥的,不至于看着布满密密麻麻电容的主板一脸蒙蔽。正文部分:【选个用来举例的主板】如果想要把目前所有的主板各种附属功能都讲一遍,那么我们最好直接找一个功能最多的主板,那么这里我找到一个图片素材比较多,而且也是非常有特色的主板,华硕Asus ROG Maximus XI Formula(M11F)图片素材来自:这可能是最漂亮的Z390--ASUS ROG Maximus XI Formula评测首先看到这个主板的时候大家应该都发现了,这主板和普通主板还不一样,M11F整块主板的绝大多...阅读全文

博文 2020-07-11 04:32:29 知乎

Mac下MySQL中LOAD DATA INFILE出现The used command is not allowed with this MySQL version问题_数据库_AeroZhou

解决“LOAD DATA local INFILE”时出现The used command is not allowed with this MySQL version问题 09-07 阅读数 6440 “LOAD DATA local INFILE”时出现The used command is not allowed with this MySQL version问题。第一是版本确实过低,低于5.0... 博文 来自: ziyou434的博客 使用HeidiSQL连接Mysql数据库:导入本地csv文件,报错解决方法 02-16 阅读数 1241 第一次使用HeidiSQL连接MySQL,数据库连接成功后,进行csv文件的导入。本地文件存储于:尝试在heidiSQL中采用导入csv加载本地...阅读全文

博文 2020-04-24 08:13:46 CSDN博客

从科学记数法到浮点数标准IEEE 754 - 微信公众号:二进制之路

很遗憾,由于这篇文章有大量的公式,如果直接发表内容公式会显示不了,因此只能发成图片。 如果想获得更好的阅读体验,请点击:从科学记数法到浮点数标准IEEE 754 参考 https://zh.wikipedia.org/wiki/IEEE_754 https://zh.wikipedia.org/zh-hans/%E6%B5%AE%E7%82%B9%E6%95%B0 https://zh.wikipedia.org/wiki/%E7%A7%91%E5%AD%A6%E8%AE%B0%E6%95%B0%E6%B3%95 https://zh.wikipedia.org/wiki/NaN 《Java虚拟机规范(Java SE 7)》 《深入理解计算机系统》第2版 《码出高效》Java开发手册 htt...阅读全文

博文 2019-07-29 10:15:02 ITeye博客

Golang - 调度剖析【第二部分】 - Golang 攻略

回顾本系列的第一部分,重点讲述了操作系统调度器的各个方面,这些知识对于理解和分析 Go 调度器的语义是非常重要的。在本文中,我将从语义层面解析 Go 调度器是如何工作的,并重点介绍其高级特性。Go 调度器是一个非常复杂的系统,我们不会过分关注一些细节,而是侧重于剖析它的设计模型和工作方式。我们通过学习它的优点以便够做出更好的工程决策。 开始 当 Go 程序启动时,它会为主机上标识的每个虚拟核心提供一个逻辑处理器(P)。如果处理器每个物理核心可以提供多个硬件线程(超线程),那么每个硬件线程都将作为虚拟核心呈现给 Go 程序。为了更好地理解这一点,下面实验都基于如下配置的 MacBook Pro 的系统。 可以看到它是一个 4 核 8 线程的处理器。这将告诉 Go 程序有 8 个虚拟核心可用于并...阅读全文

博文 2019-06-18 07:15:00 SegmentFault 思否

SSE和WebSocket的用法和比较 - like2372

在我们日常开发中,会遇到服务端和客户端的通讯,今天我们就来比较一下HTML5新特性SSE和WebSocket的用法。 一,SSE 简介 SSE(Server-Sent Events,服务器发送事件)是围绕只读Comet 交互推出的API 或者模式。 SSE API允许网页获得来自服务器的更新(HTML5),用于创建到服务器的单向连接,服务器通过这个连接可以发送任意数量的数据。服务器响应的MIME类型必须是text/event-stream,而且是浏览器中的JavaScript API 能解析格式输出。SSE 支持短轮询、长轮询和HTTP 流,而且能在断开连接时自动确定何时重新连接。 客户端 //判断是否支持SSE if('EventSource' in window){ //初始化SSE v...阅读全文

梯度提升树(GBDT)原理小结 - 刘建平Pinard

在集成学习之Adaboost算法原理小结中,我们对Boosting家族的Adaboost算法做了总结,本文就对Boosting家族中另一个重要的算法梯度提升树(Gradient Boosting Decison Tree, 以下简称GBDT)做一个总结。GBDT有很多简称,有GBT(Gradient Boosting Tree), GTB(Gradient Tree Boosting ), GBRT(Gradient Boosting Regression Tree), MART(Multiple Additive Regression Tree),其实都是指的同一种算法,本文统一简称GBDT。GBDT在BAT大厂中也有广泛的应用,假如要选择3个最重要的机器学习算法的话,个人认为GBDT应该...阅读全文

博文 2020-03-24 03:41:00 博客园

linux sort,uniq,cut,wc命令详解 - ggjucheng

sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出。如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序。 sort语法 [root@www ~]# sort [-fbMnrtuk] [file or stdin] 选项与参数: -f :忽略大小写的差异,例如 A 与 a 视为编码相同; -b :忽略最前面的空格符部分; -M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法; -n :使用『纯数字』进行排序(默认是以文字型态来排序的); -r :反向排序; -u :就是 uniq ,相同的数据中,仅出现一行代表; -t :分隔符,默认是用 [tab] 键来分隔; -k :以那个区间 (field) 来...阅读全文

博文 2021-01-28 12:40:43 博客园

计算机浮点运算精度问题的一些探讨_薛梦冉

本篇博客要点如下: 浮点运算常见的一些精度问题 浮点运算精度问题产生的原因 浮点运算精度问题的几点疑问进制的相互转换 十进制和二进制整数转换十进制和二进制小数转换 浮点数据的存储 IEEE 754标准浮点数表示举例误差分析 浮点精度丢失问题的几种解决方案 转换成整型进行计算使用四舍五入计算使用Decimal函数计算 参考资料 浮点运算常见的一些精度问题 相信各位在进行浮点型数据运算的时候,出现过一些不符合常规认知,或者是我们不愿出现的结果, 比如下面这些示例(以MongoDB,Java,Python为例): mongoDB中对某种类型的交易金额聚合求和的时候: db.FACT_TRADE_POSP.aggregate([ {$match:{'AC_DT':'20200306','ETL_SO...阅读全文

博文 2020-09-29 03:44:41 CSDN博客

Hadoop中的Mapper和Reducer数量设定

在对Mapper调优的过程中,一个经验法则是: map任务最好拥有一分钟以上的运行时间。 因为如果任务运行时间过短,将导致在整个作业的执行过程中任务启动所花费的时间过大,从而降低了实际的任务执行效率。 对map任务的运行时间影响最大的是Mapper的个数,不过与Reducer不同,Mapper的个数是无法显示指定的。 调节Mapper数量的一种方式是设置参数mapred.jobtracker.maxtasks.per.job, 但其只能限制每个job中并发运行的map或reduce任务的上限,而当实际运行的map数低于该上限时,该参数将失效。 如果想要对Mapper个数进行更加直接有效的控制,需要指定输入数据的分片大小。 输入分片(input split)是MapReduce框架为使map任...阅读全文

博文 2020-08-31 02:33:58 Summer is Green

定位IO瓶颈的方法,iowait低,IO就没有到瓶颈? - timer_go

通过分析mpstat的iowait和iostat的util%,判断IO瓶颈 IO瓶颈往往是我们可能会忽略的地方(我们常会看top、free、netstat等等,但经常会忽略IO的负载情况),今天给大家详细分享一下如何确认一台服务器的IO负载是否到达了瓶颈,以及可能优化、定位的点。 mpstat中看CPU的iowait高了,难道IO就瓶颈了吗??? 先来看一台典型的IO密集型服务器的cpu统计图: 可以看到,CPU总使用率不高,平均1.3%,max到5.6%,虽然大部分都耗在了iowait上,但才百分之五左右,应该还没到瓶颈吧??? 错了!这里要特别注意:iowait≠IO负载,要看真实的IO负载情况,一般使用iostat –x 命令: 你会发现iowait虽然只有5%,但是iostat中看到...阅读全文

博文 2020-11-13 09:43:04 博客园

15. 浮点数算法:争议和限制 — Python tutorial 3.6.3 documentation

15. 浮点数算法:争议和限制¶ 浮点数在计算机中表达为二进制(binary)小数。例如:十进制小数: 0.125 是 1/10 + 2/100 + 5/1000 的值,同样二进制小数: 0.001 是 0/2 + 0/4 + 1/8。这两个数值相同。唯一的实质区别是第一个写为十进制小数记法,第二个是二进制。 不幸的是,大多数十进制小数不能完全用二进制小数表示。结果是,一般情况下,你输入的十进制浮点数仅由实际存储在计算机中的近似的二进制浮点数表示。 这个问题更早的时候首先在十进制中发现。考虑小数形式的 1/3 ,你可以来个十进制的近似值。 0.3 或者更进一步的, 0.33 或者更进一步的, 0.333 诸如此类。如果你写多少位,这个结果永远不是精确的 1/3 ,但是可以无限接近 1/3 。...阅读全文

博文 2020-09-29 03:14:22 www.pythondoc.com

Java的BigDecimal如何解决浮点数精度问题_Just for Fun LA

如题,今天我们来看下java.math.BigDecimal是如何解决浮点数的精度问题的,在那之前当然得先了解下浮点数精度问题是什么问题了。下面我们先从IEEE 754说起。 IEEE 754 IEEE二进制浮点数算术标准(IEEE 754)是20世纪80年代以来最广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用。这个标准定义了表示浮点数的格式(包括负零-0)与反常值(denormal number)),一些特殊数值(无穷(Inf)与非数值(NaN)),以及这些数值的“浮点数运算符”;它也指明了四种数值舍入规则和五种异常状况(包括异常发生的时机与处理方式)。 下面我们就以双精度,也就是double类型,为例来看看浮点数的格式。 signexponentfraction1位11位52位...阅读全文

博文 2020-09-29 03:41:26 CSDN博客

背景 又是一年一度的秋季校招开始了,以往的校招各个公司都会在公司现场或者学校现场安排学生进行现场面试?但是今年由于疫情的原因,不允许让同学在现场进行一个面试,所以今年的面试形式就从线下转到了线上,面试形式的转变,但是我们考核学生的方式依旧没有转变。校招的同学和社招的同学有很大的不同,他们没有丰富的工作经验,没有太多的项目经历,那么我们如何去衡量一个校招的同学呢?那就是基础和潜力,怎么去理解基础呢?俗话说不积跬步,无以至千里,不积小流,无以成江海,如果没有一个好的基础那么怎么才能成为一个优秀的工程师呢。如何去考察一个学生基础的好坏呢?我觉得有三个方面比较重要,计算机网络,操作系统以及算法和数据结构,通常来说计网考察得特别多,常见的一些问题:网络模型分层TCP和UDP的区别TCP三次握手和四次挥...阅读全文

博文 2020-09-06 14:35:04 mp.weixin.qq.com

如何理解BIO、NIO、AIO的区别?

很多文章在谈论到BIO、NIO、AIO的时候仅仅是抛出一堆定义,以及一些生动的例子。看似很好理解。但是并没有将最基础的本质原理显现出来,如果没有没有从IO的原理出发的话是很难理解这三者之间的区别的。所以本篇文章从Java是如何进行IO操作为开头进行分析。 Java中的IO原理 首先Java中的IO都是依赖操作系统内核进行的,我们程序中的IO读写其实调用的是操作系统内核中的read&write两大系统调用。 那内核是如何进行IO交互的呢? 网卡收到经过网线传来的网络数据,并将网络数据写到内存中。 当网卡把数据写入到内存后,网卡向cpu发出一个中断信号,操作系统便能得知有新数据到来,再通过网卡中断程序去处理数据。 将内存中的网络数据写入到对应socket的接收缓冲区中。 当接收缓冲区的数据写好之...阅读全文

博文 2021-08-16 03:05:31 juejin.cn

利用转换流将GBK格式文件以UTF-8输出_Java_十里の清风

utf-8格式如何转化为gbk格式 02-27 阅读数 6225 utf-8格式如何转化为gbk格式 今天在编码的时候由于存储的数据和取得数据格式不一致,... 博文 来自: HY845638534的博客 解决中文字符乱码问题,如何将gbk格式转换utf-8格式 04-06 阅读数 2104 中文乱码的原因是因为编码格式是gbk的,而显示的时候是utf-8格式的,所以需要将其utf-8格式,才能正常显示出来。1.gbk生成utf8程序需要经过两次转化。 1.gbk->uni... 博文 来自: u012681014的专栏 Java练习>转换流>>将GBK编码的文本文件,转换为UTF-8编码的文本文件 08-13 阅读数 1312 练习:转换文件编码。题目:将GBK编码的文本文件,转换为...阅读全文

博文 2020-04-26 06:30:21 CSDN博客

为什么阿里巴巴禁止使用BigDecimal的equals方法做等值比较?

BigDecimal,相信对于很多人来说都不陌生,很多人都知道他的用法,这是一种java.math包中提供的一种可以用来进行精确运算的类型。 很多人都知道,在进行金额表示、金额计算等场景,不能使用double、float等类型,而是要使用对精度支持的更好的BigDecimal。 所以,很多支付、电商、金融等业务中,BigDecimal的使用非常频繁。而且不得不说这是一个非常好用的类,其内部自带了很多方法,如加,减,乘,除等运算方法都是可以直接调用的。 除了需要用BigDecimal表示数字和进行数字运算以外,代码中还经常需要对于数字进行相等判断。 关于这个知识点,在最新版的《阿里巴巴Java开发手册》中也有说明: 这背后的思考是什么呢? 我在之前的CodeReview中,看到过以下这样的低级...阅读全文

博文 2021-05-26 02:44:44 juejin.cn

Netty 权威指南笔记(二):Java NIO 和 Netty 对比_albon arith

Netty 权威指南笔记二Java NIO 和 Netty 对比 Java NIO 开发Netty 开发 示例程序 Netty 权威指南笔记(二):Java NIO 和 Netty 对比 Netty 是业界流行的 NIO 框架之一,它的健壮性、功能、性能、可定制性和可扩展性在同类框架中都说首屈一指的,也已经得到了成百上千商用项目的验证。Netty 框架都有什么优点呢? API 使用简单,开发门槛低。功能强大,预置多种编解码功能,支持多种主流协议。定制能力强,可以通过 ChannelHandler 对通信框架灵活扩展。性能高。成熟稳定,社区活跃,已经修复了 Java NIO 所有的 Bug。经历了大规模商业应用的考验,质量有保证。 Java NIO 开发 我们看一看在 笔记(一)里面的 Jav...阅读全文

博文 2021-08-27 08:12:00 CSDN博客

prometheus的summary和histogram指标的简单理解_prometheus histogram_wtan825的博客

prometheus的客户端与服务端 客户端是提供监控指标数据的一端(如写的exporter)。prometheus提供了各种语言的客户端库,需要通过Prometheus客户端库把监控的代码放在被监控的服务代码中。当Prometheus获取客户端的HTTP端点时,客户端库发送所有跟踪的度量指标数据到服务器上。详情见客户库服务端是指prometheus server,拉取、存储和查询各种各种指标数据。 histogram histogram是柱状图,在Prometheus系统中的查询语言中,有三种作用: 对每个采样点进行统计(并不是一段时间的统计),打到各个桶(bucket)中对每个采样点值累计和(sum)对采样点的次数累计和(count) 度量指标名称: [basename]的柱状图, 上面...阅读全文

博文 2023-09-11 03:21:56 CSDN博客

Golang bytes缓冲区使用介绍_golang bytebuffer_小镇程序员的博客

缓冲区原理简介: go字节缓冲区底层以字节切片做存储,切片存在长度len与容量cap, 缓冲区写从长度len的位置开始写,当len>cap时,会自动扩容。缓冲区读会从内置标记off位置开始读(off始终记录读的起始位置),当off==len时,表明缓冲区已全部读完 并重置缓冲区(len=off=0),此外当将要内容长度+已写的长度(即len) <= cap/2时,缓冲区前移覆盖掉已读的内容(off=0,len-=off),从避免缓冲区不断扩容。 package main import ( "bytes" "fmt" ) func main() { byteSlice := make([]byte, 20) byteSlice[0] = 1 // 将缓冲区第一个字节置1 byteBuffer ...阅读全文

博文 2023-09-13 14:31:20 CSDN博客

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

负载均衡详解

本文分享自天翼云开发者社区《负载均衡详解》,作者:杨锦负载均衡(Load Balancing)是一种将网络流量或请求分发到多个服务器或资源的技术,以确保这些服务器或资源能够更均匀地处理负载,提高系统的性能、可用性和可伸缩性。负载均衡通常应用于Web服务、应用程序服务器、数据库服务器以及其他网络应用中。负载均衡的目标:均衡负载:主要目标是分配流量或请求,确保各个服务器或资源之间负载均匀,避免某一台服务器负载过高,而其他服务器处于低负载状态。提高性能:通过将流量分散到多个服务器上,可以提高整体性能。每个服务器只需处理一部分请求,从而降低了每台服务器的响应时间。提高可用性:如果一个服务器出现故障或不可用,负载均衡器可以将流量重定向到其他正常运行的服务器上,从而提高系统的可用性和容错性。实现扩展性:...阅读全文

天翼云CDN全站加速产品对websocket协议的支持

本文分享自天翼云开发者社区《天翼云CDN全站加速产品对websocket协议的支持》,作者:郭****迎1、背景介绍HTTP 协议有一个缺陷:通信只能由客户端发起。这种单向请求的特点,注定了如果服务器有连续的状态变化,客户端要获知就只能使用轮询的方案。轮询是在特定的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,显而易见,轮询不仅效率特别低,且特别浪费带宽资源,因为HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多带宽资源。因此,工程师们一直在思考,有没有更好的方法。websocket 就是这样发明的。websocket 协议诞生于2...阅读全文

博文 2023-05-19 09:40:06 Tianyiyun

提升网站性能的秘诀:为什么Nginx是高效服务器的代名词?

在这个信息爆炸的时代,每当你在浏览器中输入一个网址,背后都有一个强大的服务器在默默地工作。而在这些服务器中,有一个名字你可能听说过无数次——Nginx。今天,就让我们一起探索这个神奇的工具。 ### 一、Nginx是什么 Nginx(发音为“enginex”)是一个开源的高性能HTTP和反向代理服务器。它由伊戈尔·赛索耶夫(IgorSysoev)于2002年创建,自那时起,Nginx因其稳定性、丰富的功能集、简单的配置文件以及低资源消耗而受到广大开发者和企业的喜爱。 ![image.png](http://static.itsharecircle.com/240204/fe11b55476b02484be1a2cdfee81fbc4.png) Nginx是一款轻量级的Web服务器/反向代理服...阅读全文

博文 2024-02-04 10:46:10 YDYXCODE

DPDK简介和原理

本文分享自天翼云开发者社区《DPDK简介和原理》,作者:s****nDPDK是一种绕过内核直接在用户态收发包来解决内核性能的瓶颈技术。什么是中断了解DPDK之前,首先需要先了解什么是中断,其实中断就是电信号,中断分两种:硬中断和软中断。什么是硬中断?硬中断是由与系统相连的外设(比如网卡、硬盘)自动产生的,主要是用来通知操作系统系统外设状态的变化。比如当网卡收到数据包的时候,就会发出一个中断。我们通常所说的中断指的是硬中断(hardirq)。什么是软中断?软中断为了满足实时系统的要求,中断处理应该是越快越好。linux为了实现这个特点,当中断发生的时候,硬中断处理那些短时间就可以完成的工作,而将那些处理事件比较长的工作,放到中断之后来完成,也就是软中断(softirq)来完成。硬中断和软中断有...阅读全文

博文 2024-08-23 10:14:22 Tianyiyun

Java实现负载均衡算法--轮询和加权轮询 - 渊渟岳

Java实现负载均衡算法--轮询和加权轮询 1.普通轮询算法 轮询(Round Robin,RR)是依次将用户的访问请求,按循环顺序分配到web服务节点上,从1开始到最后一台服务器节点结束,然后再开始新一轮的循环。这种算法简单,但是没有考虑到每台节点服务器的具体性能,请求分发往往不均衡。 代码实现: /** * 普通轮询算法 */ public class RoundRobin { private static Integer index = 0; private static List nodes = new ArrayList<>(); // 记录轮询输出结果 private static StringBuffer stringBuffer = new StringBuf...阅读全文

博文 2024-08-21 17:57:27 博客园

负载均衡重定向的验证方法

本文分享自天翼云开发者社区《负载均衡重定向的验证方法》,作者:y****n背景:为满足一些金融客户对于安全的需要,天翼混合云产品中的负载均衡支持重定向功能也就应运而生介绍:负载均衡的重定向功能的开启入口在添加监听器页面,且选择监听器协议为HTTP时,重定向开关才能打开,即当前支持HTTP重定向至HTTPS,详见下图:​验证方法:重定向功能是否真的能够将请求进行重定向则需要做进一步的深入验证,手段如下(以新租户为例):1、创建VPC,至少批量创建3个云主机A,B,C2、创建负载均衡证书3、创建负载均衡(内网即可,返回地址标注为lbip)与云主机所属同一个vpc4、添加HTTPS的监听器(端口标注为lbport1);创建云主机组且纳入云主机A和B设置相同的端口和权重;创建健康检查5、分别进入云主...阅读全文

博文 2025-01-06 16:57:35 Tianyiyun

朝夕 vue3.2 vite vant企业开发阅读

朝夕 vue3.2+vite+vant企业实战开发阅读app”是一门专注于Vue3.2、Vite和Vant技术栈的企业级实战课程,旨在帮助学员掌握现代前端开发的核心技能。获课:keyouit.xyz/13836/获取ZY↑↑方打开链接↑↑以下是其详细介绍: 课程内容 基础准备:包括Vue3.2核心特性与Composition API、Vite的配置与使用、Vant UI组件库的引入与使用。项目搭建:使用Vite初始化Vue3项目、配置路由(Vue Router)、状态管理(Pinia/Vuex)。阅读App核心功能开发:涵盖首页设计与实现(轮播图、推荐列表)、书籍分类与搜索功能、书籍详情页(目录、简介、评论)、阅读器功能开发(翻页、字体调整、夜间模式)、用户中心(登录、注册、书架管理)。高级...阅读全文

博文 2025-03-08 10:24:55 huo1234567

RocketMQ vs Kafka:深度解析两大消息队列的架构差异与选型指南

## RocketMQ vs Kafka:深度解析两大消息队列的架构差异与选型指南 ### 引言 在分布式系统中,消息队列是实现异步通信、流量削峰和系统解耦的核心组件。Apache RocketMQ 和 Apache Kafka 作为业界最主流的两种消息中间件,常被开发者拿来比较。两者虽同属Apache顶级项目,但在设计哲学、性能表现和适用场景上存在显著差异。本文将从技术架构、性能数据、功能特性等维度全面对比,并提供选型建议。 --- ### 一、核心定位与设计哲学 #### 1. **Kafka:大数据领域的“日志高速公路”** - **诞生背景**:LinkedIn为应对日志流处理需求设计。 - **核心目标**: - 海量数据的高吞吐传输(如用户行为日志、指标数据)。 - 构建实时流处...阅读全文

博文 2025-03-03 20:01:04 zhidiantech

朝夕教育 vue3.2 vite vant企业阅读app

朝夕教育-vue3.2+vite+vant企业实战-阅读app”是一门专注于Vue3.2、Vite和Vant技术栈的企业级实战课程,旨在帮助学员掌握现代前端开发的核心技能。获课:keyouit.xyz/13836/获取ZY↑↑方打开链接↑↑课程通过开发一个完整的阅读类App项目,深入讲解Vue3.2、Vite和Vant的使用技巧,适合有一定前端基础并希望提升实战能力的开发者。课程内容 基础准备:包括Vue3.2核心特性与Composition API、Vite的配置与使用、Vant UI组件库的引入与使用。项目搭建:使用Vite初始化Vue3项目、配置路由(Vue Router)、状态管理(Pinia/Vuex)。阅读App核心功能开发:涵盖首页设计与实现(轮播图、推荐列表)、书籍分类与搜索...阅读全文

博文 2025-03-08 10:26:24 huo1234567

批量创建云主机的整个过程

本文分享自天翼云开发者社区《批量创建云主机的整个过程》,作者:乐道上次我们讲述了云主机创建的流程,整个过程中并没有详细区分各个组件的基本功能,本章节将会为大家详细讲述批量创建过程中各个组件的处理过程。1、我们通过console或openapi进行批量创建云主机的下单操作,例如批量创建50台2、上述下单的信息会传递到IT,IT一方面会返回订单的基本信息(即我们平时看到的订单信息页面),另一方面会进行拆单,将创建50台拆单成50个子订单,并通过【服开】(服务开通这个组件)进行下单,服开会对订单进行处理3、之后将上述订单信息转发给MsgHandler完成订单的转发(MsgHandler是一个中间件,类似mq、kafaka)4、MsgHandler将50个子订单信息下发给Admin(我们平时在adm...阅读全文

博文 2025-03-14 11:12:09 Tianyiyun

云主机网络测试方法

本文分享自天翼云开发者社区《云主机网络测试方法》,作者:高淑杰测试指标pps:表示通过 UDP 进行批量数据传输时的数据传输吞吐量,能反映网络极限转发能力。bps:表示通过 TCP 进行批量数据传输时的数据传输吞吐量,能反映网络极限带宽能力。使用netperf进行网络测试0 环境准备创建两台相同配置 ECS, 其中一台作为server,另一台作为client规格:s7.xlarge.2镜像:centos 8.21 工具安装分别在两台ECS上安装netperftar zxvf netperf-2.7.0.tar.gz cd netperf ./configure make && make install netserver -h netperf -h2 测试bps在server端执行如下脚本p...阅读全文

博文 2025-03-24 15:28:22 Tianyiyun

高并发系统设计之负载均衡 1

在设计高并发系统时,负载均衡是确保系统能够高效、稳定处理大量请求的关键组件之一。它不仅有助于提高系统的可用性和响应速度,还能通过优化资源利用来降低成本。以下是关于高并发系统中负载均衡设计的详细探讨。​获课:keyouit.xyz/13983/获取ZY↑↑方打开链接↑↑负载均衡的作用提升性能:通过将请求分发到多个服务器上,可以有效减少单个服务器的压力,从而加快响应速度。增强可靠性:当某个服务器出现故障时,负载均衡器可以自动将流量导向其他健康的服务器,保证服务不中断。支持扩展性:便于向系统中添加更多服务器以应对不断增长的用户需求,实现水平扩展。实现负载均衡的技术方案1. 硬件负载均衡优点:高性能和稳定性,适合大规模部署。缺点:成本较高,配置复杂。示例产品:F5 BIG-IP, Citrix Ne...阅读全文

高并发-负载均衡

在处理高并发场景时,负载均衡是确保系统稳定性和性能的关键技术之一。通过合理配置和使用负载均衡策略,可以有效分散服务器压力,提高系统的可用性和响应速度。以下是关于如何实现高并发下的负载均衡的详细介绍。​获课:keyouit.xyz/13983/获取ZY↑↑方打开链接↑↑负载均衡的基本概念负载均衡(Load Balancing)是指将工作负载均匀地分配到多个计算资源上,如Web服务器、数据库服务器等,以优化资源利用、最大化吞吐量、减少延迟,并确保系统可靠性。实现负载均衡的技术和方法1. 硬件负载均衡器代表产品:F5 BIG-IP, Citrix NetScaler。优点:高性能、高可靠性,提供丰富的功能集如SSL卸载、内容交换等。缺点:成本较高,维护复杂。2. 软件负载均衡器Nginx:常用于反...阅读全文

动力节点SpringSecurity视频教程,springsecurity,jwt实战精讲

https://97it.top/13581/ 摘要 随着网络安全问题的日益严重,数据加密技术成为了保护用户隐私和信息安全的重要手段。Bcrypt编码器作为一种广泛应用于密码哈希处理的加密算法,在许多现代系统中得到广泛的应用。本文旨在探讨Bcrypt编码器的工作原理、优势以及在实际应用中的潜力,分析其在密码保护和安全性保障中的重要作用。 1. 引言 在现代互联网中,用户密码的安全性是保护个人信息和系统安全的核心问题之一。密码哈希算法作为密码存储与验证的一部分,承载着保证密码不被泄露的重要功能。Bcrypt作为一种流行的密码哈希算法,由于其强大的安全性和抗暴力破解能力,成为许多网站和应用程序的密码处理方案。Bcrypt的设计理念是通过在密码哈希过程中引入“盐值”(salt)和增加计算复杂度,极...阅读全文

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

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

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

Netty Boss EventLoopGroup 的多线程设置

--- ### **一、Boss EventLoopGroup 的多线程设置** 1. **默认配置与适用场景** • **单线程模式**:在大多数情况下,BossGroup 只需 **1 个线程**(即单个 `NioEventLoop`),即可高效处理连接请求。原因在于: ◦ 连接建立(Accept)是轻量级操作,单线程足以应对高并发连接。 ◦ 多线程会导致资源浪费,且无法提升连接处理效率(底层 `ServerSocketChannel` 仅绑定到一个线程的 Selector)。 • **多线程模式**:仅在以下场景需要设置多线程: ◦ **同时监听多个端口**(如 HTTP + HTTPS 双协议)。此时每个端口由不同的 Boss 线程处理。 ◦ **共享线程组**:当多个服务端实例共享...阅读全文

博文 2025-03-25 18:17:59 dalang

Redisson 延迟队列的并发安全机制

基于 Redisson 实现延迟队列时,**并不需要显式使用分布式锁**,但其底层通过 **Redis 原子操作和 Lua 脚本** 确保了并发安全。 --- ### 一、Redisson 延迟队列的并发安全机制 1. **原子性操作替代锁** Redisson 在操作 Redis 数据结构(如 zset、list)时,**通过 Lua 脚本封装多步操作**,确保原子性。例如: • **任务转移**:从 `redisson_delay_queue_timeout:SANYOU`(zset)到目标队列的转移操作; • **任务消费**:通过 `BLPOP` 或 `take()` 方法从目标队列获取任务。 **Lua 脚本的原子性**避免了多客户端重复获取同一任务的问题。 2. **有序集合(z...阅读全文

博文 2025-03-28 15:52:52 dalang

SpringBoot 3.x + Netty + MQTT 实战物联网智能充电桩|已完结

​获课♥》789it.top/14335/获取ZY↑↑方打开链接↑↑MQTT(Message Queuing Telemetry Transport)是一种轻量级的物联网通信协议,其报文长度计算主要涉及**剩余长度(Remaining Length)**字段的编码。剩余长度表示当前报文(可变头 + 负载)的总字节数,采用可变长度的编码方式,最多占用4字节。以下是详细的计算方法:1. 剩余长度(Remaining Length)的计算规则剩余长度的编码规则如下:每个字节的最高位(第8位)为标志位:0:表示这是最后一个字节。1:表示后续还有字节。剩余长度按低7位优先存储,即数值的低7位在前,高位在后。最终长度 = 所有字节的低7位按权重 (128^0, 128^1, 128^2, \ldots)...阅读全文

零声 C/C++Linux服务器开发/高级架构师

​获课♥》jzit.top/14542/获取ZY↑↑方打开链接↑↑在高速网络场景中,DPDK通过用户态驱动和零拷贝技术突破内核瓶颈,将网络吞吐量提升十倍;自定义协议栈以模块化设计实现灵活通信,在NFV和负载均衡场景释放性能潜力。掌握这两大技术,开发者可构建微秒级延迟、百万级并发的网络应用,直面5G时代的数据洪流。内容由DeepSeek-R1模型生成基于Linux和C++的高性能网络编程:从DPDK到自定义协议栈在高性能网络编程领域,Linux和C++的组合为开发者提供了强大的工具集。通过利用DPDK(Data Plane Development Kit)等底层技术,以及实现自定义协议栈,可以实现极高的网络吞吐量和低延迟。本文将深入探讨这一领域的核心概念、技术挑战以及实践路径,帮助开发者构建高...阅读全文