- 博客(48)
- 收藏
- 关注
原创 ElasticSearch8 - SpringBoot整合ElasticSearch
本文介绍了 SpringBoot 整合 ElasticSearch 的两种方案,但均只是简单提及,更详细的用法需要自行查看官方文档。
2024-03-25 11:43:47
3955
2
原创 Elasticsearch8 - Docker安装Elasticsearch8.12.2
本文介绍了 elasticsearch 8.12.2 的安装和 ik 分词器的安装
2024-03-20 17:16:59
1493
原创 Electron-builder打包和自动更新
文本主要讲述如何为 electron 打包出来软件配置安装引导和结合 github 的 release 配置自动更新
2023-08-14 16:42:50
3348
原创 Disruptor-源码解读
本文讲了 Disruptor 大体逻辑和源码,当然其高性能的秘诀不止文中描述的那些。还有不同的等待策略,Sequence 中使用Unsafe而不是JDK中的 Atomic 原子类等等。
2023-04-17 10:25:10
517
原创 RabbitMQ个人实践
MQ(Message Queue)就是消息队列,其有点有很多:解耦、异步、削峰等等,本文来聊一下RabbitMQ的一些概念以及使用。
2022-11-24 14:55:04
481
原创 Redisson源码解读-公平锁
本文介绍了Redisson的公平锁,逻辑大体上和普通可重入锁一致,核心在于 lua 脚本,运用了Redis的3种数据类型。
2022-11-08 15:54:01
745
原创 Redisson源码解读-分布式锁
Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。Redisson有一样功能是可重入的分布式锁。本文来讨论一下这个功能的特点以及源码分析。
2022-11-07 15:29:39
976
原创 Dubbo源码(九) - 服务调用过程
Dubbo 服务调用过程比较复杂,包含众多步骤,比如发送请求、编解码、服务降级、过滤器链处理、序列化、线程派发以及响应请求等步骤。
2022-09-01 09:46:58
923
原创 Dubbo源码(八) - 负载均衡
负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行。
2022-08-16 13:50:09
411
原创 Dubbo源码(七) - 集群
在Dubbo中,为了避免单点故障,同一个服务允许有多个服务提供者,也允许同时连接多个注册中心。那么,服务消费者引用服务时,该请求哪个注册中心的服务提供者以及调用失败之后该如何处理呢?这些就是Dubbo集群所做的事。......
2022-08-10 13:59:00
793
原创 Dubbo源码(五) - 服务目录
服务目录中存储了一些和服务提供者有关的信息,通过服务目录,服务消费者可获取到服务提供者的信息,比如 ip、端口、服务协议等。
2022-07-29 11:49:04
314
原创 Dubbo源码(四) - 服务引用(消费者)
本文讲述了Dubbo服务导出的过程,也就是创建服务接口代理对象的过程。其中服务调用、集群、负载均衡等部分并未描述,可以期待后续文章
2022-07-27 14:15:38
269
原创 Dubbo源码(一) - SPI使用
SPI全称为(ServiceProviderInterface),是一种服务提供发现机制。可以将服务接口与服务实现分离以达到解耦可拔插、大大提升了程序可扩展性。一个接口有多个实现类,具体使用哪个实现类,通过SPI机制让用户来决定。也就是,定好规范,实现允许百花齐放。...
2022-07-19 16:38:42
308
原创 Sharding-jdbc 5.1.2案例
sharding-jdbc案例,版本5.1.2springboot + mybatis-plus + sharding-jdbc
2022-07-07 11:35:50
674
原创 Netty-如何写一个Http服务器
最近在学习Netty框架,发现Netty是支持Http协议的。加上以前看过Spring-MVC的源码,就想着二者能不能结合一下,整一个简易的web框架(PS:其实不是整,是抄)
2022-06-21 15:03:59
254
原创 Netty源码解读(四)-读写数据
当客户端连接服务端,会触发服务端的ACCEPT事件,创建负责READ事件的channel并注册到workerGroup中
2022-06-16 11:38:02
522
原创 Netty源码解读(三)-NioEventLoop
我们在Netty第二篇文章中的代码中,看到有多次用到eventLoop.execute()方法,这个方法就是EventLoop开启线程执行任务的关键
2022-06-16 11:31:45
181
原创 Netty源码解读(一)-前置准备
- Java NIO:了解BIO和NIO的区别以及Java NIO基础API的使用- Reactor模型:Netty是基于Netty模型对Java NIO封装的框架- Netty的基本使用:先学会基本使用再看源码,这样可以带着看源码,事半功倍(这个api为啥这么样设计,这个对象又是在什么时候生成的巴拉巴拉).........
2022-06-16 11:08:22
115
原创 Mybatis源码解读-SpringBoot中配置加载和Mapper的生成
本文mybatis-spring-boot探讨在springboot工程中mybatis相关对象的注册与加载。建议先了解mybatis在spring中的使用和springboot自动装载机制,再看此文章。传送门:Mybatis源码解读-配置加载和Mapper的生成问题@MapperScan和@Mapper能一起用吗?使用创建工程不再赘述,参考demo编写MapperMapper的注册有两种方式:在Mapper添加@Mapper注解在Application类添加@MapperSc
2022-05-16 16:48:04
445
原创 Mybatis源码解读-插件
插件允许对Mybatis的四大对象(Executor、ParameterHandler、ResultSetHandler、StatementHandler)进行拦截问题Mybatis插件的注册顺序与调用顺序的关系?使用在讲源码之前,先看看如何自定义插件。https://github.com/xiaoguyu/mybatis-demo,官方文档创建插件类自定义插件类需要实现Interceptor// 注解配置需要拦截的类以及方法@Intercepts({ @Signatu
2022-05-15 16:49:49
155
原创 Mybatis源码解读-配置加载和Mapper的生成
问题Mybatis四大对象的创建顺序?Mybatis插件的执行顺序?工程创建环境:Mybatis(3.5.9)mybatis-demo,参考官方文档简单示例这里只放出main方法的示例,其余类请看demo工程。public static void main(String[] args) throws Exception { // 配置文件路径 String resource = "mybatis-config.xml"; InputStream inputStre
2022-05-15 10:05:18
272
原创 DelayQueue达到定时触发效果
DelayQueue的特点就是插入Queue中的数据可以按照自定义的delay时间进行排序。只有delay时间小于0的元素才能够被取出。这样子,只要开启一个线程循环从DelayQueue中取值执行,就可以达到想要的效果定义执行的任务类public abstract class Task implements Delayed, Runnable{ private String id = ""; private long start = 0; /** * @par
2022-05-15 10:03:32
217
原创 SpringMvc源码解读笔记
工作机制中分三部来分析springmvc的源代码ApplicationContext初始化时建立所有url和controller类的对应关系(用Map保存)根据请求url找到对应的controller,并从controller中找到处理请求的方法request参数绑定到方法的形参,执行方法处理请求,并返回结果视图ApplicationContext初始化时建立所有url和controller类的对应关系(用Map保存)Sptingboot中的调用链RequestMappingHandlerM
2022-05-15 10:02:56
217
原创 Netty-ProtobufVarint32
效果ProtobufVarint32LengthFieldPrepender编码器用于在数据最前面添加Varint32,表示数据长度ProtobufVarint32FrameDecoder是相对应的解码器Varint32讲编码器之前,先来讲讲什么是VarInt32(vary int 32),即:可变长的int在java里,int的长度固定为 4 byte,即 32 bits,最高位为符号位。而Varint32则不固定长度,最小 1 byte,最大 5 byte,每个byte的最高
2022-05-15 10:02:03
1119
原创 Mysql性能调优-工具篇
EXPLAIN首先祭出官方文档(这是5.7的,请自行选择版本):Understanding the Query Execution Plan英文不想看,就看这篇吧:全网最全 | MySQL EXPLAIN 完全解读PROFILINGPROFILING在未来版本会废弃,不建议使用。官方文档:SHOW PROFILE Statement官方推荐的替代方式:Query Profiling Using Performance Schema如果安装了navicat(版本15,其他版本没测试),直接
2022-05-15 10:01:14
343
原创 从零开始在centos搭建博客(二)
本篇为备份篇。因为装的东西不多,所以需要备份的只有mysql和wordpress的文件夹。备份mysqlmysql备份命令使用mysqldump命令,格式如下:# 这是格式mysqldump -u${username} -p${dbrootpwd} --databases ${DBname} > ${DumpFile}# 这是例子mysqldump -uroot -proot --databases wordpress > /home/backup.sql使用${}代表的
2022-05-13 17:59:37
320
原创 从零开始在centos搭建博客(一)
本篇为安装篇。基于centos 7.9,大部分东西使用docker安装。软件列表:docker + mysql + wordpress安装dockeryum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repoyum list docker-ce --showduplica
2022-05-13 17:58:37
639
原创 《数据密集型应用系统设计》读书笔记
个人读书笔记,有些地方用词不够严谨(欢迎评论指正),见谅。书籍链接笔记是个人理解,与书籍可能有偏差,建议看书。问题:什么样的数据适合图数据库?社交关系?网页数据?地图数据?mysql有没有事务重试?更新数据时,是按行更新还是按页更新?更新数据时,是采用copy on write还是直接修改?第一部分 数据系统的基石第一章:可靠性、可扩展性、可维护性可靠性硬件故障:机房断电、硬盘崩溃等软件错误:数据库异常、缓存异常等认为错误:业务bug、运维失误等允许部分服
2022-05-13 17:57:55
525
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人