自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

王谷雨的博客

文章如有错误或者改进之处,欢迎留言讨论。

  • 博客(48)
  • 收藏
  • 关注

原创 ElasticSearch8 - SpringBoot整合ElasticSearch

本文介绍了 SpringBoot 整合 ElasticSearch 的两种方案,但均只是简单提及,更详细的用法需要自行查看官方文档。

2024-03-25 11:43:47 1950 2

原创 ElasticSearch8 - 基本操作

本文记录 ES 的一些基本操作,就是对官方文档的一些整理,按自己的习惯重新排版,凑合着看。

2024-03-20 17:18:47 1263

原创 ElasticSearch8 - 基础概念和映射

本文用大白话讲了 ES 的几个基本概念和映射的操作,旨在让小白能快速了解 ES

2024-03-20 17:17:48 1984

原创 Elasticsearch8 - Docker安装Elasticsearch8.12.2

本文介绍了 elasticsearch 8.12.2 的安装和 ik 分词器的安装

2024-03-20 17:16:59 1230

原创 Electron-builder打包和自动更新

文本主要讲述如何为 electron 打包出来软件配置安装引导和结合 github 的 release 配置自动更新

2023-08-14 16:42:50 3084

原创 Disruptor-源码解读

本文讲了 Disruptor 大体逻辑和源码,当然其高性能的秘诀不止文中描述的那些。还有不同的等待策略,Sequence 中使用Unsafe而不是JDK中的 Atomic 原子类等等。

2023-04-17 10:25:10 368

原创 Disruptor-简单使用

本文介绍了 Disruptor 的简单使用,以及复杂场景下消费者的配置。

2023-04-10 15:45:13 506

原创 图像主题颜色提取(Median cut)

本文介绍了中位切割算法以及在 Leptonica 库中的实现。

2023-03-09 17:08:03 879

原创 半个前端新手入门Electron的过程

本文描述了笔者学习 Electron 并捣鼓出一个小工具的过程。

2023-02-01 10:35:42 303

原创 RabbitMQ个人实践

MQ(Message Queue)就是消息队列,其有点有很多:解耦、异步、削峰等等,本文来聊一下RabbitMQ的一些概念以及使用。

2022-11-24 14:55:04 432

原创 Redisson源码解读-公平锁

本文介绍了Redisson的公平锁,逻辑大体上和普通可重入锁一致,核心在于 lua 脚本,运用了Redis的3种数据类型。

2022-11-08 15:54:01 587

原创 Redisson源码解读-分布式锁

Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。Redisson有一样功能是可重入的分布式锁。本文来讨论一下这个功能的特点以及源码分析。

2022-11-07 15:29:39 903

原创 IDEA远程部署项目到Docker

本文介绍了两种远程部署Docker的方法,一种需要用到IDEA,一种只需要用到Maven。

2022-09-23 10:00:01 482

原创 Dubbo源码(九) - 服务调用过程

Dubbo 服务调用过程比较复杂,包含众多步骤,比如发送请求、编解码、服务降级、过滤器链处理、序列化、线程派发以及响应请求等步骤。

2022-09-01 09:46:58 830

原创 Dubbo源码(八) - 负载均衡

负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行。

2022-08-16 13:50:09 361

原创 Dubbo源码(七) - 集群

在Dubbo中,为了避免单点故障,同一个服务允许有多个服务提供者,也允许同时连接多个注册中心。那么,服务消费者引用服务时,该请求哪个注册中心的服务提供者以及调用失败之后该如何处理呢?这些就是Dubbo集群所做的事。......

2022-08-10 13:59:00 729

原创 Dubbo源码(六) - 服务路由

Dubbo的路由,就是根据规则,规定了哪些服务消费者可调用哪些服务提供者。核心就是筛选invoker

2022-08-06 11:00:03 215

原创 Dubbo源码(五) - 服务目录

服务目录中存储了一些和服务提供者有关的信息,通过服务目录,服务消费者可获取到服务提供者的信息,比如 ip、端口、服务协议等。

2022-07-29 11:49:04 262

原创 Dubbo源码(四) - 服务引用(消费者)

本文讲述了Dubbo服务导出的过程,也就是创建服务接口代理对象的过程。其中服务调用、集群、负载均衡等部分并未描述,可以期待后续文章

2022-07-27 14:15:38 222

原创 Dubbo源码(三) - 服务导出(生产者)

