- 博客(22)
- 资源 (34)
- 收藏
- 关注
原创 springboot 多个jar下有相同全限定名类加载顺序
针对一个项目中引入多个功能相同并且结构相同的包时出现的冲突原因进行分析,并给出解决方法。
2024-07-22 21:32:52 408
原创 websocket状态机
对websocket协议、报文和涉及的状态机进行分析,帮助你理解websocket底层的原理,有助于分析websocket相关的问题。
2024-07-22 21:28:13 540
原创 springcloud gateway转发websocket请求的404问题定位
小程序端通过springcloud gateway连接后台的websocket服务失败,返回404错误,针对该问题进行DEBUG跟踪,把出错的过程逐步定位。
2024-06-14 15:29:01 1102
原创 LVS负载均衡配置虚拟引起微服务注册混乱
在原理使用LVS做负载时,在主机eth0配置了虚拟IP,这样在eth0网卡绑定了两个地址,一个原来的真实IP地址,一个是虚拟IP地址,并且在Linux内核的IP地址列表中虚拟地址在前,真实IP地址在后,微服务注册时,获取到的第一个非环回地址正是虚拟IP地址,所以在Eureka保存的微服务的地址为虚拟IP地址,网关分发请求时,从Eureka获取到的是虚拟IP地址13.9.1.121,请求被分发到了原来的LVS服务,所以在网关报500错误。1)在主机上,没有的配置信息该删除的删除掉。1)检查微服务是否未注册。
2023-12-30 18:42:04 737 1
原创 springboot常见网络相关错误及原因解析
在基于spring-boot开发过程尤其是上线后,经常出现网络相关的错误,令人难以琢磨和下手,所以就spring-boot使用过程中可能碰到的网络相关问题进行分析,结合网络转包、日志报错和前端输出,针对网络连接超时、连接被拒绝、读超时等异常进行分析,有助于理解发生问题的根本原因,并快速定位和解决问题。
2023-11-03 22:57:54 1856
原创 Wireshark抓包 [Tcp Previous Segment Not captured][Tcp Out-Of-Order][Tcp Spurious Retransmissiion]
Wireshark抓包时,除了TCP协议的三次握手建立连接、数据收发和四次握手断开连接外,还经常能看到如下几种不太常见的报文,具体包括:1.Tcp Previous Segment Not captured2.Tcp Out-Of-Order3.Tcp Dup Ack 12345#14.Tcp Spurious Retransmissiion5.Tcp Retransmission其中1、2、3会相伴出现,3、4、5会相伴出现。对应第一种情况是由于由于TCP数据被分块后,传输过程中经过不同的路径,到达目的端
2022-07-04 22:58:50 15349 2
原创 SpringCloud Gateway使用RestTemplate问题
刚刚解决了GateWay与上游服务的连接不释放问题,又发现网关下游一个服务出现连接数不正常的问题。正常情况下,该服务的连接数应该是个位数,但监控却发现占用的连接数经常接近100个,开始了排查之旅。 首先怀疑是该服务性能有问题,处理时间长,网关得不到应答所以会一直占用与该服务的连接,经过对SQL的排查发现没有问题,再写脚本直接调用该服务的接口,发现响应时间都在20ms一下,所以性能问题排除。然后,怀疑网关在调用该服务后,未及时释放,连续监控服务端口占用情况30分钟,发现所有端...
2020-12-07 18:53:17 5171
原创 springcloud gateway 连接保活问题
项目中使用了springcloud gateway作为网关,上游与负载均衡服务器连接。近期通过监控系统观察,发现网关与上游负载均衡服务器保持的TCP连接有300+,初步怀疑是调用方未释放连接,用如下方法进行分析: 1)周期性采集当前建立的连接及端口数据,首先是每隔10分钟连续采集2两个小时,发现在两个小时之内新出现的端口不到12个,再逐步缩短采样周期,到最后每秒采集一次,分析发现每秒种建立一个连接,同时关闭一个连接,当仍存在300+连接,这些连接对应的端口称为不活跃端口,记录下这3...
2020-10-26 18:26:22 4975
原创 支付宝小程序占用服务器端TCP连接问题分析及解决建议
一、问题起源: 我们的系统支持多端,针对不同的端分配了不同的网关集群。通过监控系统发现,支付宝小程序面向的网关上的TCP连接数直线上升,最高到过5万+个连接,同时微信小程序的TCP连接数仅为1000多个,甚至在支付宝下游服务被切断的情况下仍是有增无减,而实际上微信的用户数与支付宝的用户的比例基本为10:1,我们的工程师认为是支付宝用户量大所导致,但根据我的经验否定了这个观点,肯定是连接没有释放。二、排查过程 首先确认支付宝小程序是否因为未设置读超时,导致连接一...
2020-07-29 16:00:19 959
原创 tomcat使用http/https正向代理
前端请求进入内网后,内网服务需要访问外部服务,安全策略要求内网服务不能直接访问外网,所以决定在网关部署nginx,并配置为正向代理,内网服务配置nginx为正向代理。内网服务既有基于spring-boot的微服务,也有传统的Tomcat应用。所以分别进行测试验证。具体过程如下。 一、对spring-boot应用进行验证 参考网上使用正向代理方法,优先考虑对代码无侵扰的两个方法。一个是在java命令行增加-Dhttp.proxyHost=代理ip-Dhttp.proxyP...
2020-06-10 22:58:46 4617 1
原创 系统性能估算游乐场模型
有一个游乐场,其中有10项游乐设施,营业事件从上午9:00到17:00,为说明问题,采用如下假设: 1)假设每个用户在场内游玩1个小时,平均每个人玩20次项目(有的项目多次), 从项目一到项目时分别为:4,3,3,2,2,2,1,1,1,1 2)平均每分钟10个用户进场 分析过程如下: 1)8:00到9:00,在场人数以10个/分钟的,到9:00在园人
2016-05-18 09:29:49 1360
原创 IPSec防重放机制分析
防重放机制有三种:时间戳、挑战和滑动窗。IPSec中使用了第三种机制,本文首先对滑动窗口进行简单介绍,然后针对IPSec中如何利用滑动窗进行防重放判断进行介绍 ||
2015-05-18 17:11:12 11782
原创 面向对象分析与设计
本文再以ATM系统为例来说明面向对象的分析和设计过程。如果从用户需求的高度来看,需求包括取款、查询和修改密码。用户输入密码严格来说仅仅是用户需求中的一个步骤,并非真正意义上的需求。然后进入分析阶段,分析阶段考虑的仍然是问题域,经过分析产生的是分析类,分析类与现实世界中对象有对应关系。很显然此时一个分析类就是用户(User),该类具有卡号、密码、金额、用户名和身份证等信息,在我们讨论的问题中仅仅需要
2015-01-26 18:43:28 665
原创 面向对象及相关概念剖析
面向对象技术包括面向对象分析(OOA),面向对象设计(OOD),面向对象编程(OOP)和面向对象测试(OOT).面向对象技术的核心应该是OOA和OOD(有些资料上干脆把二者合并称OOAD),OOP和OOT跟面向过程的编程和测试没有什么区别.面向对象的思想因为更符合人思维习惯,所以用来做软件系统的分析和设计,但该技术并不是银弹,因为与传统技术(面向过程和结构化技术)相比,面向对象技术能解决的问题并不
2015-01-26 18:33:22 480
原创 谈谈代码走读
代码走读的重要性就不说了,我想谈谈对代码走读的总体认识。首先代码走读前,代码必须编译通过,强类型检查的语言(比如JAVA)自带的编译器就够了,如果是弱类型检查的语言(比如C/C++)应该用辅助的静态检查工具(比如lint)进行检查,毕竟机器发现问题的效率要比人眼和人脑要高的多,机器能做的事情让机器去做。检查完成后,把编译错误和告警消除,才可以进入代码走读。其次,代码走读前要在项目组内部统一走读的标
2015-01-26 18:31:11 8943
原创 JAVA开发中的中文问题
JAVA中文编码问题 先介绍一个概念:本地编码,所谓本地编码是操作系统采用的中文编码格式,一般是“GBK”或“GB2312”,可以用System.getProperty(\"file.encoding\")。 本文从以下几个方面来对JAVA中的中文编码进行说明。 1.中文存储方式 2.编码变换问题 3.解决方法 第一:中文存储方式 本部分分控制台应用,WEB应用来分析: 对控制台应用: JAVA文
2015-01-26 18:31:01 410
原创 网络编程字节序问题
昨天,看我们的程序员写的一段网络应用中数据接收部分的代码,该段代码用于从一个用C++编写的应用中接收数据,其中有一个数据项是整型数,在代码中是这样做的:接收过来后,对数据流中的这个整型数,做一次字节序的转换,第0个字节跟第3个字节互换,第1个字节跟第2个互换。经过跟程序员的交流,他跟我解释说不这么变换数据不对,具体原因也不知道为什么。 要把这个问题搞清楚,需要从BIG-ENDIAN、LITTLE-
2015-01-26 18:29:22 744
原创 Java网络编程问题
我所说的网络编程就是指Socket编程,首先列举一下用JAVA语言编写Socket程序时的常见异常、原因及解决方法,然后再讲一下编写网络程序需要注意的问题。在分析之前,首先把网络程序中所谓的客户端和服务器弄清楚,它们是在通信层面的,所谓的服务器是接收连接的应用,而所谓的客户是发起连接的应用,与业务层面的客户端和服务器并非一一对应,在实际系统中业务层面的服务器端可能是网络层面客户端。下文所说的服务器
2015-01-26 18:28:28 466
原创 Java编译和运行时类查找机制
运行JAVA程序时,经常碰到一些莫名其妙的问题,运行结果与预期不一致,这类问题的定位非常麻烦,很多的情况下是由于在不同的路径下存在同名的文件,那么在JAVA程序运行时是如何定位类文件的呢?如何解决同名类问题?首先,我们从JAVA程序的编译说起,JAVA运行时的类查找机制同编译时,只不过是运行时所有的源文件已经被编译成了类文件。对JAVA源代码进行编译时分分成三个步骤:第一:形成三个表,分别
2015-01-26 18:24:29 3080
原创 Mysql存储引擎小析
一、简介 数据库中有的表存储的数据主要应对查询,比如一些字典表,费率表,有些表主要应对修改,比如评论表的和反馈表,有的表读和写的频率都很高,比如商品表。根据不同的情况可使用不同的存储引擎。高并发的读写访问,必须要有事务的支持,而仅有高频读的表则不需要事务的支持。 Mysql数据库的存储引擎是解决以上问题的有用特性,可以让工程师在表级别根据不同的场景使用不同的存储模式。最
2015-01-26 15:44:57 450
Hadoop MapReduce高级特性
2015-08-01
MapReduce类型及格式
2015-07-30
Hadoop MapReduce入门
2015-07-03
Hadoop HDFS应用
2015-07-02
Hadoop HDFS原理
2015-06-26
Hadoop集群安装
2015-06-25
设计模式之实战
2017-08-11
FIDO UAF 应用API和传输绑定规格
2017-04-01
FIDO ATTESTATION
2017-02-20
新经济区块链蓝图翻译
2016-11-28
go语言学习笔记
2016-10-18
docker实战指南进阶
2016-09-28
docker实战指南
2016-09-10
linux内核设计与实现学习总结
2016-07-20
Android安全技术手册
2016-03-09
maven从入门到实战
2015-08-09
Hadoop HA配置
2015-08-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人