自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

分享各种技术

分享各种技术

  • 博客(37)
  • 问答 (5)
  • 收藏
  • 关注

原创 一文讲清MySQL的innodb_log_write_ahead_size参数

一文讲清MySQL的innodb_log_write_ahead_size参数MySQL调优的时候会遇到一个参数innodb_log_write_ahead_size,这个参数如果对计算机存储系统不了解的话很难理解,网上很多文章说的又不是很清晰,所以本文对该参数做一个解析;要想知道innodb_log_write_ahead_size参数怎么配置,最重要的就是先了解这个参数解决了什么问题,那么这个参数是解决什么问题的呢?官网对该参数的描述如下:Defines the write-ahead blo

2021-05-08 19:54:33 1212 8

原创 由JDK bug引发的线上OOM

最近生产环境的一个应用忽然发生了OOM,还好是业务低峰期,没有导致什么严重问题,下面记录下本次排查的过程;

2023-08-25 09:35:44 173

原创 feign-eureka-ribbon的协作原理

一文带你了解feign、ribbon、eureka的协作原理

2023-04-09 16:58:02 202

原创 操作系统系列-序

从零写一个操作系统

2023-03-07 13:37:16 144

原创 使用了lombok后如何生成正确源码包

解决使用了Lombok后IDEA下载源码提示Library source does not match the bytecode for class

2022-09-06 17:36:45 932

原创 常见问题排查

通过固定方法排查各种常见问题,形成自己的问题排查方法论

2022-09-06 11:42:57 345

原创 java服务器调试指南

快速学会Java服务器调试

2022-07-27 09:36:59 734 2

原创 关于证书,这里有你想知道的一切

在HTTPS开发中,你是否被各种证书搞得晕头转向?.pem证书?.der证书?X.509证书?本文带你理清这些证书叫法背后的含义;

2022-05-21 17:07:46 504

原创 k8s中部署traefik并开启https支持

k8s中部署traefik并开启https

2022-05-17 15:16:21 2214 1

原创 ESP8266 RTOS开发环境搭建

ESP8266 RTOS开发环境搭建

2022-04-07 21:55:40 2748

原创 MySQL驱动中关于时间的坑

什么,我的日期存到数据库怎么慢了14个小时?!!!

2022-02-26 17:02:27 608

原创 2FA双因子认证之OTP算法

2FA双因子认证之OTP算法概述2 Factor Authentication简称2FA,双因子认证是一种安全密码验证方式。区别于传统的密码验证,由于传统的密码验证是由一组静态信息组成,如:字符、图像、手势等,很容易被获取,相对不安全。2FA是基于时间、历史长度、实物(信用卡、SMS手机、令牌、指纹)等自然变量结合一定的加密算法组合出一组动态密码,一般每60秒刷新一次。不容易被获取和破解,相对安全。TOTP/HOTP作为其中的一种(实际是两种,不过其中一个是变种,这里当作一种)算法,目前已经用于

2022-01-24 15:16:42 1530

原创 HMAC算法

消息认证算法之HMAC,详细剖析HMAC算法,文末附有示例代码

2022-01-22 16:57:50 3727

原创 SHA1算法详解

SHA1算法详解SHA1算法作为摘要算法的一种,被使用于各种签名、摘要等场景,本章我们详细分析下SHA1算法细节;术语定义 word:32bit的String,可以表示为8个16进制的序列,例如A103FE23; integer:表示0-2^32-1之间的数字; block:表示512bit的String,一个block可以表示为16个word的序列(数组); 消息填充规则对于待摘要的消息M,先填充一个bit 1,然后填充N个bit 0,最后填充64b.....

2022-01-15 14:18:18 6439 2

原创 JDK17都出来了,你还在用JDK8?

