自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 资源 (3)
  • 收藏
  • 关注

原创 AQS中lock源码解析

通过源码ReentrantLock的非公平锁的lock方法,解析AQS的实现原理

2023-10-20 01:50:36 306

原创 手写spring-boot-start

spring-boot-start

2022-03-17 11:29:09 2239 1

转载 字符编码的由来

因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是4294967295。由于计算机是美国人发明的,因此,最早只有127个字符被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大

2022-01-04 14:12:14 294

原创 Kafka监控之Kafka-eagle(EFAK)安装问题

kafka的WebUI

2021-12-03 17:42:09 6390

原创 ES入门之CURD-总述

DSL搜索 > 查询所有文档——matchAllQuery > 分页查询 > 提取结果集中的文档 > 词项匹配——termQuery > 根据id精确匹配——termsQuery > 全文检索—— matchQuery > operator > minimum_should_match > 多域检索——multiMatchQuery > boost权重 > 布尔查询——boolQuery &g.

2021-10-11 15:36:42 162

原创 ES入门之CURD-2

1. 为什么ES不将数据存储为二进制文件,而使用JSON格式存储答:ES不仅要存储文档数据,还做对其创建索引2. 三个基本概念 > mapping: 映射,处理数据中每个字段如何存储 > analysis:分析,全文如何被索引到 > Query DSL:ES提供的灵活强大的检索语言 > 提醒:倒排索引检索中间件,匹配规则都是:模糊匹配+source。与Mysql等结构化匹配都不同3. select * > GET /_search : 查询所有的.

2021-10-11 15:34:41 165

原创 ES入门之CURD-1

基本名词解释:> Index  相似于mysql数据库中的database> Type  相似于mysql数据库中的table表,es中能够在Index中创建type(table),经过mapping进行映射。> Document  因为es存储的数据是文档型的,一条数据对应一篇文档即至关于mysql数据库中的一行数据row,一个文档中能够有多个字段也就是mysql数据库一行能够有多列。> Field  es中一个文档中对应的多个列与mysql数据库中每一列对应&.

2021-10-11 15:33:43 212

原创 Netty总述

1. Netty的基础组件:Channel、ChannelHandler、ChannelHandlerContext、ChannelInitializer、ChannelFauture、ChannelOption、EventLoop、EventLoopGroup、ChannelPipeline、ServerBootStrap、BootStrap2. 运行原理3. 解码、编码器:4. 应用之Http服务器:HttpRequestEncoder、HttpResponseDecoder5. .

2021-09-30 10:51:21 72

原创 Excel导出小工具

