自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (34)
  • 收藏
  • 关注

原创 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 700 1

原创 springboot常见网络相关错误及原因解析

在基于spring-boot开发过程尤其是上线后,经常出现网络相关的错误,令人难以琢磨和下手,所以就spring-boot使用过程中可能碰到的网络相关问题进行分析,结合网络转包、日志报错和前端输出,针对网络连接超时、连接被拒绝、读超时等异常进行分析,有助于理解发生问题的根本原因,并快速定位和解决问题。

2023-11-03 22:57:54 1244

原创 多外部下游服务线程隔离

在微服务中调用多个相同外部服务情况下的线程隔离

2023-10-26 21:31:44 146

原创 使用BigInteger进行大数运算

使用BigInteger进行大数运算的常见问题及处理颁发

2023-07-01 18:31:10 377

原创 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 12795 2

原创 SpringCloud Gateway使用RestTemplate问题

刚刚解决了GateWay与上游服务的连接不释放问题,又发现网关下游一个服务出现连接数不正常的问题。正常情况下,该服务的连接数应该是个位数,但监控却发现占用的连接数经常接近100个,开始了排查之旅。 首先怀疑是该服务性能有问题,处理时间长,网关得不到应答所以会一直占用与该服务的连接,经过对SQL的排查发现没有问题,再写脚本直接调用该服务的接口,发现响应时间都在20ms一下,所以性能问题排除。然后,怀疑网关在调用该服务后,未及时释放,连续监控服务端口占用情况30分钟,发现所有端...

2020-12-07 18:53:17 4822

原创 springcloud gateway 连接保活问题

项目中使用了springcloud gateway作为网关,上游与负载均衡服务器连接。近期通过监控系统观察,发现网关与上游负载均衡服务器保持的TCP连接有300+,初步怀疑是调用方未释放连接,用如下方法进行分析: 1)周期性采集当前建立的连接及端口数据,首先是每隔10分钟连续采集2两个小时,发现在两个小时之内新出现的端口不到12个,再逐步缩短采样周期,到最后每秒采集一次,分析发现每秒种建立一个连接,同时关闭一个连接,当仍存在300+连接,这些连接对应的端口称为不活跃端口,记录下这3...

2020-10-26 18:26:22 4469

原创 支付宝小程序占用服务器端TCP连接问题分析及解决建议

一、问题起源: 我们的系统支持多端,针对不同的端分配了不同的网关集群。通过监控系统发现,支付宝小程序面向的网关上的TCP连接数直线上升,最高到过5万+个连接,同时微信小程序的TCP连接数仅为1000多个,甚至在支付宝下游服务被切断的情况下仍是有增无减,而实际上微信的用户数与支付宝的用户的比例基本为10:1,我们的工程师认为是支付宝用户量大所导致,但根据我的经验否定了这个观点,肯定是连接没有释放。二、排查过程 首先确认支付宝小程序是否因为未设置读超时,导致连接一...

2020-07-29 16:00:19 900

原创 tomcat使用http/https正向代理

前端请求进入内网后,内网服务需要访问外部服务,安全策略要求内网服务不能直接访问外网,所以决定在网关部署nginx,并配置为正向代理,内网服务配置nginx为正向代理。内网服务既有基于spring-boot的微服务,也有传统的Tomcat应用。所以分别进行测试验证。具体过程如下。 一、对spring-boot应用进行验证 参考网上使用正向代理方法,优先考虑对代码无侵扰的两个方法。一个是在java命令行增加-Dhttp.proxyHost=代理ip-Dhttp.proxyP...

2020-06-10 22:58:46 3810 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 1336

原创 IPSec防重放机制分析

防重放机制有三种:时间戳、挑战和滑动窗。IPSec中使用了第三种机制,本文首先对滑动窗口进行简单介绍,然后针对IPSec中如何利用滑动窗进行防重放判断进行介绍               ||

2015-05-18 17:11:12 10929

原创 面向对象分析与设计

本文再以ATM系统为例来说明面向对象的分析和设计过程。如果从用户需求的高度来看,需求包括取款、查询和修改密码。用户输入密码严格来说仅仅是用户需求中的一个步骤,并非真正意义上的需求。然后进入分析阶段,分析阶段考虑的仍然是问题域,经过分析产生的是分析类,分析类与现实世界中对象有对应关系。很显然此时一个分析类就是用户(User),该类具有卡号、密码、金额、用户名和身份证等信息,在我们讨论的问题中仅仅需要