JDK17的一些新特性本文旨在介绍一些JDK17的新特性,同时限于篇幅,本文仅列举其中一些差异,而不是全部差异;PS: JDK17是Java的一个LTS版本(长期支持版本),可以放心迁移过来;instanceofJDK8中的语法:Object o = something;if (o instanceof String) { String str = (String)o; // do something}在JDK17中我们可以这样写:Object

2022-01-08 11:13:40 1781

原创 ZIP(32位)文件格式详解

ZIP文件格式详解

2022-01-01 22:27:09 3456

原创 如何打包SoftEtherVPN

构建环境搭建> SoftEtherVPN地址:https://github.com/SoftEtherVPN/SoftEtherVPN_Stable.gitSoftEtherVPN的构建环境搭建(Dockerfile):```FROM centos:7RUN yum install -y epel-release.noarch \ && yum update -y \RUN yum -y groupinstall "Development Tools" \..

2021-11-12 14:07:42 1206

原创 一文读懂rabbitMQ和rocketMQ的消息可靠性机制

一文读懂rabbitMQ和rocketMQ的消息可靠性机制在我们大多数场景中,MQ消息都要保证可靠性,消息可靠性应该是我们最关心的一个细节,没有之一;而各个MQ实现的可靠性保证都不同,同时实现机制也不同,只有知道各个MQ实现是如何保证消息可靠性的,才能在使用的过程中不丢消息;rabbitMQ对于rabbitMQ,消息可靠性是从以下几点来保证的:消息持久化; 发布者确认;消费者确认;消息持久化对于rabbitMQ,默认情况下消息是不持久化的,这是为了性能考虑,

2021-11-10 15:43:40 2531

原创 通过局域网中间人攻击学网络第五篇

通过局域网中间人攻击学网络 续续 HTTPS篇2抓包环境本章开始分析握手包,分析过程中会涉及抓包,为了尽可能方便,后续都采用对百度的抓包,工具;wireshark,使用过滤条件(不过滤的话包太多不好找):tls.handshake.extensions_server_name == ss2.baidu.comRecord数据结构HTTPS中数据都是通过Record层进行包装的,Record的数据结构如下:public class Record <T>{ /*.

2020-12-30 16:21:42 362

原创 通过局域网中间人攻击学网络第四篇

通过局域网中间人攻击学网络第四篇HTTPS篇1Abstract最近因为个人原因停更有段时间,后边会慢慢恢复更新;前三篇基本把局域网中间人攻击的原理介绍了一下,根据前三篇我们可以做一个简易的工具来实现局域网攻击了,但是攻击过程中你可能会发现一个问题,当前大多数 网站都已经采用HTTPS链接了,这样会导致你抓到的数据都是加密过的,没办法查看、修改,那搞中间人攻击干啥呢?抓包抓了个寂寞吗?要解决这个问题,我们首先 要清楚HTTPS是什么;什么是HTTPS,HTTPS解决了什么问题?要了

2020-11-13 21:33:18 339

原创 通过局域网中间人攻击学网络 第三篇 netfilter之内核篇

通过局域网中间人攻击学网络第三篇 netfilter框架之内核篇在第二篇中,我们讲到可以用ARP欺骗的形式将局域网内某个主机的流量转发到我们的机器上,那我们如何对该流量进行拦截修改呢?在Linux下,我们可以 使用netfilter框架来实现对ip数据拦截修改;什么是netfilter?Netfilter是Linux 2.4.x引入的一个子系统,它作为一个通用的、抽象的框架,提供一...

2020-04-12 21:08:46 679 1

原创 通过局域网中间人攻击学网络 第二篇 ARP欺骗

通过局域网中间人攻击学网络第二篇 ARP欺骗原理我们要进行中间人攻击,就要将自己的主机插入到被攻击主机与被攻击主机要访问的主机之间,拦截他们的流量,到自己的主机然后转发,如下图所示:只需要将被攻击者的流量转发到我们的机器上我们对其代理,我们就可以对其修改了,那么现在又有新问题了,如何去代理被攻击者的流量呢?因为是我们 要攻击对方的,所以不太可能让被攻击者主动设置将流量转发到我...

2020-03-28 21:31:05 657 2

原创 通过局域网中间人攻击学网络

通过局域网中间人攻击学网络序言声明该文章为系列连载文章,由于作者目前工作较忙(懒),所以预期一周更新一篇; 作者目前主要从事Java开发,所以后续涉及部分C代码的,可能会比较菜,不符合各种规范,请见谅; 本系列文章仅供学习使用,请勿用作非法途径; 想要深入交流或者吐槽作者的,可以加作者微信,作者微信:qiao1213812243;学习本系列文章前我需要有什么样的基础简单的C...

2020-03-21 19:43:38 745

原创 java基础类型的装箱拆箱

java基础类型的装箱拆箱通过本文能了解哪些知识?为什么基本数据类型拆箱有可能会报空指针异常? 基本数据类型的装箱与拆箱操作是如何实现的?自动拆箱首先我们有如下代码:public class Test{ static { Integer integer = new Integer(1234); int i = integer; ...

2019-11-12 20:01:17 169

原创 异常警告之-ConcurrentModificationException

异常分析相信写过一些Java代码的人都遇到过这个异常,一般都是由以下代码引起的:import java.util.List;import java.util.ArrayList;public class Test{ public static void main(String[] args){ List<String> list = new Arra...

2019-11-12 19:53:38 378

原创 网络协议之HTTP-CORS

什么是CORSCORS是通常所说跨域请求的英文简称,全称Cross-Origin Resource Sharing。浏览器出于安全考虑会禁止使用跨域请求,而使用CORS技术可以突破 该限制。注意:浏览器限制仅限于脚本请求不能跨域,例如在js中用ajax请求,如果跨域会被拦截,但是对于标签是可以跨域的,例如使用img标签来跨域请求一个 图片资源,用script标签来跨域请求一个脚本资源。JS...

2019-11-12 19:45:42 365 1

原创 高效搜索数据结构之红黑树简介

之前介绍java中的HashMap时有说到过红黑树,今天就来讲讲红黑树。首先学习红黑树之前要了解二叉树以二叉搜索树。二叉树是一种基本的数据结构,本身结构也很简单,结构如下图所示:图(1)上图所示就是一个简单的二叉树,每个节点都最多有两个子节点(可以为空),每个节点最多有一个父节点(根节点没有父节点),其中1就是根节点。而二叉搜索树就是

2018-02-05 16:54:51 234

原创 多线程概述

多线程概述由于CPU核心越来越多,现代编程中总少不了多线程,而多线程编程在java中是比较容易的,这也算是java的一大优势。多线程编程,总避不开一个话题,那就是线程安全。那么,如何保证线程安全呢?可能很多人第一时间想到的就是锁,是的,锁是一个很好的解决方案,那么有没有更好的方案呢?答案也是有的。那么,不用锁如何做到线程安全呢?首先我们需要了解,为什么会有线

2018-02-05 16:50:44 247

原创 如何打造一个百万用户的IM后台(1)

如何打造一个百万用户的IM后台(1)聊天应该是当代人使用频率最高的软件,相信很多java使用者在初学java中socket部分时也会自己写一个聊天软件服务器。那么,如何才能写一个能够提供百万并发能力的IM后台呢?1问题分析要想写一个百万并发的IM后台,首先得知道将要面临什么样的问题,首先是IO模型,传统的BIO模型是肯定不行的,那么就只能使用NI

2018-02-05 16:49:25 5018

原创 由一个死循环引出的一系列问题及思考

一次粗心引起的死循环场景一次系统升级中,需要修改一个需求,而这个需求需要修改一个for循环的次数,原循环如下:for(byte i = 0 ; i 30 ; i++){ //do something}而修改后如下:for(byte i = 0 ; i 300 ; i++){ //do something

2018-02-05 16:45:30 308

原创 如何优雅的写代码

如何优雅的写代码为什么别人的代码看起来那么优美,而我的代码就像一坨翔?相信很多新人都会有这样的疑问吧,看各种框架的代码看着感(根)觉(本)特(看)别(不)溜(懂),而自己写出来的代码怎么看怎么不顺眼,为什么呢?规范!!!规范!!!规范!!!是的,一切都是规范问题,如果你看各种框架代码看得多了你会发现,他们好像大都是一个套路,一个说不上来的套路,看起来就很舒服

2018-02-02 23:29:24 4393 5

原创 如何获取gcr.io上的镜像

如何获取gcr.io上的镜像好久没更新了,今天来更新一篇。相信许多新手使用kubernetes时最大的一个阻碍就是如何下载示例中的镜像,因为kubernetes官方示例中的镜像都在gcr.io上,而该网址国内是访问不到的,那么如何获取到这些镜像呢?相信很多新手都是使用别人的镜像的,没办法,谁让咱访问不到谷歌的镜像呢,可是如果某个镜像别人也没有呢?为什么别人有这个镜像呢?而且最最最关

2018-01-15 14:45:33 14547 3

原创 性能杀手—伪共享

在之前的一篇文章<java缓存行与volatile>中有讲到缓存行,同时说到了可能导致的一个问题,但是并没有讲完,本文就继续讲解该问题。

2017-10-30 22:17:59 278

原创 java数据结构之ArrayList

相信大多数接触java时最早接触的一个数据结构就是ArrayList了,然而ArrayList是如何工作的,内部又是怎样的实现,相信很多人都没有看过或者看过但早已忘记。那么,ArrayList作为java中最基础最常用的数据结构之一,我们就有必要去深入的了解一下ArrayList是如何工作的了。ArrayList构造器简介在java中,一切皆对象,一切操作又离不开对象,Ar

2017-06-14 08:40:31 308

原创 发布项目到maven中央仓库

可能很多人都在用maven仓库,但是如果要问怎么发布项目到中央仓库,估计很多人都不知道了,下面本篇文章带大家往中央仓库发布一个自己的maven项目。往maven中央仓库发布组件的过程是与Sonatype工作人员交互的过程,这个过程是在Sonatype的JIRA平台上完成的,过程如下:    在Sonatype的JIRA注册    提交一个issue(提出一个发布申请

2017-06-13 13:53:46 2272 5

原创 centOS下整合Tomcat和redis

读下面内容时,假设你已经能够进行Linux、tomcat、redis、git、gradle的安装和基本使用,如果不会使用以上系统/软件,请先学习。俗话说:万事开头难,就像学习一门语言会先学习一个hello word一样,环境的整合也要先学会整合,然后才是去使用,而整合又是最难的,因为如果是新手没有经验的话很容易整合失败,官方的说明大多是英文的,不利于阅读,而百度出来的很多都不能用,都是

2016-06-16 13:39:54 674

原创 java-httpclient-HTTPS请求

最近自己搞微信支付开发时遇到了些问题,其中一个就是关于微信中需要发起HTTPS请求,下面贴代码,其中Config.getMch_id()方法是获取微信分给商户的一个ID,Config.getLicense_path()方法是获取证书的路径,这两个参数可以自己替换

2016-02-18 14:41:19 755 2

FlyClockV5.7.0.exe

FlyClockV5.7.0.exe

2022-12-17

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

TA关注的人

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