excel导出一直是一个很枯燥的工作。今天分享一个自己编写的小model,如果大家也觉得方便好用。点个赞呗 >->1. 定义标签@Documented@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)public @interface TableFieldName { String value() default "";}@Documented@Target(ElementType.FIEL

2021-09-24 16:42:52 415

原创 ProtoBuf3.0-1

syntax="proto3";option java_outer_classname="MonitorDataPojo";option java_package="com.rhb.rpc.protobuf.pojo";import public "google/protobuf/timestamp.proto";message MonitorData{ google.protobuf.Timestamp option = 1; int64 longValue = 2; strin.

2021-09-06 15:27:15 145

原创 ES集群搭建

1.设置内核参数:/etc/sysctl.confvm.max_map_count=6553602.设置文件描述符限制: /etc/security/limits.conf* soft nofile 65536* hard nofile 131072* soft nproc 2048* hard nproc 4096&&1和2的配置,可以等到启动时候报错,再修改(可以清晰地知道1、2在处理什么问题)3.es不允许root用户启动,修改用户和分组chown user1.

2021-07-27 15:48:17 3761

原创 ShardingJDBC之分片策略、数据脱敏(4.x)

具体简介就不多逼逼,直接上代码。 private ShardingRuleConfiguration buildShardingRuleConfiguration(){ /** * 配置表规则 */ TableRuleConfiguration orderTableRuleConfiguration = new TableRuleConfiguration("t_order","db${0..2}.t_order_${1..2}"); // 配置分库策略(

2021-07-24 17:09:38 1382

原创 spring cloud alibaba之sentinel

好久没写,老规矩,直接上代码。这里不详细讲解整合过程,相信大家根据官网可以很快的上手。重点说下遇到的坑!yml文件:server: port: 1006spring: application: name: order-server cloud: sentinel: datasource: ds: nacos: username: nacos password: xxx

2021-07-06 18:48:26 185

原创 Mysql常用命令

#查询字段名和注释 select COLUMN_NAME,COLUMN_COMMENT from information_schema.COLUMNS where table_name = '表名' and table_schema = '库名' order by ordinal_position#查询整个内容select * from information_schema.COLUMNS where table_name = '表名' and table_schema = '库名' order ..

2020-12-24 13:46:09 286

转载 lucene之倒排索引【ES】

问题:1.都说倒排索引提升了搜索的速度,那么具体采用了哪些架构或者数据结构来达成这一目标2. ES为什么比Mysql快 Lucene中实际的索引结构图举例详解:ID是文档id,那么建立的索引如下:>name>age>sexPosting List可见为每个 field 都建立了一个倒排索引。Posting list就是一个int的数组,存储了所有符合某个term的文档id。实际上,除此之外还包含:...

2020-10-31 11:00:43 821 1

原创 分布式调度之Quartz

/** * @Author: rhb * @Date: 2020/9/29 19:22 * @Description: quartz核心配置类 */@Configurationpublic class QuartzConfig { @Value("${quartz.driverClassName}") private String driverClassName; @Value("${quartz.url}") private String url; .

2020-09-30 16:14:37 513

原创 Mysql事务:释放当前锁

查看当前运行事务:SELECT a.trx_id, a.trx_state, a.trx_started, a.trx_query, b.ID, b.USER, b.DB, b.COMMAND, b.TIME, b.STATE, b.INFO, c.PROCESSLIST_USER, c.PROCESSLIST_HOST, c.PROCESSLIST_DB, .

2020-09-14 09:30:58 988

原创 Mysql事故:Lock wait timeout exceeded; try restarting transaction

错误描述:[Err] 1205 - Lock wait timeout exceeded; try restarting transaction场景描述:多线程场景下,先删除再更新操作引发的事务锁超时。解决思路:下述是排查所需SQLmysql排查:>查询当前事务select * from information_schema.innodb_trx>查询当前锁SELECT * FROM information_schema.INNODB_LOCKS;>查询当前执行

2020-08-20 20:04:22 1714

原创 Redis之Key值遍历

话不多说,先上码 @Test public void test12(){ Jedis jedis = new Jedis("x.x.x.x", 6379); jedis.auth("xxx"); long start = System.currentTimeMillis(); String cursor = "0"; do { ScanParams scanParams = new

2020-08-06 20:50:13 1208

原创 git提交错误

问题描述:代码拉取报下述错误error: inflate: data stream error (incorrect header check)error: unable to unpack b20beb19fa94654cadb04921063235a4414fec08 headerfatal: cannot read existing object info b20beb19fa94654cadb04921063235a4414fec08fatal: index-pack failed解决

2020-07-21 15:58:42 1048 1

原创 SpringCloud之Zipkin搭建

这几天搭建zipkin,发现自己搭建服务文档都不是全面,官网也推荐使用提供jar包直接启动部署,很多博客也都是jar包启动,或者配合docker搭建,本着自己搭建的想法,立马上手。项目环境:SpringCloud Greewich.SR5版本、JDK1.8、Maven3.6。(其他相关组件也已经搭建投入使用)maven项目主要是pom文件和yml文件的配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http:/

2020-07-17 10:47:29 466

原创 JAVA的SPI

Java SPI 思想分析:1. 当我们的系统里面抽象的各个模块,往往有很多不同的实现方案,比如日志处理模块、xml解析模块、过滤器的模块等,一般我们模块之间是基于接口编程的,模块之间不会对具体实现类进行硬编码。一旦代码里涉及到具体实现类时,就违反了可插拔的原则,如果需要替换一种实现,就需要修改代码。为了实现在模块装配的时候能不在程序里动态指明,这就需要一种服务发现机制。Java SPI 就是提供了这样一种机制:为某个接口寻找服务实现的机制。2. spi规范约定:当服务的提供者,提供了服务接口的

2020-06-19 13:37:29 81

原创 Zk之Curator

基础API:@Slf4jpublic class CuratorBase { //zk服务地址 static final String zk_path = "x.x.x.x:2181"; //会话超时 static final int session_timeout=5000; /** * 创建客户端 * @return */ private static CuratorFramework createClient()

2020-05-11 16:51:58 217

原创 分布式文件存储:FastDFS安装与配置

FastDFS的安装与配置 环境: ubuntu13、nginx12、FastDFS5 相关准备:nginx.tar.gz、FastDFS.tar.gz、fastdfs-nginx-module.tar.gz、libfastcommon.tar.gz 安装常用依赖包 sudo apt install build-essential 安装libfastcommon tar -zxvf libfastcommonV1.0.7.tar.gz

2020-05-09 01:01:45 222

转载 Maven依赖

一:依赖范围Maven在编译项目主代码的时候需要使用一套classpath。其次,在编译和执行测试的时候会使用另外一套classpath。最后,实际运行Maven项目的时候,又会使用一套classpath。所谓的依赖范围就是用来控制依赖与这三种classpath(编译、测试、运行)的关系,Maven有以下几种依赖范围:compile:编译依赖范围。如果没有指定,默认使用该依赖范围。使用...

2020-04-09 23:32:43 250

转载 B-Tree与Hash索引

B-Tree:(数据区+指针区+二分查找)B-tree索引能够加快访问数据的速度,因为存储引擎不再需要经行全表扫描来获取需要的数据,取而代之的是从根节点开始搜索。根节点的槽中存放了指向子节点的指针,存储引擎根据这些指针向下查找。通常比较节点页的值和要查找的值可以找到合适的指针进入下层子节点。B-tree通常意味着所有的值都是按顺序存储的,并且每一个叶子页到根的距离相同。如上图,是一...

2020-04-01 16:20:28 390

原创 权限管理:shiro

图一: shiro整体架构功能图二: shiro架构API实现方式@DependsOn(value="springUtils")@Configurationpublic class ShiroCoreConfig { @Autowired private RedisProperties redisParam; public static final String...

2020-03-17 15:45:56 168

原创 SpringCloud之Hystrix

功能点阐述(编程式、Annotation)创建请求命令(同步执行、异步执行、响应式执行)。 callback回调,也称服务降级(大概率场景:写数据不需要降级,读数据降级处理-指引用户重新请求) 异常处理(异常传播-ignoreException,异常捕获-callback(Param p,Throwable e)) 命令名称、分组以及线程池划分(commandKey、groupKey、t...

2020-03-11 22:30:18 82

原创 @ControllerAdvice深入浅析

最终目的:@ControllerAdvice的使用场景 源码解析-mvc请求中何时触发 源码解析-mvc请求中如何触发,如何调用到@ControllerAdvice定义的处理器。 最主要的: mvc中HandlerInterceptor(拦截器)、RequestparamResolver(请求参数解析器)、ResponseParamConverters(响应参数转换器)、Glob...

2020-03-05 20:33:26 196

原创 Pgsql之触发器使用

使用示例: 需求描述: 当读者状态更新的时候,保存状态更新的时间。 需求场景: 系统开发基本完成,处于维护阶段 思路: 由于系统已经完成,代码层面很难兼顾找寻所有状态修改的地方,即便找到,修改起来也是一件繁琐的事。首先,思考AOP编程(很难进行拦截处理),其次数据库DB层面(决定使用触发器处理)。-- hb.rselect * from lt_dzheinfo orde...

2020-02-27 13:40:03 2326

原创 MVC源码解析之doDispatch执行流程

之前也已经总述过:AOP执行原理、SpringMvc执行流程,但总觉的有些点说的含糊不清,后续就把含糊不清的点,细致的讲解一下。现在先说请求核心处理doDispatch()方法。上图是默认容器启动后IOC装载的:HandlerAdapters和HandlerMapping(有印象,后续用)。protected void doDispatch(HttpServletReq...

2020-01-15 10:25:06 378

原创 HttpClient代理

@Test public void test18(){ CloseableHttpClient client = HttpClients.createDefault(); //*.*.*.*:代理ip HttpHost proxy = new HttpHost("*.*.*.*",9999); RequestConfig config ...

2020-01-14 16:14:34 188

原创 Solr之Facet、Group的使用和区别

facet和group都是用于分组的,facet倾向于统计,group倾向于SQL中group by(有详细的组内数据)。下面两张表是常用的属性列表:Group参数 参数 类型 说明 start 整数 对分组的组进行分页 rows 整数 对分组的组进行分页 sort 排序算法 group on(代码层面是boole...

2020-01-02 15:45:55 495

原创 SolrJ的使用

@Service@Transactionalpublic class SearchServiceImpl implements SearchService { private SolrClient solr_jdbook; @PostConstruct public void init(){ solr_jdbook = new HttpSolrClient.Builder(...

2019-12-30 19:42:23 152

转载 事务之四种隔离级别

数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。而且,在事务的并发操作中可能会出现脏读,不可重复读,幻读。下面通过事例一一阐述它们的概念与联系。Read uncommitted读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据。事例:老板要给程序员发工...

2019-12-26 22:47:03 271

原创 事务总述

事务引入缘由: 并发情况下对数据库的连续操作进行管理。重点目录:事务特性(ACID): 原子性、一致性、隔离型、持久性 事务的隔离级别 事务的传播机制。 @Transactional标签的使用 @Transactional标签不作用@Transaction不起作用解决方法 事务嵌套,项目示例异常: Transaction silently rolled back because...

2019-12-26 17:46:15 134 1

原创 solr7.4-log4j、中文分词

> log4j错误 FileNotFoundException: 修改启动文件: solr-7.4.0\bin\solr.cmd: "file:"替换为"file:///"> 配置中文解析器: 1. 下载添加依赖包至:solr-7.4.0\server\solr-webapp\webapp\WEB-INF\lib下。 2. 创建并存放相关配置文件至: solr-7.4.0...

2019-11-29 17:57:41 151

原创 solr7.4-DIH

常用命令:>命令终止、增量、全量、重新加载DIH配置、查询状态,返回文档创建数,文档删除数等状态信息http://localhost:8389/solr/book/dataimport?command=aborthttp://localhost:8389/solr/book/dataimport?command=delta-importhttp://localhost:8389/s...

2019-11-29 16:24:30 104

原创 Solr基础

1.1 目录结构 /bin 运行文件 /contrib 插件 /dist 相关运行jar包 /docs 相关API文档 /example 配置样例 /licenses 相关证书 /server Solr运行核心文件1.2 常用命令(单节点) solr start -p 8983 启动端口8983的solr服务 solr restart -p 8983 重启...

2019-11-27 17:20:38 188

转载 JVM之双亲委派机制

https://www.cnblogs.com/joemsu/p/9310226.html

2019-10-08 11:52:59 58

solr7.4-ik.rar

solr7.4中文分词器依赖包,classes文件夹放在“solr-7.4.0\server\solr-webapp\webapp\WEB-INF”下,ik-analyzer-solr-6.3.0.jar依赖包放在“solr-7.4.0\server\solr-webapp\webapp\WEB-INF\lib”下

2019-11-29

solr-dataimportscheduler-4.x-7.x.jar

solr7.4DIH定时增量导入依赖包

2019-11-29

jdk1.8API文档

jdk1.8中文文档

2017-08-17

空空如也

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

TA关注的人

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