- 博客(904)
- 资源 (21)
- 收藏
- 关注
转载 【DNS】Linux上DNS缓存的开启和清理
DNS 缓存是一个临时数据库,用于存储有关以前的 DNS 查找的信息。换句话说,每当你访问网站时,你的操作系统和网络浏览器都会保留该域和相应 IP 地址的记录。这消除了对远程 DNS 服务器重复查询的需要,并允许你的 OS 或浏览器快速解析网站的 URL。但是在某些情况下,例如:对网络问题进行故障排除,或者在更改 DNS 解析器之后,你将需要刷新 DNS 缓存。这将清除缓存的 DNS 条目,并根据新配置的 DNS 设置执行后续查找以解析域。
2023-03-01 11:41:53
1042
转载 java反射性能-调研
在实际项目中,考虑到不同的数据使用者,我们经常要处理 VO、DTO、Entity、DO 等对象的转换,如果手动编写 setter/getter 方法一个个赋值,将非常繁琐且难维护。通常情况下,这类转换都是同名属性的转换(类型可以不同),我们更多地会使用 bean copy 工具,例如 Apache Commons BeanUtils、Cglib BeanCopier 等。在使用 bean copy 工具时,我们更多地会考虑性能,有时也需要考虑深浅复制的问题。本文将。
2023-03-01 11:35:33
108
转载 java并发编程——AQS
你可能会问,不需要设置 node.prev = tail 吗,当然需要,但是此时 Node 结点是没有进入队列的,我们对 Node 结点操作不存在竞争问题,也就不需要保证 CAS 操作,只需要在后面设置 tail 指针时进行一次 CAS 操作,如果 CAS 操作失败表示 tail 已经被改变,重新设置 node.prev = tail,直至 CAS 操作成功从而保证了前置域的原子性。从源码中可以看出来,每次 CAS 操作之前设置的是当前的结点的前置结点 node.prev,即保证了前置域设置的原子性。
2023-02-23 15:24:55
52
转载 Java8内存模型及溢出场景—永久代(PermGen)和元空间(Metaspace)
从上述结果可以看出,JDK 1.6下,会出现“PermGen Space”的内存溢出,而在 JDK 1.7和 JDK 1.8 中,会出现堆内存溢出,并且 JDK 1.8中 PermSize 和 MaxPermGen 已经无效。方法区也是所有线程共享。注意,这里我指定了堆内存的大小为16M,所以这个地方显示的count=14(这个数字不是固定的),至于为什么会是14或其他数字,需要根据 GC 日志来判断,具体原因会在下篇文章中给大家解释。这段程序以2的指数级不断的生成新的字符串,这样可以比较快速的消耗内存。
2023-02-23 15:21:58
119
转载 Java中transient关键字的详细总结
本文要介绍的是Java中的transient关键字,transient是短暂的意思。对于transient 修饰的成员变量,在类的实例对象的序列化处理过程中会被忽略。因此,transient变量不会贯穿对象的序列化和反序列化,生命周期仅存于调用者的内存中而不会写到磁盘里进行持久化。1. 序列化Java中对象的序列化指的是将对象转换成以字节序列的形式来表示,这些字节序列包含了对象的数据和信息,一个序列化后的对象可以被写到数据库或文件中,也可用于网络传输。
2023-02-23 15:13:00
47
转载 Java volatile关键字最全总结:原理剖析与实例讲解
即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。原子性是拒绝多线程操作的,不论是多核还是单核,具有原子性的量,同一时刻只能有一个线程来对它进行操作。简而言之,在整个操作过程中不会被线程调度器中断的操作,都可认为是原子性。例如 a=1是原子性操作,但是a++和a +=1就不是原子性操作。Java中的原子性操作包括:(1)基本类型的读取和赋值操作,且赋值必须是值赋给变量,变量之间的相互赋值不是原子性操作。(2)所有引用reference的赋值操作。
2023-02-23 15:11:00
18
转载 Java 泛型中的通配符
extends Animal>,指定了范围只能是Animal的子类,但是用List,没法做到缩小范围。我们说Java的泛型是伪泛型,那是因为泛型信息只存在于代码编译阶段,在生成的字节码中是不包含泛型中的类型信息的,使用泛型的时候加上类型参数,在编译器编译的时候会去掉,这个过程为类型擦除。首先其实我们并不关心传进来的集合内是什么对象,我们只关系我们需要转换的集合内是什么对象,所以我们传进来的集合就可以用List
2023-02-17 17:30:55
51
转载 Springboot 打印唯一traceId,Springboot+MDC+traceId日志中打印唯一traceId
想了解Springboot+MDC+traceId日志中打印唯一traceId的相关内容吗,W3C_0101在本文为您仔细讲解Springboot 打印唯一traceId的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Springboot,打印唯一traceId,Springboot,打印traceId,下面大家一起来学习吧。
2023-02-09 15:25:17
340
转载 “ 字节码插桩 “ 技术简介
性能优化 ,插件化 ,热修复 ,等技术都需要用到" 字节码插桩 "相关技术;OOP 面向对象编程, 主要针对业务逻辑进行开发 ,大特点封装继承多态;大特点 封装 , 继承 , 多态;大特点封装继承多态;AOP 面向切面编程, 主要针对某个动作进行开发;如 : 给 Android 中所有的 Activity 添加安全策略 , 如果每个页面逐个手动添加 , 可能存在遗漏 , 并且会造成代码冗余;通过 AOP 面向切面编程 , 完成上述操作;
2023-02-03 16:22:03
67
转载 面向对象设计的五个基本原则:细说 SOLID 原则
在程序设计领域,SOLID是由 Robert C. Martin(敏捷宣言作者之一,曾任敏捷联盟主席)在21世纪早期提出的便于记忆的首字母缩写,指代面向对象编程和面向对象设计的五个基本原则:单一功能、开闭原则、里氏替换、接口隔离以及依赖反转。在这一章我们只关注这些原则各自的定位和它们之间的关系。见下图:概括地讲(下文会具体展开):单一职责是所有设计原则的基础,开闭原则是设计的终极目标。里氏替换原则强调的是子类替换父类后程序运行时的正确性,它用来帮助实现开闭原则。
2023-01-09 12:18:42
282
转载 java固定大小队列的几种实现方式
最近团队有同学在开发中,遇到一个需求,统计最近10次的异常次数,咨询有没有类似的list。针对这个问题,记录一下几种处理方式。以上三种方式均可实现固定长度的list。FixedLinkedHashMap和EvictingQueue是基于内存的,所以仅支持节点情况。而基于Redis的list除了单节点情况,同样可以在分布式情况使用。
2022-11-17 17:14:55
1297
转载 Redis+Lua脚本实现分布式限流(Nginx+Lua IP限流)
在互联网应用中,高并发系统会面临一个重大的挑战,那就是大量流高并发访问,比如:天猫的双十一、京东618、秒杀、抢购促销等,这些都是典型的大流量高并发场景。关注【冰河技术】微信公众号,解锁更多【高并发】专题文章。注意:由于原文篇幅比较长,所以被拆分为:理论、算法、实战(HTTP接口实战+分布式限流实战)三大部分。理论篇:《》算法篇:《》本文是在《》一文的基础上进行实现,有关项目的搭建可参见《》一文的内容。小伙伴们可以关注【冰河技术】微信公众号来阅读上述文章。
2022-11-08 15:28:27
1760
3
转载 Redis 分布式限流器-计数器算法
水先进入到漏桶里,漏桶里的水按一定速率流出,当流出的速率小于流入的速率时,由于漏桶容量有限,后续进入的水直接溢出(拒绝请求),以此实现限流。
2022-11-08 15:23:30
300
转载 分布式限流 redission RRateLimiter 的使用及原理
redission分布式限流采用令牌桶思想和固定时间窗口,trySetRate方法设置桶的大小,利用redis key过期机制达到时间窗口目的,控制固定时间窗口内允许通过的请求量。
2022-11-08 15:09:05
1209
转载 Redisson分布式限流器RRateLimiter原理解析
因为公司的开放网关的限流模块就是基于Redisson开发的,之前看的版本源码与最新的已经有很大的不同,趁着整理知识点的机会下了最新版的源码看了一遍。限流这个说简单也简单,说复杂也复杂。不知道是不是我看的东西太少,我觉得redisson的限流器设计非常精巧,感觉把redis玩穿了。
2022-11-08 15:05:16
384
转载 Java常见5种限流算法及7种限流方式
最近几年,随着微服务的流行,服务和服务之间的依赖越来越强,调用关系越来越复杂,服务和服务之间的稳定性越来越重要。在遇到突发的请求量激增,恶意的用户访问,亦或请求频率过高给下游服务带来较大压力时,我们常常需要通过缓存、限流、熔断降级、负载均衡等多种方式保证服务的稳定性。其中限流是不可或缺的一环,这篇文章介绍限流相关知识。这篇文章介绍实现限流的几种方式,主要是窗口算法和桶算法,两者各有优势。
2022-11-08 15:01:15
371
转载 Java中4种经典限流算法讲解
本文主要介绍了Java中4种经典限流算法讲解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧−目录最近,我们的业务系统引入了Guava的限流组件,它是基于实现的,而令牌桶是非常经典的限流算法。本文将跟大家一起学习几种经典的限流算法。
2022-11-08 14:56:51
738
转载 org.apache.http.NoHttpResponseException: failed to respond-服务端响应异常
多次上传文件时,偶尔会出现一次failed to respond异常,但是重试一次又正常了。
2022-08-15 10:42:09
1256
转载 **select加锁分析(Mysql)
目录前言 基础知识 InnoDB 锁类型 意向锁存在的目的? 加锁算法 快照读和当前读 分析 RC/RU+条件列非索引 RC/RU+条件列是聚簇索引 RC/RU+条件列是非聚簇索引 RR/Serializable+条件列非索引 RR/Serializable+条件列是聚簇索引 RR/Serializable+条件列是非聚簇索引 史上最全的select加锁分析(Mysql)前言大家在面试中有没遇到面试官问你下面六句Sql的区别呢sele
2022-03-01 11:37:24
515
转载 mysql环境RR隔离级别转换成RC的问题
RR隔离级别增加了间隙锁,避免了幻读,并且阻止了不可重复读,让同一个事务里面的查询和修改都是一致的.mysql默认的隔离级别就是RR. 虽然说RC隔离级别在同一个事务内会存在查询出不同数据的现象,但是这些数据都必然是提交过的,是真实存进硬盘的数据.所以也不用过分担忧,而且RC隔离级别反而降低了锁粒度,也不是毫无用处.oracle和sql server默认的隔离级别类似RC. 所以说也不是说RC就绝对不好,要看场景来选择,而这里只是简介,不打算深入. 操作流程说明:因系统高并发下,存在多个会话可能同..
2022-02-15 16:09:16
453
转载 MySQL 中隔离级别 RC 与 RR 的区别
1. 数据库事务ACID特性数据库事务的4个特性:原子性(Atomic):事务中的多个操作,不可分割,要么都成功,要么都失败; All or Nothing.一致性(Consistency):事务操作之后, 数据库所处的状态和业务规则是一致的; 比如a,b账户相互转账之后,总金额不变;隔离性(Isolation):多个事务之间就像是串行执行一样,不相互影响;持久性(Durability):事务提交后被持久化到永久存储.2. 隔离性其中隔离性分为了四种:READ UNCOMMIT...
2022-02-15 16:05:36
1556
转载 互联网项目中mysql应该选什么事务隔离级别
引言开始我们的内容,相信大家一定遇到过下面的一个面试场景面试官:“讲讲mysql有几个事务隔离级别?”你:“读未提交,读已提交,可重复读,串行化四个!默认是可重复读”面试官:“为什么mysql选可重复读作为默认的隔离级别?”(你面露苦色,不知如何回答!)面试官:"你们项目中选了哪个隔离级别?为什么?"你:“当然是默认的可重复读,至于原因。。呃。。。”(然后你就可以回去等通知了!)为了避免上述尴尬的场景,请继续往下阅读!Mysql默认的事务隔离级别是可重复读(Repeatable R.
2022-02-15 15:29:46
298
转载 mysql MVCC+间隙锁解决幻读理解
mysql的隔离级别?读未提交 -》 读提交 -》 可重复读 -》 串行化InnoDB默认级别为可重复读,可重复读会产生问题 就是幻读。什么是幻读?不可重复读侧重于update这种操作,同一条数据前后读起来不一样的情况,幻读侧重于insert delete这种操作,前后两次select 数据的数量会发生变化举个例子:事务A 第一步 select * 第二步 update 所有字段 第三步 再次select *事务B 执行了insert 一条语句幻读第一
2022-02-14 17:57:55
640
转载 MySQL为什么要避免大事务以及大事务解决的方法
什么是大事务运行时间比较长,长时间未提交的事务就可以称为大事务大事务产生的原因操作的数据比较多大量的锁竞争事务中有其他非DB的耗时操作。。。大事务造成的影响并发情况下,数据库连接池容易被撑爆锁定太多的数据,造成大量的阻塞和锁超时执行时间长,容易造成主从延迟回滚所需要的时间比较长undo log膨胀。。。如何查询大事务注:本文的sql的操作都是基于mysql5.7版本以查询执行时间超过10秒的事务为例:?1select * from information_schema.
2022-02-14 16:49:30
2119
转载 Sentinel 系统自适应限流原理剖析与实战指导
看到标题中的几个关键字系统自适应限流是否是以为高大上,这个自适应又是如何实现的呢? 一、Sentinel 系统自适应概述 从官方了解到 Sentienl 系统自适应限流是一个全局的概念,对应用入口流量统一进行统一控制,结合应用的机器负载、CPU 使用率,整体平均响应时间、入口 QPS 和并发线程数等几个维度的监控指标从而决定是否调用进行限流操做。为了有一个直观的感觉,咱们能够从官方的运维平台看看其系统自适应限流的操做界面:架构 RT、线程数、入口QPS这三个指标是能够经过采集调用信息进行..
2021-12-03 14:57:58
358
转载 深入理解云原生下自适应限流技术原理与应用
作者简介:乔卓越,于19年毕业,热爱开源,乐于思考。拥有基础架构和游戏领域的一线开发经验。独立负责过大规模后端服务的开发与性能测试平台搭建。 前言 本文将深入讨论现今后端服务关于负载的测量、优化、治理手段,通过对比分析TCP-BBR技术核心痛点,进而带读者尽可能理解并掌握自适应限流技术。 背景 负载(load),通常与并发关系密切。对于后端服务而言,任意时间内的并发用户访问都会提升服务负载,进而进一步消耗计算资源。然而计算资源是有限的,如CPU、memory、network等等,过载将会导致服...
2021-12-03 14:53:57
370
转载 自适应限流工具
作者:fredalxin地址:https://fredal.xin/netflix-co...作为应对高并发的手段之一,限流并不是一个新鲜的话题了。从Guava的Ratelimiter到Hystrix,以及Sentinel都可作为限流的工具。自适应限流一般的限流常常需要指定一个固定值(qps)作为限流开关的阈值,这个值一是靠经验判断,二是靠通过大量的测试数据得出。但这个阈值,在流量激增、系统自动伸缩或者某某commit了一段有毒代码后就有可能变得不那么合适了。并且一般业务方也不太能够正确评估自己的容量,去设
2021-12-03 14:50:21
224
1
转载 Go可用性 限流 : 自适应限流
序 在前面限流的三篇文章,我们学习了令牌桶、漏桶算法的原理、实现以及使用方式,不知道你有没有觉得这两种算法存在着一些问题。 Go 可用性(二) 限流 1: 令牌桶原理及使用 Go 可用性(三) 限流 2: 令牌桶的实现 rate/limt Go 可用性(四) 限流 3: 漏桶算法 这两种算法最大的一个问题就是他们都属于需要提前设置阈值的算法,基于 QPS 进行限流的时候最麻烦的就是这个阈值应该怎么设定。一般来说我们可以通过压测来决定这个阈值。 .
2021-12-03 14:47:49
506
转载 TCP 的那些事儿(下)
这篇文章是下篇,所以如果你对TCP不熟悉的话,还请你先看看上篇《TCP的那些事儿(上)》 上篇中,我们介绍了TCP的协议头、状态机、数据重传中的东西。但是TCP要解决一个很大的事,那就是要在一个网络根据不同的情况来动态调整自己的发包的速度,小则让自己的连接更稳定,大则让整个网络更稳定。在你阅读下篇之前,你需要做好准备,本篇文章有好些算法和策略,可能会引发你的各种思考,让你的大脑分配很多内存和计算资源,所以,不适合在厕所中阅读。目录TCP的RTT算法经典算法Karn / Partridge 算法J.
2021-12-02 18:08:15
74
转载 TCP 的那些事儿(上)
TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于TCP这个协议的细节,我还是推荐你去看W.Richard Stevens的《TCP/IP 详解 卷1:协议》(当然,你也可以去读一下RFC793以及后面N多的RFC)。另外,本文我会使用英文术语,这样方便你通过这些英文关键词来查找相关的技术文档。之所以想写这篇文章,目的有三个,一个是想锻炼一下自己是否可以用简单的篇幅把这么复杂的TCP协议.
2021-12-02 18:02:19
109
转载 TCP滑动窗口 和 拥塞窗口
滑动窗口 -- 表征发送端和接收端的接收能力拥塞窗口-- 表征中间设备的传输能力 TCP滑动窗口需要说明一下,如果你不了解TCP的滑动窗口这个事,你等于不了解TCP协议。我们都知道,TCP必需要解决的可靠传输以及包乱序(reordering)的问题,所以,TCP必需要知道网络实际的数据处理带宽或是数据处理速度,这样才不会引起网络拥塞,导致丢包。所以,TCP引入了一些技术和设计来做网络流控,Sliding Window是其中一个技术。 前面我们说过,TCP头里有一个字段叫W.
2021-12-02 17:57:47
519
转载 TCP BBR拥塞控制算法解析
维基百科简介:https://en.wikipedia.org/wiki/TCP_congestion_control#TCP_BBR 作者:Liu, Lubin 摘要 2016年底,Google发表了一篇优化tcp传输算法的文章,极大的提高了tcp得throughput,并且已经集成到Linux 4.9 内核。本文给出了论文中省略的一些背景知识,并结合自己的理解做了更加细节的介绍,可以帮助读者理解整个bbr算法。 1.背景 1.1TCP 基于丢
2021-12-01 17:35:12
1526
转载 任意组合、编排的多线程并发框架asyncTool
项目地址https://gitee.com/jd-platform-opensource/asyncTool 并发场景可能存在的需求之——任意编排 1 多个执行单元的串行请求 2 多个执行单元的并行请求 3 阻塞等待,串行的后面跟多个并行 4 阻塞等待,多个并行的执行完毕后才执行某个 5 串并行相互依赖 6 复杂场景 并发场景可能存在的需求之——每
2021-12-01 17:26:02
204
转载 京东毫秒级热key探测框架设计与实践,已完美支撑618大促
hotkey项目地址:https://gitee.com/jd-platform-opensource/hotkey 在拥有大量并发用户的系统中,热key一直以来都是一个不可避免的问题。或许是突然某些商品成了爆款,或许是海量用户突然涌入某个店铺,或许是秒杀时瞬间大量开启的爬虫用户, 这些突发的无法预先感知的热key都是系统潜在的巨大风险。 风险是什么呢?主要是数据层,其次是服务层。 热key对数据层的冲击显而
2021-12-01 16:51:05
372
转载 alibaba / Sentinel 系统自适应限流原理
Sentinel 系统自适应限流从整体维度对应用入口流量进行控制,结合应用的 Load、CPU 使用率、总体平均 RT、入口 QPS 和并发线程数等几个维度的监控指标,通过自适应的流控策略,让系统的入口流量和系统的负载达到一个平衡,让系统尽可能跑在最大吞吐量的同时保证系统整体的稳定性。背景在开始之前,我们先了解一下系统保护的目的:保证系统不被拖垮在系统稳定的前提下,保持系统的吞吐量长期以来,系统保护的思路是根据硬指标,即系统的负载 (load1) 来做系统过载保护。当系统负载高于某个阈值,就禁止或
2021-11-30 15:57:29
211
转载 MySQL中varchar最大长度是多少?
一. varchar存储规则:4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节)5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节Mysql4中最大也不过是20个字节,但是Mysql5根据编码不同,存储大小也不同。二. varchar和char 的区别:char是一种固定长度的类型,varchar则是一种可变长度的类型,它们的区别是:
2021-10-25 18:01:27
20482
转载 keepalived+lvs实现主备(全)
参考文章:lvs+nginx负载均衡 1 lvs高可用(了解) 1.1 什么是高可用 lvs作为负载均衡器,所有请求都先到达lvs,可见lvs处于非常重要的位置,如果lvs服务器宕机后端web服务将无法提供服务,影响严重。 为了屏蔽负载均衡服务器的宕机,需要建立一个备份机。主服务器和备份机上都运行高可用(High Availability)监控程序,通过传送诸如“I am alive”...
2021-10-15 20:34:18
380
转载 lvs+keepAlived 高效率负载均衡
一、 简介 1. 负载均衡的类型 负载均衡可以采用硬件设备(例如常常听见的 F5),也可以采用软件负载商用硬件负载设备成本通常较高(一台几十万甚至上百万),所以一般 情况下会采用软件负载软件负载解决的两个核心问题是:选谁、转发,其中最著名的是 lvs 2. lvs 是什么? 英文全称是 Linux Virtual Server,即 Linux 虚拟服务器由 章 ...
2021-10-15 20:11:22
144
转载 Nginx七层负载均衡的六种调度算法简介
这篇文章主要介绍了简单了解Nginx七层负载均衡的几种调度算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下Nginx是一款轻量级的高性能web服务器,同时也是一款非常优秀的负载均衡器和反向代理服务器。由于支持强大的正则匹配规则、动静分离、URLrewrite功能及安装配置简单且对网络稳定性依赖非常小等优点,所以常用来做为七层负载均衡使用。在硬件不差的情况下,通常可以稳定支持几万的并发连接,在硬件性能足够好,且对系统内核参数及Nginx配置进行优化甚至可
2021-10-14 18:48:07
673
博客下载工具
2017-06-22
Java调用C#com方法
2013-08-13
Oracle创建删除用户、角色、表空间、导入导出数据库命令行方式总结.pdf
2013-05-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人