自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(148)
  • 资源 (2)
  • 收藏
  • 关注

原创 Siddhi

Siddhi是一个开源的流处理和复杂事件处理引擎,由WSO2公司开发。它提供了一个强大而灵活的框架,用于处理实时流数据和复杂事件。

2023-07-26 14:32:17 704

原创 Qemu虚拟机读取物理机的物理网卡的流量信息方法

QEMU虚拟机,passthrough技术,tcpreplay,主机模式

2023-04-10 10:20:25 771 1

原创 Kafka组件《控制器》

Kafka控制器

2023-01-30 21:24:36 625

原创 Virt-Viewer访问KVM虚拟机报错(virt-viewer:31090): Gtk-WARNING **: 16:22:39.758: cannot open display:

Virt-Viewer访问KVM虚拟机报错(virt-viewer:31090): Gtk-WARNING **: 16:22:39.758: cannot open display:

2022-12-06 09:07:11 869

原创 Libvirt Java API操作QEMU虚拟机(重启,强制关机,挂起,恢复,详情,关机,注销,快照备份等 )(CentOS)

Libvirt Java API 操作qemu部署虚拟机(CentOS),获取虚拟机列表,重启,强制关机,挂起,恢复,详情,关机,注销,快照备份等虚拟机操作

2022-11-29 14:07:00 1895 2

原创 qemu安装linux虚拟机(vnc方式,CentOS7.9)

qemu ,网桥,vnc,linux,virsh

2022-11-18 09:58:38 2908

原创 qemu创建linux虚拟机(亲测有效,virt-manger方式)

网桥,qemu搭建虚拟机,vnc,virt-manager

2022-11-17 20:19:44 4132

原创 EasyExcel生成多个exel文件并zip压缩

easyexcel ,动态表头,自适应宽高,自适应居中,样式设置,zip压缩

2022-10-21 12:37:07 3095 1

原创 最好用的信任关系自动化脚本(shell)

多台,服务器,信任关系,rsa,自动化脚本

2022-06-23 16:43:05 395

原创 Nginx介绍

1 nginx介绍2 nginx应用场景及配置3 nginx高可用4 nginx配置https

2022-05-30 22:30:47 13130 1

原创 Nginx安装

nginx安装及把nginx系统服务化,并设置自启动

2022-05-30 21:42:07 133

原创 Mysql知识点

B树和B+树的区别 ,为什么Mysql使用B树?B树特点:节点排序一个节点可以存多个元素,多个元素也排序B+树特点拥有B树特点叶子节点之间有指针非叶子节点的元素再叶子节点冗余,也就是叶子节点存储了所有的元素,并且排好序Mysql索引使用的是B+树,因为索引是用来加快查询,而B+树通过对数据进行排序可以提高查询速度,然后通过一个节点中可以存储多个元素,从而可以使得B+树的高度不会太高,再mysql中一个Innodb页就是一个B+树节点,一个Innodb是如何事项事务的...

2022-05-25 23:02:09 370

原创 Kafka实战《原理2》

pom <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.13</artifactId> <version>3.0.0</version> </dependency>异步发送API普通异步发送import org.a

2022-05-08 06:31:36 462

原创 Kafka实战《原理一》

定义传统定义:Kafka是一个分布式的基于发布订阅模式的消息队列,主要用于大数据实时处理领域。最新定义: Kafka是一个开源的分布式事件流平台,主要用于高性能的数据通道,流分析,数据集成和关键任务应用。消息队列应用场景1,异步处理2,系统解耦3,流量削峰4,日志处理5,消息通讯两种模式点对点模式: 消费者主动拉取数据,消息收到后清除消息发布/订阅模式: 可以有个多个topic主题消费者消费数据之后,不删除数据每个消费者独立,都可以消费数据kafka架构1)Pr

2022-05-07 15:59:20 873 1

原创 微服务架构统一异常监控Sentry

