自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(578)
  • 资源 (12)
  • 问答 (1)
  • 收藏
  • 关注

原创 Nginx 301重定向分析

absolute_redirect ,server_name_in_redirect和port_in_redirect三个设置项中,根据Nginx的源代码中Response Header处理算法逻辑,Nginx能够控制重定向的关键配置项是:absolute_redirect,在整个Nginx代码中,absolute_redirect在控制在Response Header如何增加Location url。备注:header_in.server是nginx源代码中的变量,指向用户输入的url的服务器名字部分。

2023-07-23 11:20:30 2183

原创 tcpdump能否抓到被iptable封禁的包?

当收包的时候,驱动中实现的igb_poll函数最终会调用到_netif_receive_skb_core,这个函数会在将包发送到协议栈函数(ip_recv、arp_recv等)之前,将包先发送到ptype_all抓包点。tcpdump工作在网络设备层,将包发送到IP层以前就能处理,netfilter工作在IP、ARP层,所以iptable封禁规则不影响tcpdump的抓包。tcpdump工作在设备层,是通过虚拟协议的方式工作的。netfilter主要是在IP、ARP等层实现的。

2023-06-17 20:54:17 398

原创 SpringBoot自动装配

EnableAutoConfiguration用于激活Spring Boot自动装配的特性。

2023-01-23 14:03:18 767 1

原创 Java代理模式

静态代理、动态代理

2023-01-21 18:46:42 153

原创 IK分词工具

IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始, IKAnalyzer已经推出了4个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。从3.0版本开始,IK发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。在2012版本中,IK实现了简单的分词歧义排除算法,标志着IK分词器从单纯的词典分词向模拟语义分词衍化。

2023-01-20 17:52:55 1254

原创 索引查看工具Luke

Luke是用来查看Lucene、Solr、ElasticSearch索引的GUI工具,方便开发和诊断。

2023-01-20 17:29:32 326

原创 Lucene

lucene是一个全文检索的库,Solr是一个基于Lucene的全文搜索服务器。

2023-01-20 17:22:14 1653

原创 Java多线程-死锁

Java多线程-死锁。

2023-01-15 15:19:50 183

原创 Java多线程-Semaphore

此示例中,Semaphore被初始化为2个permit count,意味着同一时刻只有两个线程可以同时访问共享资源。使用Semaphore控制共享资源的访问。

2023-01-15 14:27:17 83

原创 Netty入门-Channel

Netty Channel

2022-11-07 09:37:18 815

原创 Netty架构设计

Netty架构设计Selector模型事件模型

2022-11-06 17:07:25 386

原创 Kafka消费者

Kafka消费者,客户端开发

2022-10-08 22:20:51 531

原创 Kafka生产者

kafka生产者序列化器分区器拦截器

2022-10-06 20:14:57 649

原创 使用Rancher搭建k8s集群

Rancher是一个开源的企业级容器管理平台。通过Rancher,企业再也不必自己使用一系列的开源软件从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和K8s的全栈容器部署与管理平台。

2022-10-03 09:02:06 844

原创 手动搭建k8s集群

以下仅供参考,建议使用Rancher搭建。

2022-09-24 14:19:19 435

原创 centos虚拟机网络设置

vi /etc/sysconfig/network-scripts/ifcfg-ens33 (ens33对应ifconfig)(如果想删除的话:sudo firewall-cmd --permanent --remove-port=6379/tcp)③查看目前的设置:firewall-cmd --list-all。②重启防火墙:firewall-cmd --reload。--zone= public 不写也行,默认就是。以开放6379端口为例。

2022-09-24 14:09:36 166

原创 Docker Compose

使用Docker Compose,可以用一个YAML文件定义一组要启动的容器,以及容器运行时的属性。Docker Compose称这些容器为“服务”。官方文档地址:Overview of Docker Compose | Docker Documentationhttps://docs.docker.com/compose/Install Docker Compose CLI plugin | Docker Documentationhttps://docs.docker.com/compose/insta

