自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

三人三木的专栏

✍️书写,是为了更好地表达,更好地深度思考,更好地深刻理解。 一位乐观开朗的IT-挨踢手艺人,希望构建一片护城池。

  • 博客(48)
  • 资源 (6)
  • 收藏
  • 关注

原创 【Arthas案例】某应用依赖两个GAV-classifier不同的snakeyaml.jar,引起NoSuchMethodError

【3分钟内解决问题】多个不同的GAV-classifier依赖冲突,引起NoSuchMethodErrorMaven依赖的三坐标体系GAV(G-groupId,A-artifactId,V-version)classifier通常用于区分从同一POM构建的具有不同内容的构件物(artifact)。它是可选的,它可以是任意的字符串,附加在版本号之后。警察抓犯人,收集线索是破案的关键所在。

2024-04-05 01:19:25 838

原创 分布式链路追踪与云原生可观测性

分布式链路追踪系统历史Dapper,大规模分布式系统的跟踪系统大规模分布式系统的跟踪系统:Dapper设计给我们的启示阿里巴巴鹰眼技术解密京东云分布式链路追踪在金融场景的最佳实践分布式链路追踪在字节跳动的实践可视化全链路日志追踪 - 美团技术团队

2024-04-03 11:35:57 1310

原创 SkyWalking链路追踪上下文TraceContext的traceId生成的实现原理剖析

SkyWalking通过字节码增强技术实现,结合依赖注入和控制反转思想,以SkyWalking方式将追踪身份traceId编织到链路追踪上下文TraceContext中。是不是很有趣,很有意思!!!

2024-03-04 20:54:42 1236 1

原创 Java异常体系结构核心解析-Throwable

Java异常体系结构,是一种分层/层次结构树模型。异常的根类是 java.lang.Throwable,核心数据结构/模型和实现都在于此类。了解她们对理解异常信息很关键。其子类 java.lang.Exception、java.lang.RuntimeException、java.lang.Error 都是标签类。

2024-02-24 21:54:35 365 1

转载 Spring-Boot之浅析配置项解析

Spring Boot之浅析配置项解析

2024-02-24 21:40:53 26

原创 Java-8函数式编程设计-Functional-Interface

我自己的理解,函数式编程对用户最大的价值是促使开发者养成模块化编程的习惯,代码可读性和维护性提高很多。通过阅读JDK 8的和包源码,意在理解Java的函数式接口设计。读后自己的理解:Java函数式编程的核心是,可在已有的接口上进行积木拼插组合,形成完整地类型转换系统。最基础的数学函数包括一元函数、谓词、二元函数、运算符计算,对应的Java接口分别是Function、Predicate、BiFunction、BinaryOperator。

2024-02-24 21:37:09 657

转载 Spring-Boot启动流程简析

Spring Boot启动流程简析

2024-02-24 21:34:10 17

原创 从Spring-Boot-Starters学习如何治理maven依赖版本冲突问题

做中间件对接业务的同学,肯定对jar依赖冲突问题印象深刻。Spring Boot Starters 实质上是Maven依赖和插件模块化管理,其设计初衷是解决jar依赖冲突问题。Spring Boot Starters 文档罗列了所有starter,包括starter名称、描述以及POM。

2024-02-23 14:55:37 278 1

原创 Spring-Boot的应用环境感知自识别配置

Spring Boot的应用环境感知自识别配置解决方案

2024-02-23 14:45:28 447 1

原创 Spring-Boot常见的应用属性配置集

深入之前先用好,用好之前先全面了解功能。全面了解功能可以从官方文档的**配置参数选项**作为切入点。

2024-02-23 14:41:52 234 1

转载 一文详解 Java 限流接口实现

消息中间件就是采用漏桶限流的思想。能看出作者有深入地思考与沉淀👍令牌桶算法、消息队列,业务使用消息队列与漏桶算法的主要区别:1.容量资源:消息队列,存储容量足够大;漏桶算法,桶的容量有限;2.时效:消息队列,异步处理;漏桶算法,同步处理;3.灵活性:与漏桶算法相比,消息队列提供了更大的灵活性。例如,可以动态地调整消费数量。

2024-01-17 10:50:27 34

原创 使用RedisCacheWriter#clean在线异步地批量扫描匹配删除缓存数据-spring-data-redis