Sentry基本介绍简单使用Java项目应用简单demo项目实战基本介绍Sentry 是一个开源的实时错误报告工具,支持 web 前后端、移动应用以及游戏,支持 Python、OC、Java、Go、Node、Django、RoR 等主流编程语言和框架 ,还提供了 GitHub、Slack、Trello 等常见开发工具的集成。Senty是专门用来干异常日志监控的,它的核心就是围绕异常日志来建模和设计的,它有很多的异常日志监控特性,包括智能错误分析,归类汇总,自动分配告警到相关团队等等,这些虽然理论上EL

2022-04-17 16:50:23 1408 3

原创 Netty实战《RPC调用》

1)设计优雅 2)使用方便 3)高性能,吞吐量高,延迟低,减少资源损耗,减少不必要的内存复制 4)安全,完整的ssl/tls 和start TLS支持 5)社区活跃

2022-04-16 23:51:55 2253

原创 Netty实战《原理》

Netty介绍官网说明官网说明 1)netty是由JBOSS提供的一个java开源框架。Netty提供异步的,基于事件驱动的网络应用程序框架,用于快速开发高性能,高可靠的网络IO程序 2)netty可以帮助你快速,简单的开发一个网络应用,相当于简化和流程化NIO的开发流程 3)netty目前最流行的NIO框架,在互联网,大数据分布式计算领域,游戏行业,通信行业等有广泛的应用,知名的Es,Dubbo等框架内部都采用netty c官网说明...

2022-04-16 20:53:44 801 1

原创 传统IO,Reactor ,Proactor 线程服务模型

传统阻塞I/O服务模型工作原理图模型特点1) 采用阻塞IO模式获取数据2) 每个连接都需要独立的线程完成数据输入,业务处理,数据返回问题分析1) 当并发数很大,就会创建大量的线程,占用很大的系统资源2) 连接创建后,如果当前线程暂时没有数据可读,该线程会阻塞在read操作,造成资源的浪费针对传统阻塞 I/O 服务模型的 2 个缺点,解决方案:1)基于 I/O 复用模型:多个连接共用一个阻塞对象,应用程序只需要在一个阻塞对象等待,无需阻塞等待所有连接。当某个连接有新的数据可以处理时,操作系

2022-04-16 20:22:05 1085

原创 NIO和Epoll Bug

最上面的while(true)循环,循环往复,不断的轮询,直到linux系统出现100%的CPU情况,其它执行任务干不了活,最终导致程序崩溃。原因:具体解释为,在部分Linux的2.6的kernel中,poll和epoll对于突然中断的连接socket会对返回的eventSet事件集合置为POLLHUP,也可能是POLLERR,eventSet事件集合发生了变化,这就可能导致Selector会被唤醒。==》这是与操作系统机制有关系的修复:1)将SelectKey去除掉,然后“刷新”一下Select.

2022-04-16 11:29:59 769

原创 NIO与零拷贝

NIO与零拷贝零拷贝基本介绍零拷贝技术实现mmapsendFile优化1sendFile优化2零拷贝基本介绍零拷贝就是一种避免 CPU 将数据从一块存储拷贝到另外一块存储的技术。我们说的零拷贝 是从操作系统来看 因为内核缓冲区之间,没有数据是重复的(只有kernel buffer有一份数据)1)零拷贝技术可以减少数据拷贝和共享总线操作的次数,消除传输数据在存储器之间不必要的中间拷贝次数,从而有效地提高数据传输效率。2)零拷贝技术减少了用户应用程序地址空间和操作系统内核地址空间之间因为上下文切换而带

2022-04-16 11:16:30 253

原创 NIO原理及实战

基本介绍细节描述BIO和NIO比较缓冲区通道细节描述1)Java NIO全称java non-blocking IO ,是指JDK提供的新的API,从JDK1.4开始,Java提供了一系列改进输入/输出的新特性,被统称为NIO,同步非阻塞2)NIO相关的类都放在java.nio包及子包下,并且对原java.io包中很多类进行改写3)NIO有三大核心部分: Channel(通道),Buffer(缓冲区),Selector(选择器)4)NIO是面向缓冲区,或者面向块编程。数据读取到一个它稍后处理的缓

2022-04-14 22:42:31 1247

原创 thrift实战《代码》

简单demo1,编写IDL文件 User.thriftnamespace java thrift.generatedtypedef i16 shorttypedef i32 inttypedef i64 longtypedef bool booleantypedef string Stringstruct User{ 1:optional int id, 2:String name, 3: boolean married;}exception DataE