2022-06-21 17:10:11 134

原创 使用dockerfile-maven-plugin

介绍github地址:GitHub - spotify/dockerfile-maven: MATURE: A set of Maven tools for dealing with Dockerfileshttps://github.com/spotify/dockerfile-maven/maven是一个项目依赖管理和构建的工具,dockerfile-maven-plugin是一个maven的插件,主要作用是在项目构建的时候生成基于项目的docker镜像文件。简而言之,此插件将maven

2022-05-17 19:26:37 2222

原创 MySQL版本升级

不支持跨大版本直接升级,可支持的直接升级如下:小版本间升级,如:5.7.29到5.7.34跨一个版本升级,如:5.6.x到5.7.x源码包升级方式1. 下载源码包以Linux-Generic为例wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz2. 解压并赋权tar -zxvf mysql-5.7.34-linux-glibc2.12-x86_64

2022-05-17 14:12:54 927

原创 ByteBuffer 之黏包和半包

应用层的拆包和粘包 - 知乎简介拆包和粘包是在socket编程中经常出现的情况,在socket通讯过程中,如果通讯的一端一次性连续发送多条数据包,tcp协议会将多个数据包打包成一个tcp报文发送出去,这就是所谓的 粘包。而如果通讯的一端发送的数…https://zhuanlan.zhihu.com/p/77275039拆包和粘包是在socket编程中经常出现的情况,在socket通讯过程中,如果通讯的一端一次性连续发送多条数据包,tcp协议会将多个数据包打包成一个tcp报文发送出去,这就是所谓的粘包。.

2022-05-08 19:47:49 720

原创 NIO之ByteBuffer

通过FileChannel展示ByteBuffer的使用,使用步骤:1. 想buffer中写入数据,例如调用channel.read(buffer);2. 调用flip()切换至读模式;3. 从buffer读取数据,例如调用buffer.get()4. 调用clear()或compact()切换至写模式5. 重复1-4步骤import java.io.FileInputStream;import java.io.IOException;import java.nio.ByteB

2022-05-08 16:43:15 300

原创 使用花生壳将内网服务发布到外网

花生壳-免费内网穿透软件|端口映射工具|DNS免费动态域名解析_花生壳,内网也能用-贝锐花生壳官网花生壳既是内网穿透、内网映射软件,也是端口映射软件,为全球1800多万用户提供免费DNS/DDNS动态域名解析服务,支持外网访问内网服务器,为用户提供免费动态域名申请,软件下载,域名解析,解析教程等服务。https://hsk.oray.com/1. 登录花生壳,下载客户端2. 创建测试应用使用spring initializr初始化一个简单应用:https://start.spring.io/

2022-05-04 20:32:19 1244

原创 树莓派安装系统并初始化

Raspberry Pi OS – Raspberry Pihttps://www.raspberrypi.com/software/使用RaspberryPiImager安装系统Step 1插入SD卡,需要有SD卡读卡器Step 2运行Raspberry Pi Imager,选择操作系统,SD卡等。点击右下角按钮进行高级设置,可开启SSH并设置用户密码,设置网络连接等Step 3进行烧录Step 4烧录完成后将SD卡插入树莓派,接通电源启动登录路由器管理界面,查看树..

2022-05-04 18:41:55 330

原创 Java使用Kafka入门示例

使用java操作kafka

2022-05-04 15:56:11 747

原创 Kafka生产与消费脚本工具

kafka生产和消费

2022-05-04 13:33:12 1828

原创 Kafka安装与配置

安装zookeeper安装kafka

2022-05-04 13:19:04 1399

原创 Kafka体系结构

Kafka体系结构kafka基本概念

2022-05-03 15:57:42 1129

原创 互联网安全架构