在了解了Dubbo SPI后,我们来了解下Dubbo服务导出的过程。

2022-07-25 11:34:24 213

原创 Dubbo源码(二) - SPI源码

Dubbo SPI机制涉及到Dubbo源码的方方面面,需要优先掌握才好开始阅读其他部分的源码。

2022-07-20 17:29:48 132

原创 Dubbo源码(一) - SPI使用

SPI全称为(ServiceProviderInterface),是一种服务提供发现机制。可以将服务接口与服务实现分离以达到解耦可拔插、大大提升了程序可扩展性。一个接口有多个实现类,具体使用哪个实现类,通过SPI机制让用户来决定。也就是,定好规范,实现允许百花齐放。...

2022-07-19 16:38:42 253

原创 Sharding-jdbc + Seata + Nacos整合

Sharding-jdbc、Seata、Nacos整合

2022-07-08 13:42:56 767

原创 Sharding-jdbc 5.1.2案例

sharding-jdbc案例,版本5.1.2springboot + mybatis-plus + sharding-jdbc

2022-07-07 11:35:50 595

原创 Seata-初体验以及避坑

Nacos + Seata的使用初体验

2022-07-04 18:31:25 829

原创 Netty-如何写一个Http服务器

最近在学习Netty框架,发现Netty是支持Http协议的。加上以前看过Spring-MVC的源码,就想着二者能不能结合一下,整一个简易的web框架(PS:其实不是整,是抄)

2022-06-21 15:03:59 206

原创 Netty源码解读(四)-读写数据

当客户端连接服务端,会触发服务端的ACCEPT事件,创建负责READ事件的channel并注册到workerGroup中

2022-06-16 11:38:02 447

原创 Netty源码解读(三)-NioEventLoop

我们在Netty第二篇文章中的代码中,看到有多次用到eventLoop.execute()方法,这个方法就是EventLoop开启线程执行任务的关键

2022-06-16 11:31:45 130

原创 Netty源码解读(二)-服务端源码讲解

我们先看看如何写一个简单的Echo案例,后续的源码讲解都基于此案例。

2022-06-16 11:24:50 275

原创 Netty源码解读(一)-前置准备

- Java NIO:了解BIO和NIO的区别以及Java NIO基础API的使用- Reactor模型:Netty是基于Netty模型对Java NIO封装的框架- Netty的基本使用:先学会基本使用再看源码,这样可以带着看源码,事半功倍(这个api为啥这么样设计,这个对象又是在什么时候生成的巴拉巴拉).........

2022-06-16 11:08:22 91

原创 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 398

原创 Mybatis源码解读-插件

插件允许对Mybatis的四大对象(Executor、ParameterHandler、ResultSetHandler、StatementHandler)进行拦截问题Mybatis插件的注册顺序与调用顺序的关系?使用在讲源码之前,先看看如何自定义插件。https://github.com/xiaoguyu/mybatis-demo,官方文档创建插件类自定义插件类需要实现Interceptor// 注解配置需要拦截的类以及方法@Intercepts({ @Signatu

2022-05-15 16:49:49 133

原创 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 237

原创 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 162

原创 SpringMvc源码解读笔记

工作机制中分三部来分析springmvc的源代码ApplicationContext初始化时建立所有url和controller类的对应关系(用Map保存)根据请求url找到对应的controller,并从controller中找到处理请求的方法request参数绑定到方法的形参,执行方法处理请求,并返回结果视图ApplicationContext初始化时建立所有url和controller类的对应关系(用Map保存)Sptingboot中的调用链RequestMappingHandlerM

2022-05-15 10:02:56 168

原创 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 950

原创 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 268

原创 从零开始在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 272

原创 从零开始在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 571

原创 《数据密集型应用系统设计》读书笔记

个人读书笔记,有些地方用词不够严谨(欢迎评论指正),见谅。书籍链接笔记是个人理解,与书籍可能有偏差,建议看书。问题:什么样的数据适合图数据库?社交关系?网页数据?地图数据?mysql有没有事务重试?更新数据时,是按行更新还是按页更新?更新数据时,是采用copy on write还是直接修改?第一部分 数据系统的基石第一章:可靠性、可扩展性、可维护性可靠性硬件故障:机房断电、硬盘崩溃等软件错误:数据库异常、缓存异常等认为错误:业务bug、运维失误等允许部分服

2022-05-13 17:57:55 468

空空如也

空空如也

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

TA关注的人

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