2022-04-13 15:23:04 2524 2

原创 thrift实战《原理》

Thrift定义Thrift是轻量级,跨语言的RPC框架,主要用于各个服务之间的RPC通信,最初由facebook2007开发,2008年进入Apache开源项目,它通过自身的IDL中间语言,并借助代码生成引擎,生成各种主流语言的RPC服务端,客户端代码,Thrift支持多种不同的编程语言,包括c++,java,python,rubby,erlang,haskell,c#,golang等Thrift架构Thrift 技术栈分层从下向上分别为:传输层,协议层,处理层和服务层传输层(Transport

2022-04-13 14:15:26 826

原创 jprofiler监控docker部署的jvm服务

1,官网下载jprofiler,此处我们选择jprofiler9.2.1版本:https://www.ej-technologies.com/download/jprofiler/version_92Profiler 9.2 注册码[email protected]#23874-hrwpdp1sh1wrn#[email protected]#36573-fdkscp15axjj6#[email protected]#5481-ucjn4a16rvd98#60382

2022-04-13 12:22:32 2440 2

原创 gevent模块安装

pip3 install gevent==1.4.0 -i https://pypi.douban.com/simple注意一定要指定版本 ,默认会安装最新版本

2021-11-08 16:48:21 1333

原创 Clickhouse打包aarch64二进制文件

编译环境: ubuntu系统aarch64Clickhouse版本: ClickHouse-21.9.5.16-stable1 安装Clang-81.1 echo “deb [trusted=yes] http://apt.llvm.org/bionic/ llvm-toolchain-bionic-8 main” | sudo tee /etc/apt/sources.list.d/llvm.list1.2 apt-get update1.3 apt-get install clang-8

2021-11-01 13:54:44 725

原创 Redis 的实践经验

缩短键值对的存储⻓度;在 key 不变的情况下,value 值越⼤操作效率越慢,因为 Redis 对于同⼀种数据类型会使⽤不同的内部编码进⾏存储,⽐如字符串的内部编码就有三种:int(整数编码)、raw(优化内存分配的字符串编码)、embstr(动态字符串编码),这是因为 Redis 的作者是想通过不同编码实现效率和空间的平衡,然⽽数据量越⼤使⽤的内部编码就越复杂,⽽越是复杂的内部编码存储的性能就越低。这还只是写⼊时的速度,当键值对内容较⼤时,还会带来另外⼏个问题:内容越⼤需要的持久化时间就..

2021-10-08 15:25:08 132

原创 sql优化工具

数据库层⾯检查问题常⽤的 12 个⼯具:MySQLmysqladmin:MySQL 客户端,可进⾏管理操作mysqlshow:功能强⼤的查看 shell 命令SHOW [SESSION | GLOBAL] variables:查看数据库参数信息SHOW [SESSION | GLOBAL] STATUS:查看数据库的状态信息information_schema:获取元数据的⽅法SHOW ENGINE INNODB STATUS:Innodb 引擎的所有状态SHOW PROCESSLIST:

2021-10-07 12:39:09 217

原创 sql性能优化经验

一,Sql1,优化limit分⻚反例:1 select id,name,age from employee limit 10000,10正例:1 //⽅案⼀ :返回上次查询的最⼤记录(偏移量)select id,name from employee whereid>10000 limit 10.2 //⽅案⼆:order by + 索引select id,name from employee order by id limit 10000,103 //⽅案三:在业务允许的情况下限制⻚

2021-10-07 12:25:26 100

原创 重构系列-函数

1 短小精悍代码块和缩进if,else,while语句等其中代码块应该只用一行,改行大抵是一个函数调用的语句2 只做一件事要判断函数是否不只做一件事,判断的方法是是否能再拆出一个函数。3 每个函数一个抽象层级函数中的语句都要在同一抽象层级。读程序的时候就像一系列TO起头的段落,每一段都描述当前抽象层级,并引用下一抽象层级后续TO起头段落。4 switch语句上图的问题:太长,出现新的的雇员类型,会变得更长。明显做了不止一件事违反单一职责原则,因为有好几个修改他的理由违反开闭原