生产环境,某云的某个业务Redis实例,触发内存使用率,连续 3 次 平均值 >= 85 %告警。运维同学告知,看看需要怎么优化或者升级配置?分享了其实例RDB的内存剖析链接。通过内存剖析详情发现,存在某类未设置过期时间且无用的keys,其内存占用约3.8GB,内存占比25%。内存占比挺大,有确定的成本经济收益。做事有动力啦!

2023-12-18 01:06:40 1213 2

原创 ReactiveRedisTemplate自动配置定义和序列化方式选择-spring-data-redis

Spring-Boot的Redis自动配置类,RedisReactiveAutoConfiguration和RedisAutoConfiguration,组件ReactiveRedisTemplate和RedisTemplate默认使用JDK序列化方式,在现实业务场景中很难使用,其存储的值可读性差且又长。我觉得不是很合理,意味着使用它们的用户都需要自己重新自定义。

2023-12-03 18:31:15 1550 1

转载 如何进行高效的代码审查

这篇文章详细讨论了如何进行高效的代码审查,包括作者和审查者应遵循的指导原则。文章强调了尊重审查者的时间,自我审查代码,将大的更改列表分解为小的、逻辑上的单元,自动化简单的任务,限制代码更改的范围,优雅地接受批评,最小化审查回合之间的延迟,明确地沟通响应,不忘记文档等。同时,审查者也需要验证代码是否必要、设计得当,是否易读、清晰,**注释是否解释了“为什么”**而不是“做什么”,代码是否过于复杂,是否遵循风格指南,是否经过充分的测试和文档记录等,对代码审查实战具有极大的参考价值。

2023-08-04 15:58:47 113 1

原创 AI对话交互场景使用WebSocket建立H5客户端和服务端的信息实时双向通信

WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输。

2023-06-03 01:36:58 1276

原创 技术分享的意义

分享是一个相互的过程,只有分享人和听众形成相互的正向循环,相互提高,那么价值才能最大化。

2023-02-03 10:17:26 591

原创 Arthas在线诊断Docker容器应用业务问题

Java 应用诊断利器Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常、监测方法执行耗时、类加载信息等,大大提升线上问题排查效率。

2023-01-13 15:52:04 890

原创 docker客户端的命令实践

docker客户端的命令实践

2023-01-13 15:47:46 525

原创 分布式系统可观测性之应用业务指标监控

2017 年的分布式追踪峰会(2017 Distributed Tracing Summit)结束后,Peter Bourgon 撰写了总结文章《Metrics, Tracing, and Logging》系统地阐述了这三者的定义、特征,以及它们之间的关系与差异。 文中将可观测性问题映射到了如何处理指标(metrics)、追踪(tracing)、日志(logging)三类数据上。

2022-11-27 20:58:57 631

原创 【踩坑记录】创建Go模块-从其他远程模块调用代码教程时遇到发布Go模块到远程中央仓库失败

创建Go模块-从其他远程模块调用代码的教程

2022-11-13 00:23:18 479

转载 Go修改ENV代理GoProxy解决运行官方样例代码无法获得模块的问题

Go修改ENV代理GoProxy解决运行官方样例代码无法获得module的问题

2022-11-11 11:51:22 1916

原创 Spring Boot实现HTTP大文件断点续传分片下载-大视频分段渐进式播放

服务端如何将一个大视频文件做切分,分段响应给客户端,让浏览器可以渐进式地播放。Spring-Boot实现HTTP分片下载断点续传,从而实现H5页面的大视频播放问题,实现渐进式播放,每次只播放需要播放的内容就可以了,不需要加载整个文件到内存中。

2022-10-19 19:34:17 3438 17

原创 Spring Boot之执行器端点(Actuator Endpoint)实现剖析

本文从Spring Boot源码层面剖析执行器端点的实现原理。整体实现思路是将端点(Endpoint)适配委托给MVC层策略端点(MvcEndpoint),再通过端点MVC适配器(EndpointMvcAdapter)将端点暴露为HTTP请求方式的MVC端点,最后分别使用端点自动配置(EndpointAutoConfiguration)和MVC方式暴露端点的配置(EndpointWebMvcManagementContextConfiguration)来注入端点组件和端点处理程序映射组件、MVC端点注册表组

2017-03-12 23:34:05 12536 2

原创 【线上问题】线上服务器内存使用量已达到90%报警-内存泄漏