2015-01-26 18:43:28 643

原创 面向对象及相关概念剖析

面向对象技术包括面向对象分析(OOA),面向对象设计(OOD),面向对象编程(OOP)和面向对象测试(OOT).面向对象技术的核心应该是OOA和OOD(有些资料上干脆把二者合并称OOAD),OOP和OOT跟面向过程的编程和测试没有什么区别.面向对象的思想因为更符合人思维习惯,所以用来做软件系统的分析和设计,但该技术并不是银弹,因为与传统技术(面向过程和结构化技术)相比,面向对象技术能解决的问题并不

2015-01-26 18:33:22 470

原创 谈谈代码走读

代码走读的重要性就不说了,我想谈谈对代码走读的总体认识。首先代码走读前,代码必须编译通过,强类型检查的语言(比如JAVA)自带的编译器就够了,如果是弱类型检查的语言(比如C/C++)应该用辅助的静态检查工具(比如lint)进行检查,毕竟机器发现问题的效率要比人眼和人脑要高的多,机器能做的事情让机器去做。检查完成后,把编译错误和告警消除,才可以进入代码走读。其次,代码走读前要在项目组内部统一走读的标

2015-01-26 18:31:11 8399

原创 JAVA开发中的中文问题

JAVA中文编码问题 先介绍一个概念:本地编码,所谓本地编码是操作系统采用的中文编码格式,一般是“GBK”或“GB2312”,可以用System.getProperty(\"file.encoding\")。 本文从以下几个方面来对JAVA中的中文编码进行说明。 1.中文存储方式 2.编码变换问题 3.解决方法 第一:中文存储方式 本部分分控制台应用,WEB应用来分析: 对控制台应用: JAVA文

2015-01-26 18:31:01 402

原创 网络编程字节序问题

昨天,看我们的程序员写的一段网络应用中数据接收部分的代码,该段代码用于从一个用C++编写的应用中接收数据,其中有一个数据项是整型数,在代码中是这样做的:接收过来后,对数据流中的这个整型数,做一次字节序的转换,第0个字节跟第3个字节互换,第1个字节跟第2个互换。经过跟程序员的交流,他跟我解释说不这么变换数据不对,具体原因也不知道为什么。 要把这个问题搞清楚,需要从BIG-ENDIAN、LITTLE-

2015-01-26 18:29:22 713

原创 Java网络编程问题

我所说的网络编程就是指Socket编程,首先列举一下用JAVA语言编写Socket程序时的常见异常、原因及解决方法,然后再讲一下编写网络程序需要注意的问题。在分析之前,首先把网络程序中所谓的客户端和服务器弄清楚,它们是在通信层面的,所谓的服务器是接收连接的应用,而所谓的客户是发起连接的应用,与业务层面的客户端和服务器并非一一对应,在实际系统中业务层面的服务器端可能是网络层面客户端。下文所说的服务器

2015-01-26 18:28:28 451

原创 Java编译和运行时类查找机制

运行JAVA程序时,经常碰到一些莫名其妙的问题,运行结果与预期不一致,这类问题的定位非常麻烦,很多的情况下是由于在不同的路径下存在同名的文件,那么在JAVA程序运行时是如何定位类文件的呢?如何解决同名类问题?首先,我们从JAVA程序的编译说起,JAVA运行时的类查找机制同编译时,只不过是运行时所有的源文件已经被编译成了类文件。对JAVA源代码进行编译时分分成三个步骤:第一:形成三个表,分别

2015-01-26 18:24:29 2777

原创 Mysql存储引擎小析

一、简介       数据库中有的表存储的数据主要应对查询,比如一些字典表,费率表,有些表主要应对修改,比如评论表的和反馈表,有的表读和写的频率都很高,比如商品表。根据不同的情况可使用不同的存储引擎。高并发的读写访问,必须要有事务的支持,而仅有高频读的表则不需要事务的支持。     Mysql数据库的存储引擎是解决以上问题的有用特性,可以让工程师在表级别根据不同的场景使用不同的存储模式。最

2015-01-26 15:44:57 426

Hadoop集群管理

本文主要对Hadoop集群的节点磁盘数据结构进行说明,然后讲解如何利用管理工具对集群进行管理及日常的维护和升级

2015-08-01

Hadoop MapReduce高级特性

本文针对MapReduce中的包括计数器、排序和数据集连接进行讲解。计数器包括系统计数器和自定义计数器,排序包括部分排序和文件排序,还包括对键内数据的排序。

2015-08-01

MapReduce类型及格式

本文对MapReduce中的数据处理模型进行整体说明,分别对输入和输出的各种类及可口进行讲解,从而可以处理比如文件不分片,非文本文件,多个文件合并等问题

2015-07-30

Hadoop MapReduce开发

本章详细讲解如何工程化的进行MapReduce开发,从代码编写、到单元测试、到本地测试、到集群测试,并初步讲解如何进行优化。

2015-07-30

Hadoop MapReduce原理

本文分别对传统MapReduce和YARN的体系结构、工作流程及故障处理等三个方面进行讲解,让你深入理解MapReduce的工作原理

2015-07-14

Hadoop MapReduce入门

本文作为Hadoop MapReduce的入门篇,首先对MapReduce原理进行简单介绍,然后以一个简单的例子说明如何编写一个简单的MapReuce程序。

2015-07-03

Hadoop HDFS应用

本文主要针对通过命令行和JAVA API实现对HDFS的访问,并对HDFS支持的文件系统进行了简单介绍,最后是几个例子说明如何变成实现对HDFS上文件的访问。

2015-07-02

Hadoop HDFS原理

本文主要对Hadoop HDFS的原理进行阐述。从HDFS系统架构、HDFS中守候进程、各进程之间的接口、HDFS中的关键数据结构几个方面进行分析,在此基础上,针对HDFS的启动、读、写和建立检查点几个流程进行了说明。从而可建立对于HDFS的机制的深刻理解。

2015-06-26

Hadoop集群安装

本文针对HADOOP的MRV2安装进行详细说明,所有的操作都在实际环境中验证通过,并且针对安装过程中的常见问题给出解决办法,按照本文档,可逐步搭建出自己的真正的Hadoop集群环境,为你开启学习和使用Hadoop集群的大门。

2015-06-25

Hadoop2.5.2集群安装

本文针对Hadoop2.5.2的集群安装过程进行详细的讲解,根据本文可顺利完成Hadoop集群的安装和基本使用。

2015-06-17

JProbe8.1.0破解版

JProbe用来查找基于JAVA/J2EE的应用的性能热点和内存泄露,是大数据、高并发系统性能优化的必备工具

2015-01-15

JProbe使用指南

JProbe是针对JAVA/J2EE应用进行性能优化的工作,本文档讲解从JProbe安装到使用该工具查找性能热点和内存泄露的方法

2015-01-15

openssl代码实例

本文档代码中的代码基于openssl1.0.0e编写,全部都在linux上编译和运行通过。能帮助普通的C程序员短时间内掌握PKI开发所必备的技能。

2015-01-15

PKI技术基础

介绍信息安全基本概念及使用场景,并对PKI中的关键技术进行说明

2015-01-15

java规则引擎说明

本文档对JAVA规则引擎是什么,如何使用进行了详细的说明。

2013-09-14

oracle高级复制操作过程

本文档对ORACLE中实现高级复制的过程进行了详细的讲解

2013-09-14

ASN1编码查看工具

本工具用于查看ASN1编码,对于需要分析或学习ASN的人有很大帮助

2011-11-01

面向对象基础理论

本文对于面向的对象的基本概念进行了介绍,包括类、状态、行为、封装、共生、内聚、领域集,帮助你理解什么是OO及发现你的程序中所存在的设计问题。

2017-09-07

设计模式之实战

在研究GoF设计模式基础上,结合笔者实战中的实际代码对各种23种设计模式进行了分析,说明每种模式的适用条件,与相关模式的关系,尽量避免用System.out去说明问题。

2017-08-11

FIDO UAF 应用API和传输绑定规格

本文首先对于上层应用和UAF客户端之间的接口进行了说明,然后对于上层应用和远程服务之间的UAF协议消息的传输模式和安全需求进行了说明。

2017-04-01

FIDO UAF协议

本文对UAF协议进行了详细介绍,说明了注册、认证、交易确认和注册操作中各实体的具体处理过程和消息格式。最后对于本协议对安全、性能等方面的考虑进行了说明。

2017-03-28

FIDO UAF ASM 接口文档

本文主要说明的FIDO UAF框架中ASM 的API。

2017-02-27

FIDO ATTESTATION

本文对FIDO UAF的证实进行了说明,介绍了证实模型类型,证实语句(包括),包括封装、tpm和Android三种情况下的数据结构定义及证实验证流程和安全考虑。

2017-02-20

FIDO UAF架构

本文是基于UAF架构的官方文档,其中增加了自己的理解,对其中的流程图进行了修改,以便于理解。

2017-02-15

比特币区块链技术指南

本文内容包括对比特币区块链的概述,区块链涉及的技术,比特币交易,比特币钱包和P2P网络5个方面的内容。对于基于区块链的比特币的业务和技术进行的整体说明。

2016-12-15

新经济区块链蓝图翻译

本文是对《Blockchain blueprint for a new economy 》前5章的翻译。因对整体行业认识局限性,有很多认识不足之处,以后会进行修订。

2016-11-28

go语言学习笔记

作为时下流行的一种系统编程语言,Go 简单易学,性能很好,且支持各类主流平台。已有大量项目采用 Go 编写,这其中就包括 Docker 等明星作品,其开发和执行效率早已被证明。本书经四年多逐步完善,内容覆盖了语言、运行时、性能优化、工具链等各层面知识。且内容经大量读者反馈和校对,没有明显的缺陷和错误。上卷细致解析了语言规范相关细节,便于读者深入理解语言相关功能的使用方法和注意事项。下卷则对运行时源码做出深度剖析,引导读者透彻了解语言功能背后的支持环境和运行体系,诸如内存分配、垃圾回收和并发调度等。本书不适合编程初学入门,可供有实际编程经验或正在使用Go 工作的人群参考。

2016-10-18

docker实战指南进阶

在原有的内容基础上,对第14部分内容进行了修改,然后增加了jenkins构建Docker,用jenkins实现swarm的持续构建、Shipyard的使用和用swarm的三种模式构建可扩展的微服务架构等内容。并对三种swarm模式进行了比较,对overlay网络的使用进行了辨析。

2016-09-28

docker实战指南

本文首先对虚拟化技术进行讲解,并引入docker的概念。然后针对docker的仓库、镜像和容器概念进行讲解;接下来对docker的操作和使用进行了详细介绍;然后说明了docker的网络配置、使用及原理和数据卷的使用;后面说明如何使用docker compose整合多个容器,接下来对docker swarm的使用和原理进行了详细介绍,然后说明了docker machine的具体使用,包括创建swarm Docker机,最后针对如何在实际的生产环境创建高可用的集群进行了说明。

2016-09-10

linux内核设计与实现学习总结

公司要做一个可信计算的项目,基于Linux内核进行进行开发。所以,学习了《Linux内核设计与实现》,基于书本内容,结合Linux源码,并进行实际开发,完成了大数库和ECC向Linux内核的移植,并形成本总结,涵盖原书知识点,并增加了自己的理解,尤其对对VFS和块I/O增加了多张数据结构关系图,使你更容易理解这些模块的设计。其中的系统调用是基于32位系统的,如果是基于x86_64,则需要修改asm/unistd_64.h文件和linux/syscalls.h文件,需要注意。

2016-07-20

Android安全技术手册

本文翻译和理解英文版《Android Hacker's Handbook》基础上整理的学习资料,对Android的体系结构,安全攻防相关概念,Android的攻击向量和攻击面进行了总结,针对内核、原生应用和APP的漏洞利进行说明,并引入了攻击过程中使用的工具。可使你对Android的体系有一个整体认识,对Android的所有攻击面及攻击向量建立系统了解。可作为Android安全工程师的参考手册。

2016-03-09

maven从入门到实战

本文首先针对maven3.3.3 的版本构建普通Java 应用和Java Web 应用进行讲解。然后针对公司私有maven 库的情况下,如何安装自有资源及在maven 应用中使用私有maven 库中的资源进行说明。接下来针对maven 与配置管理工具subversion 进行整合进行了详细介绍。最后针对一个具体项目应该按什么顺序去使用maven 进行说明。

2015-08-09

Hadoop HA配置

本文讲解利用仲裁日志节点来解决名字节点的单点故障,从而实现Hadoop集群的高可用性,首先实现了手动故障切换,再结合zookeeper实现了自动故障切换。

2015-08-01

空空如也

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

TA关注的人

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