目录常见的Web攻击手段XSS攻击CRSF攻击SQL注入攻击文件上传漏洞DDOS攻击常见的Web攻击手段XSS攻击XSS(Cross Site Scripting)跨站脚本攻击,指攻击者在网页中嵌入恶意脚本程序,当用户打开该网页时,脚本程序便开始在用户的浏览器上执行,盗取客户端cookie、用户名密码,下载执行病毒程序,甚至是获取客户端admin权限等CRSF攻击CRSF(Cross site request forgery)跨站请求伪造,是一种对网站的恶意利

2022-05-02 21:35:31 609

原创 java内置序列化

public static void main(String[] args) throws IOException, ClassNotFoundException { ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputS..

2022-04-23 20:48:23 344

原创 ElasticSearch创建索引指定分片和副本

ElasticSearch默认给一个索引设置5个分片1个副本,一个索引的分片数一经指定就不能再修改,副本数可以通过命令随时修改。自定义分片和副本数,可以通过setting参数在索引时设置初始化信息。put blog{ "settings":{ "number_of_shards":3, "number_of_replicas":0 }}更新副本:put blog/_settings{"number_...

2021-09-13 13:58:18 3225

原创 第四章:使用多线程

目录为什么使用线程池无限制线程缺陷简单的线程池实现Executor框架为什么使用线程池无限制线程缺陷多线程可以发挥多核处理器的计算能力,提高系统的吞吐量和性能,但是若不控制和管理的随意使用多线程,对系统性能反而产生不利影响。简单的线程创建: new Thread(new Runnable() { @Override public void run() { } }).start();简单的系统中,上述代码并

2021-03-13 16:06:59 128

原创 第三章:使用NIO

目录Buffer缓冲区重要参数相关操作创建Buffer重置和清空缓冲区读写缓冲区标志缓冲区复制缓冲区只读缓冲区文件映射内存Scattering和GatheringMapperByteBuffer性能对比直接内存访问性能创建销毁性能与流式的IO不同,NIO是基于块的,以块为单位处理数据。NIO中最为重要的两个组件,通道(channel)和缓冲(buffer)。缓冲是一块连续的内存块,是NIO读写数据的中转地。通道表示缓冲数据的源头或目的地,用于向缓冲读取或者写入数据,是访问缓冲的接口。Buffer缓冲区

2021-03-12 22:06:27 208

原创 第二章:Java核心数据结构

目录List接口ArrayList和LinkedList对比增加元素到列表尾部ArrayList.add(element)源码LinkedList.add(element)源码性能对比增加元素到列表任意位置ArrayList.add(index,element)源码LinkedList.add(index,element)源码性能对比删除任意位置元素ArrayList.remove(index)源码LinkedList.remove(index)源码性能对比initialCapacity遍历列表Map接口H

2021-03-06 21:18:31 140

原创 第六章:控制脚本

目录处理信号生成信号捕获信号捕获脚本退出修改或移除信号以后台模式运行脚本后台运行脚本在非控制台下运行脚本处理信号Linux利用信号与运行在系统中的进程进行通信。SIGHUP 1 A 终端挂起或者控制进程终止SIGINT 2 A 键盘中断(如break键被按下)SIGQUIT 3 C 键盘的退出键被按下SIGILL 4 C 非法指令SIGABRT 6 C 由abort(3)发出的退出指令SIGFPE 8 C 浮点异常SIGKILL 9 AEF Kill信号SIGSEGV 11 C 无效的内

2021-02-20 18:31:58 145

原创 第五章:呈现数据

目录理解输入和输出标准文件描述符重定向错误在脚本中重定向输出临时重定向永久重定向创建自己的重定向创建输出文件描述符重定向文件描述符创建输入文件描述符创建读写文件描述符关闭文件描述符列出打开的文件描述符阻止命令输出创建临时文件理解输入和输出两种显示脚本输出的方法:在显示器屏幕上输出将输出重定向到文件中标准文件描述符Linux系统将每个对象当做文件处理。这里包括输入和输出进程。Linux用文件描述符(file descriptor)来标识每个对象。文件描述符是一个非负整数,可以唯一标识会话中打开

2021-02-20 18:26:36 119

原创 第四章:处理用户输入

目录命令行参数读取参数读取脚本名测试参数特殊参数变量参数统计抓取所有的数据移动变量处理选项查找选项使用getopt命令获得用户输入基本的读取超时从文本中读取命令行参数./addem 10 20本例向脚本addem传递了两个命令行参数。脚本会通过特殊的变量来处理命令行参数。读取参数bash shell会将一些称为位置参数(positional parameter)的特殊变量分配给输入到命令行中的所有参数。这也包括shell所执行的脚本名称。位置参数变量是标准的数字:$0是程序名,$1是第一个参数,$

2021-02-20 18:22:44 139

原创 第三章:使用结构化命令

目录使用if-then语句if-then-else语句嵌套iftest命令数值比较字符串比较文件比较复合条件测试if-then的高级特性使用双括号使用双方括号case命令for命令读取列表中的值读取列表中的复杂值从变量读取列表从命令读取值更改字段分隔符用通配符读取目录使用if-then语句if commandthencommandsfibash shell的if语句会运行if后面的那个命令。如果该命令的退出状态码是0,位于then后面的命令就会执行。如果退出状态码是其他值,then部分的命令就

2021-02-20 18:18:14 92

原创 第二章:构建基本脚本

使用多个命令放在同一行中,使用分号隔开[root@iz2ze20vl8jnph0si0n7jsz wanghao]# date ; who2020年 02月 09日 星期日 22:16:01 CSTwanghao pts/1 2020-02-09 22:03 (121.229.*.*)使用这种方法能将任意多个命令串联在一起使用,不能超过最大命令行字数255创建shell脚本文件在文件的第一行指定使用的shell,格式为:#!/bin/bash通常,#用做注释行,但第一行是

2021-02-20 18:05:53 150

原创 第一章:Linux文件权限

目录安全性/etc/passwd文件/etc/shadow文件添加新用户删除用户修改用户Linux组/etc/group文件创建新组理解文件权限文件权限符默认文件权限修改安全性设置修改权限修改所属关系共享文件安全性Linux安全系统的核心是用户账户。/etc/passwd文件将用户的登录名匹配到对应的UID值,存储了系统中所有用户的基本信息,并且所有用户都可以对此文件执行读操作。[root@iz2ze20vl8jnph0si0n7jsz wanghao]# cat /etc/passwdroot

2021-02-20 17:53:22 331

原创 第一章:字符串处理优化

目录String对象类介绍特点不变性(immutable)常量池优化类的final定义JDK 1.6 substring()方法内存泄漏问题字符串分割splitStringTokenizerStringBuilder和StringBufferString常量累加String变量累加for循环构建String对象StringBuilder和StringBuffer区别容量参数字符串对象在软件开发中常用的对象,在内存中也是占据很大一部分,本章主要介绍字符串处理过程中的常见注意事项。String对象类介绍

2021-02-20 13:26:16 232 2

java design patterns

java 设计模式代码,常用设计模式,学习好资料,设计模式入门

2019-03-19

加密jquerymd5

jquery md5加密,使用方法:$.md5(val)。。。。。。。

2017-10-20

zk十分钟入门demo

zk十分钟入门代码demo;https://www.zkoss.org/wiki/ZK_Getting_Started/Learn_ZK_in_10_Minutes

2017-10-12

solr中文分词器

solr中文分词器

2017-06-26

plantuml参考手册

2017-04-11

storm-0.8.2

2016-08-14

zeromq-2.1.7.tar.gz

2016-08-14

JSF生命周期的事件处理

2016-08-01

《JavaServer+Faces核心编程 第3版》源码

2016-07-29

JSF架构图zz

JSF框架架构图

2016-07-28

hdfs用户指南

hdfs用户指南中文版

2016-07-07

hive用户指南

hive用户指南中文版

2016-07-07

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

TA关注的人

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