2016-05-06中午11:56,收到“[sentry2]2016-05-06 11:56:09 xxxxxxhost xxx.xxx.xxx.xxx 内存使用已达到90.18%”报警。首先在脑海浮现的,应该哪里出现内存泄漏了。一、确认问题马上到 Sentry 监控系统查看了该服务的“服务器监控”指标,发现其中2台机器的内存使用量都超过了90%,另外2台尽然没有监控数据(以前是...

2016-05-09 00:57:29 4946 3

Redis Hash 的 HSET、HGET、HMSET、HMGET 性能测试

【压测环境】操作系统: Ubuntu 14.04 LTSLinux版本: 3.13.0-24-generic x86_64 GNU/Linux处理器: 4核的 AMD Athlon(tm) II X4 640 Processor @ 800MHz机器内存:共 8GB,已使用 6GB,未使用 2GB,交换区 未使用Redis版本:2.8.17Redis内存:500MB...

2015-06-09 14:06:55 8919

原创 [安全] MyBatis如何防止SQL注入

MyBatis如何防止SQL注入[摘自] mybatis防止sql注入 - chaoge SQL注入是一种代码注入技术,用于攻击数据驱动的应用,恶意的SQL语句被插入到执行的实体字段中(例如,为了转储数据库内容给攻击者)。[摘自] SQL injection - WikipediaSQL注入,大家都不陌生,是一种常见的攻击方式。攻击者在界面的表单信息或URL上输入一些奇怪的SQL...

2015-06-06 23:13:12 351

原创 Lua编译器的选择与源码安装

在Nginx上使用Lua脚本能做很多有价值的事情,比如生成请求的唯一标识(排查问题)、统一的权限校验、限流防洪(保证服务正常可用)等。 Lua是什么?Lua是一种轻量级的多范式编程语言,其被设计为一种可扩展的语义脚本语言作为首要目标。(英语发音:/ˈluːə/,是葡萄牙语中“Lua”(月亮)的意思)[摘自] Lua (programming language) - Wikipe...

2015-06-06 19:05:10 475

Nginx源码构建、编译并安装

本文主要记录自己在“从Nginx源码构建、编译并安装”过程中遇到的一些问题及详细步骤,通过以下方式构建的Nginx集成了 SSL、Lua、Nginx Upstream Health Check、解压缩 功能。 # 1. 下载安装包(http://nginx.org/en/download.html)wget http://nginx.org/download/nginx-1...

2015-05-27 19:25:26 789

使用Shell脚本来组装“Lua配置模板文件”和“属性配置文件”并生成配置文件...

【问题背景】前几天,我们上线了“基于’Nginx + Lua‘实现的统一权限校验功能”。该功能需要Nginx守护线程定期地从MySQL加载“合作方数据”,我们直接在Lua文件里写死了MySQL等配置信息(硬编码),然后通过一个“中间配置文件”手动修改来针对不同的部署环境选择不同的数据源。这里有个坑:当开发和运维都忘记修改这个“中间配置文件”时,部署到不同的环境指向的数据源确一样的,会导...

2015-05-26 15:04:22 362

原创 [SQL调优] “查询SQL过滤和排序条件涉及的表字段未创建索引”引起慢查询问题,优化后执行时间从70+s下降到0.01s以下

前几天发现,线上portal “策略中心”的“证据管理”页面加载很慢。经排查发现,是由于 riskbase_core 库的 evidence 表未对 gmt_create 创建索引 和 evidence_details 表未对 refuuid 创建索引引起(因为查询条件涉及到这些字段),导致SQL执行时间要 1分钟+。# 查询SQLselect d.type,d.value,e.fraud_t...

2015-05-20 18:51:18 615

发言的礼仪 —— 参与开源社区

仔细聆听别人的声音,也努力表达自己对技术的看法,并随时将你的宝贵经验与社区分享,这样你不仅能获得技术上的提高,还可以得到整个社区的认可和尊敬。 14.4.3发言的礼仪通过适当的礼仪和友好的行为方式,可以更有效地通过邮件列表解决项目中的问题。Eric Raymond对此有非常精彩的讨论,见其《提问的智慧》一文,以下部分观点就来自于该文。1.       提问新加入一个社区...

2015-04-01 17:06:34 384

原创 【线上问题】Redis客户端连接数一直降不下来的问题分析解决

前段时间,上线了新的Redis缓存(Cache)服务,准备替换掉 Memcached。为什么要将 Memcached 替换掉?原因是 业务数据是压缩后的列表型数据,缓存中保存最新的3000条数据。对于新数据追加操作,需要拆解成[get + unzip + append + zip + set]这5步操作。若列表长度在O(1k)级别的,其耗时至少在50ms+。而在并发环境下,这样...

2015-02-07 18:23:06 1967 1

原创 [FAQ] Jedis使用过程中踩过的那些坑

4. 一个大坑:若实例化 JedisShardInfo 时不设置节点名称(name属性),那么当Redis节点列表的顺序发生变化时,会发生“键 rehash 现象” 使用BTrace追踪redis.clients.util.Sharded的实时状态,验证“Jedis分片机制的一致性哈希算法”实现;发现一个致命坑:若JedisShardInfo不设置节点名称(name属性),那么当R...

2015-02-06 21:13:50 479

原创 [实现剖析] Apache Commons Pool之空闲对象的驱逐检测机制

本文主要剖析 Apache Commons Pool 的“空闲对象的驱逐检测机制”的实现原理。 以下面3个步骤来循序渐进地深入剖析其实现原理:启动“空闲对象的驱逐者线程”(startEvictor(...))的2个入口在启动时,创建一个新的"驱逐者线程"(Evictor),并使用"驱逐者定时器"(EvictionTimer)进行调度进入真正地"空闲池对象"的驱逐检测操...

2015-01-02 22:12:47 759 2

原创 Redis服务快速部署

官方对Redis的阐述:Redis is an open source, BSD licensed, advanced key-value cache and store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets, sorted...

2014-11-15 10:51:31 107

原创 [线上问题] Nginx与Tomcat、Client之间请求的长连接配置不一致问题分析解决

前些天,线上出现“服务端长连接与客户端短连接引起Nginx产生大量"TIME_WAIT"状态的线程”的问题分析解决”,这个是由于“服务端使用HTTPs长连接,而客户端使用短连接”引起。这几天,发现Nginx与Tomcat之间也存在同样的问题,原因是两边的相关配置参数不一致引起的。(这是心细活!) 先说说服务为什么使用HTTPs长连接技术?有如下几个原因:对响应时间要求较高;...

2014-11-06 20:36:57 535

[线上问题] “服务端长连接与客户端短连接引起Nginx产生大量"TIME_WAIT"状态的线程”的问题分析解决...

近期,线上Nginx服务器的TPS未超过100,但其Writing、Active连接数有时却超过了300。因为服务对响应时间要求较高,同时每个调用方使用的IP地址有限(即总的不同的连接地址有限),所以使用HTTPs长连接技术。(HTTP长连接与短连接) 问题现象:使用"sudo netstat -antp | grep 80"发现,存在大量的"TIME_WAIT" socket等待中断...

2014-10-25 16:33:39 1057

原创 [利器] 使用tcpdump和Wireshark分析网络数据包

       要想快速使用Wireshark分析请求数据包,可参考其本地文档《Wireshark过滤器语法与引用 HELP-Manual Pages-Wireshark Filter》和《一站式学习Wireshark》系列文章。 如何使用tcpdump在Linux服务器下抓取网络数据包【示例】1. 抓取8080端口上的所有网络数据包sudo tcpdump -i eth0 ...

2014-10-25 14:20:29 150

原创 [架构演进] 程立谈大规模SOA系统(支付宝首席架构师)

程立谈大规模SOA系统 仔细看完文章之后,受益匪浅!感谢! 待整理,强烈推荐!

2014-09-27 22:52:51 345

原创 [笔记] Memcached全面剖析

本文主要参考了charlee翻译的《Memcached全面剖析》 1.      Memcached是什么?许多Web应用都将数据保存到RDBMS中,应用程序从中读取数据并在浏览器中显示。但随着数据量的增大和访问的集中,就会出现(问题出现:)RDBMS的负载加重、数据库响应恶化、网站显示延迟等重大影响。What is Memcached?Free & open sou...

2014-09-19 18:31:16 168

Hadoop: The Definitive Guide

本书从Hadoop的缘起开始,由浅入深,结合理论和实践,全方位地介绍Hado叩这一高性能处理海量数据集的理想工具。全书共14章,3个附录,涉及的主题包括:Haddoop简介:MapReduce简介:Hadoop分布式文件系统;Hadoop的I/O、MapReduce应用程序开发;MapReduce的工作机制:MapReduce的类型和格式;MapReduce的特性:如何安装Hadoop集群,如何管理Hadoop;Pig简介:Hbase简介:ZooKeeper简介,最后还提供了丰富的案例分析。 本书是Hadoop权威参考,程序员可从中探索如何分析海量数据集,管理员可以从中了解如何安装与运行Hadoop集群。 什么是谷歌帝国的基石?MapReduce算法是也!Apache Hadoop架构作为MapReduce算法的一种开源应用,是应对海量数据的理想工具。项目负责人TomWhite透过本书详细阐述了如何使用Hadoop构建可靠、可伸缩的分布式系统,程序员可从中探索如何分析海量数据集,管理员可以从中了解如何安装和运行Hadoop集群。 本书结合丰富的案例来展示如何用Hadoop解决特殊问题,它将帮助您: ·使用Hadoop分布式文件系统(HDFS)来存储海量数据集, 通过MapReduce对这些数据集运行分布式计算 ·熟悉Hadoop的数据和IlO构件,用于压缩、数据集成、序列化和持久处理 ·洞悉编~MapReduce实际应用时的常见陷阱和高级特性 ·设计、构建和管理一个专用的Hadoop集群或在云上运行Hadoop ·使用高级查询语言Pig来处理大规模数据 ·利用Hadoop数据库HBase来保存和处理结构化/半结构化数据 ·学会使用ZooKeeper来构建分布式系统 如果您拥有海量数据,无论是GB级还是PB级,Hadoop都将是您的完美解决方案。

2010-05-21

Java and XML,3rd Edition

《Java与XML》(第三版)向您展示如何穿透围绕着XML的宣传迷雾,让XML真正在您的工作中为您所用。它将教您如何使用XML的各种应用程序编程接口(API)、工具和技巧来构建实际的应用程序,为管理从配置文件到网络站点在内的所有信息提供一条全新的途径。   本书的前两章回顾有关XML的基础知识,包括XPath、XSL、DTD以及XMLSchema,其余部分专注于讲述如何在Java程序内使用XML。《Java与XML》(第三版)的内容涵盖了所有主要的JavaXML处理库程序,全面讲解了SAX、DOM、StAX、JDOM以及dom4j的应用程序编程接口,同时还囊括了最新版本的用于XML处理的Java应用程序编程接口(JAXP)和用于XML绑定的Java架构(JAXB)相关知识。第三版还彻底重写了有关网络技术的章节,与原先的内容相比,这一部分针对目前引起广泛关注的技术热点进行介绍,例如使用RSS进行内容同步和开发Web2.0的应用程序。您将学习到如何为同步的内容创建、读取或者修改RSSfeeds,以及如何运用XML、Ajax和AdobeFlash来为下一代的网络站点注入活力。   书中的主题如下:XML基础,包括DTD、命名空间(namespace)、XMLSchema和数据格式转换(Transformation)SAX应用程序编程接口,包括处理器接口、过滤器接口和写出接口DOM应用程序编程接口,包括DOM第2层、第3层和DOMHTML模块JDOM应用程序编程接口,包括核心接口和XPath支持StAX应用程序编程接口,包括StAX的工厂方法(factory)、文档生成和XMLPull使用JAXB进行数据绑定,使用新的JAXB2.0annotation使用RSS进行网络同步和podcasting表示层的XML应用,主要针对Ajax和Flash应用程序   无论您现在正在还是将来会进行Java程序的开发并且需要用到XML,或者您正在参与新的点对点技术、消息技术以及Webservice技术的相关应用或者开发,《Java与XML》(第三版)都是一本不可或缺的图书。

2010-05-03

Editplus 3.12 + Keygen(注册机,支持3.0以上版本)

保证可以,自己已经试过了。给别人快乐就是给自己快乐!

2010-03-10

Opengl Programming Guide Six Edition English pdf

Opengl Programming Guide-Six Edition(English) Opengl 编程指南最新第六版英文原版,内容完整,下载保证您满意

2009-12-25

glut-3.7.6-bin.zip

glut-3.7.6-bin.zip:glut.h、glut32.lib、glut32.dll

2009-10-07

Struts 2 in Action

这本书对 Struts 2 的实战应用非常详细且对于具体项目都可以到本书找到你要的答案,非常不错的一本书籍。我要感谢作者给我们带来知识!

2009-10-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除