- 博客(148)
- 资源 (2)
- 收藏
- 关注
原创 Siddhi
Siddhi是一个开源的流处理和复杂事件处理引擎,由WSO2公司开发。它提供了一个强大而灵活的框架,用于处理实时流数据和复杂事件。
2023-07-26 14:32:17
1261
原创 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
1217
原创 Libvirt Java API操作QEMU虚拟机(重启,强制关机,挂起,恢复,详情,关机,注销,快照备份等 )(CentOS)
Libvirt Java API 操作qemu部署虚拟机(CentOS),获取虚拟机列表,重启,强制关机,挂起,恢复,详情,关机,注销,快照备份等虚拟机操作
2022-11-29 14:07:00
2519
2
原创 Mysql知识点
B树和B+树的区别 ,为什么Mysql使用B树?B树特点:节点排序一个节点可以存多个元素,多个元素也排序B+树特点拥有B树特点叶子节点之间有指针非叶子节点的元素再叶子节点冗余,也就是叶子节点存储了所有的元素,并且排好序Mysql索引使用的是B+树,因为索引是用来加快查询,而B+树通过对数据进行排序可以提高查询速度,然后通过一个节点中可以存储多个元素,从而可以使得B+树的高度不会太高,再mysql中一个Innodb页就是一个B+树节点,一个Innodb是如何事项事务的...
2022-05-25 23:02:09
533
原创 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
535
原创 Kafka实战《原理一》
定义传统定义:Kafka是一个分布式的基于发布订阅模式的消息队列,主要用于大数据实时处理领域。最新定义: Kafka是一个开源的分布式事件流平台,主要用于高性能的数据通道,流分析,数据集成和关键任务应用。消息队列应用场景1,异步处理2,系统解耦3,流量削峰4,日志处理5,消息通讯两种模式点对点模式: 消费者主动拉取数据,消息收到后清除消息发布/订阅模式: 可以有个多个topic主题消费者消费数据之后,不删除数据每个消费者独立,都可以消费数据kafka架构1)Pr
2022-05-07 15:59:20
947
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
1692
3
原创 Netty实战《RPC调用》
1)设计优雅 2)使用方便 3)高性能,吞吐量高,延迟低,减少资源损耗,减少不必要的内存复制 4)安全,完整的ssl/tls 和start TLS支持 5)社区活跃
2022-04-16 23:51:55
2336
原创 Netty实战《原理》
Netty介绍官网说明官网说明 1)netty是由JBOSS提供的一个java开源框架。Netty提供异步的,基于事件驱动的网络应用程序框架,用于快速开发高性能,高可靠的网络IO程序 2)netty可以帮助你快速,简单的开发一个网络应用,相当于简化和流程化NIO的开发流程 3)netty目前最流行的NIO框架,在互联网,大数据分布式计算领域,游戏行业,通信行业等有广泛的应用,知名的Es,Dubbo等框架内部都采用netty c官网说明...
2022-04-16 20:53:44
1123
1
原创 传统IO,Reactor ,Proactor 线程服务模型
传统阻塞I/O服务模型工作原理图模型特点1) 采用阻塞IO模式获取数据2) 每个连接都需要独立的线程完成数据输入,业务处理,数据返回问题分析1) 当并发数很大,就会创建大量的线程,占用很大的系统资源2) 连接创建后,如果当前线程暂时没有数据可读,该线程会阻塞在read操作,造成资源的浪费针对传统阻塞 I/O 服务模型的 2 个缺点,解决方案:1)基于 I/O 复用模型:多个连接共用一个阻塞对象,应用程序只需要在一个阻塞对象等待,无需阻塞等待所有连接。当某个连接有新的数据可以处理时,操作系
2022-04-16 20:22:05
1157
原创 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
828
原创 NIO与零拷贝
NIO与零拷贝零拷贝基本介绍零拷贝技术实现mmapsendFile优化1sendFile优化2零拷贝基本介绍零拷贝就是一种避免 CPU 将数据从一块存储拷贝到另外一块存储的技术。我们说的零拷贝 是从操作系统来看 因为内核缓冲区之间,没有数据是重复的(只有kernel buffer有一份数据)1)零拷贝技术可以减少数据拷贝和共享总线操作的次数,消除传输数据在存储器之间不必要的中间拷贝次数,从而有效地提高数据传输效率。2)零拷贝技术减少了用户应用程序地址空间和操作系统内核地址空间之间因为上下文切换而带
2022-04-16 11:16:30
377
原创 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
1576
原创 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
2576
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
1163
原创 jprofiler监控docker部署的jvm服务
1,官网下载jprofiler,此处我们选择jprofiler9.2.1版本:https://www.ej-technologies.com/download/jprofiler/version_92Profiler 9.2 注册码L-Larry_Lau@163.com#23874-hrwpdp1sh1wrn#0620L-Larry_Lau@163.com#36573-fdkscp15axjj6#25257L-Larry_Lau@163.com#5481-ucjn4a16rvd98#60382
2022-04-13 12:22:32
2673
2
原创 gevent模块安装
pip3 install gevent==1.4.0 -i https://pypi.douban.com/simple注意一定要指定版本 ,默认会安装最新版本
2021-11-08 16:48:21
1520
原创 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
906
原创 Redis 的实践经验
缩短键值对的存储⻓度;在 key 不变的情况下,value 值越⼤操作效率越慢,因为 Redis 对于同⼀种数据类型会使⽤不同的内部编码进⾏存储,⽐如字符串的内部编码就有三种:int(整数编码)、raw(优化内存分配的字符串编码)、embstr(动态字符串编码),这是因为 Redis 的作者是想通过不同编码实现效率和空间的平衡,然⽽数据量越⼤使⽤的内部编码就越复杂,⽽越是复杂的内部编码存储的性能就越低。这还只是写⼊时的速度,当键值对内容较⼤时,还会带来另外⼏个问题:内容越⼤需要的持久化时间就..
2021-10-08 15:25:08
198
原创 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
300
原创 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
167
原创 重构系列-函数
1 短小精悍代码块和缩进if,else,while语句等其中代码块应该只用一行,改行大抵是一个函数调用的语句2 只做一件事要判断函数是否不只做一件事,判断的方法是是否能再拆出一个函数。3 每个函数一个抽象层级函数中的语句都要在同一抽象层级。读程序的时候就像一系列TO起头的段落,每一段都描述当前抽象层级,并引用下一抽象层级后续TO起头段落。4 switch语句上图的问题:太长,出现新的的雇员类型,会变得更长。明显做了不止一件事违反单一职责原则,因为有好几个修改他的理由违反开闭原
2021-09-11 10:39:38
146
原创 重构系列-有意义的命名
1,名副其实。如果名称需要用注释来补充,就不算是名副其实2,避免误导。避免留下隐藏代码本意的错误线索。比如hp,unix,sco等不该做变量名3,做有意义的区分。反例如下getActiveAccount();getActiveAccounts();getActiveAccountInfo();4,使用读的出来的名称。5,使用可搜索名称。 单字母名称或者数字常量很难从一大篇文字找出来。6,避免使用编码。7,类名和对象名应该是名词或者名词短语。8,方法名应当是动词或者动词短语。9,不要
2021-09-11 09:57:21
141
原创 重构系列-整洁代码是什么样的
1,简单代码规则能通过所有的测试没有重复代码体现系统中的全部设计理念包括尽量少的实体,比如类,方法,函数等2,消除重复和提高表达力
2021-09-10 17:44:45
86
原创 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
747
原创 常用邮箱服务器(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
11845
原创 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
754
原创 如何将Python代码打包为可执行文件
1,安装将python代码转换成exe的工具包pyinstall在cmd输入命令pip install pyinstall2,打包在cms输入命令>pyinstaller -F plane_main.py jj --noconsole
2021-08-24 21:58:25
2701
原创 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
130
原创 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
389
原创 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
2162
原创 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
3730
thrift客户端rpc调用demo
2022-04-13
docker服务端口映射到宿主机脚本文件
2022-04-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人