2021-09-11 10:39:38 102

原创 重构系列-有意义的命名

1,名副其实。如果名称需要用注释来补充,就不算是名副其实2,避免误导。避免留下隐藏代码本意的错误线索。比如hp,unix,sco等不该做变量名3,做有意义的区分。反例如下getActiveAccount();getActiveAccounts();getActiveAccountInfo();4,使用读的出来的名称。5,使用可搜索名称。 单字母名称或者数字常量很难从一大篇文字找出来。6,避免使用编码。7,类名和对象名应该是名词或者名词短语。8,方法名应当是动词或者动词短语。9,不要

2021-09-11 09:57:21 88

原创 重构系列-整洁代码是什么样的

1,简单代码规则能通过所有的测试没有重复代码体现系统中的全部设计理念包括尽量少的实体,比如类,方法,函数等2,消除重复和提高表达力

2021-09-10 17:44:45 62

原创 java发送 邮件工具类

pom 文件 <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-email</artifactId> <version>1.5</version> </dependency>1,工具类@Datapublic class

2021-08-25 16:30:24 668

原创 常用邮箱服务器(SMTP,POP3)地址

常用邮箱SMTP服务器地址大全     谷歌邮箱(google.com):  POP3服务器地址:pop.gmail.com(SSL启用端口:995)  SMTP服务器地址:smtp.gmail.com(SSL启用端口:587)    新浪邮箱(sina.com):  POP3服务器地址:pop3.sina.com.cn(端口:110)  SMTP服务器地址:smtp.sina.com.cn(端口:25)    Tom邮箱(top.com):  POP3服务器地址:pop.tom.co

2021-08-25 16:14:56 10331

原创 java使用网易邮箱163发送邮件报错

Exception in thread "main" javax.mail.MessagingException: Could not connect to SMTP host: smtp.163.com, port: 25; nested exception is: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? at com.sun.mail.smtp.SMTPTransport.openS.

2021-08-25 16:12:57 562

原创 如何将Python代码打包为可执行文件

1,安装将python代码转换成exe的工具包pyinstall在cmd输入命令pip install pyinstall2,打包在cms输入命令>pyinstaller -F plane_main.py jj --noconsole

2021-08-24 21:58:25 2538

原创 ZookeeperFactoryLocal

Zookeeper工具类zookeeper配置import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component;@Component@ConfigurationProperties(prefix = "zookeeper")public class ZookeeperConfig { /** zookeepe

2021-08-23 08:51:18 89

原创 FileUtils

import org.apache.commons.codec.digest.DigestUtils;import org.apache.commons.lang3.StringUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletResponse

2021-08-22 11:16:24 245

原创 HttpUtil

import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.List;import java.util.Map;import org.apache.http.HttpEntity;import org.apache.http.client.ClientProtocolException;import org.apache.h

2021-08-22 11:15:31 2093

原创 JwtUtil工具类

import io.jsonwebtoken.Claims;import io.jsonwebtoken.JwtBuilder;import io.jsonwebtoken.Jwts;import io.jsonwebtoken.SignatureAlgorithm;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.stereotype.Component;import jav

2021-08-22 11:02:25 3588

thrift客户端rpc调用demo

这里对client进行修改,采用GenericKeyedObjectPool线程池和反射的方式对client进行优化。 场景: 项目中有大量的rpc请求,请求的特点时间长。 解决方案: 使用GenericKeyedObjectPool<Node,T>,T为TServiceClient,简单的说就是一个socket,Node是服务端的节点信息,包含ip和port,线程池中存的是每个服务节点作为key的连接,这样我们可以对控制每个服务端节点调用策略,而且可以有效避免多次创建socket连接。

2022-04-13

docker服务端口映射到宿主机脚本文件

docker服务启动后,当在docker服务中装了其他相应的组件,比如zookeeper,jprofiler等,需要重新映射端口,直接执行一下脚本文件即可 sh mapping_port.sh 容器名:3306 10.50.1.14:3306,执行完成后,我们就可以通过开放的端口直接访问相关的服务

2022-04-13

空空如也

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

TA关注的人

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