自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一颗旋转的螺丝钉

天地者,万物之连旅;光阴者,万代之过客。

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

原创 ES实战回顾

ES实战

2024-01-29 12:56:38 423

原创 mybatis-transaction包阅读

transaction包主要功能JdbcTransaction:单独使用Mybatis时,默认的事务管理实现类,就和它的名字一样,它就是我们常说的JDBC事务的极简封装,仅是让connection支持连接池而已ManagedTransaction:含义为托管事务,空壳事务管理器,仅是提醒用户,在其它环境中应用时,把事务托管给其它框架,比如托管给Spring去管理事务核心配置对象中,CachingExecutor执行器就是用来处理二级缓存的执行器。transaction包主要结构transact

2020-07-31 21:44:25 197

原创 mybatis-type包阅读

type包主要功能完成java数据类型与jdbc数据类型的互相转化。type包主要结构type包设计模式模版方法设计模式:我们可以自定义typeHandler,只需要继承BaseTypeHandler重写几个基本的方法即可。TypeReference类源码很经典,各个typeHandler都继承它,TypeReference只有一个成员变量rawType,此字段保存这个TypeHandler对相应的原生java类型Mybatis在启动初始化过程中,会将自带的java类型与用户自定义的ty

2020-07-31 21:38:41 445

原创 mybatis-cache包阅读

cache包主要功能一级缓存:一级本地缓存都是PerpetualCache类型,保存在BaseExecutor执行器,而执行器又在SqlSession中,所以一级缓存的生命周期与SqlSession相同,除非指定一级缓存范围为STATEMENT二级缓存:二级自定义缓存,实现了Cache接口的类都可以作为二级缓存,所以还可配置第三方缓存。二级缓存以namespace名称空间为其唯一标识,被保存在Configuration核心配置对象中,CachingExecutor执行器就是用来处理二级缓存的执行器。

2020-07-29 22:46:57 285

原创 Disruptor

参考文章:https://tech.meituan.com/2016/11/18/disruptor.htmlhttps://www.cnblogs.com/pku-liuqiang/p/8544700.html定义Disruptor@Component@Slf4jpublic class DisruptorUtil { private static int bufferSize ...

2020-05-04 13:11:25 2374

原创 ThreadLocal

1、使用场景当客户端触发请求,需要为之生成唯一的事务id,并且需要将此事务id传递给多个业务方法,dao层方法等等,我们就需要将这个事务id作为参数传递给所有业务方法,代码会产生不必要的冗余,使用ThreadLocal变量设置此事务id,之后无论什么方法都可以从threadlocal访问这个事务id,由于每个请求在tomcat容器中是单独的线程处理,因此事务id对于每个线程都是惟一的;当多个...

2020-05-02 18:21:06 247 1

原创 mybatis-plugin包阅读

plugin包主要功能用户可通过编写插件来自行扩展功能,例如分表功能,通过拦截sql语句,重新拼接sql语句,进行分表。plugin包主要结构可以拦截那些接口对象呢?(也就是上图中的target有哪些呢)如图所示:interceptorChain.pluginAll()方法方法在创建ParameterHandler、ResultSetHandler、StatementHan...

2020-05-02 17:47:17 166

原创 mybatis-executor包阅读

executor包主要功能入口是调用SqlSessionFactoryBuilder,SqlSessionFactoryBuilder再调用builder包(builder包阅读将在后续更新)中的XMLConfigBuilder解析.xml配置文件,从而返回一个SqlSessionFactory,再通过SqlSessionFactory就可以获取到SqlSession了。DefaultSql...

2020-04-07 12:01:05 169

原创 JVM-参数篇

JVM参数类型标配参数:-version;-help等 jdk一出生基本就有的X参数:-Xint(解释执行);-Xcomp(首次使用就编译成本地代码);-mixed(先编译再执行的混合型)XX参数:在日常参数调优中最多使用的,下文我们也主要分析这个类型XX参数XX参数分为两中类型:boolean型kv设值型...

2020-04-03 12:54:29 331

原创 手写自旋锁

自旋锁demo在这里插入代码片

2020-03-28 23:10:49 289

原创 mybatis-binding包阅读

binding包主要功能binding包主要结构binding包设计模式附上一段源码做参考:/** - @author Clinton Begin - BaseBuilder下的每个子类在使用构造器实例化时,必定会调用BaseBuilder的构造方法,这是因为BaseBuilder内部维护着三个属性Configuration,TypeAliasRegistry,Typ...

2020-03-20 17:11:33 148

原创 mybatis-builder包阅读

builder包主要功能builder包的核心功能很简单,就是解析xml配置文件,汇总到session包的一个大杂烩的类Configuration中;核心是三个类:XMLConfigBuilder、XMLMapperBuilder、XMLStatementBuilder分别解析mybatis-config.xml、XXXMapper.xml、XXXMapper.xml中的每一个sql语句;...

2020-03-19 17:50:32 482

原创 多线程闭锁/栅栏/信号量

写一个多线程闭锁的标准demo/** * 自测多线程闭锁 * @param args */ public static void main(String[] args) { ArrayList<String> demoList = Lists.newArrayList(); demoList.add("111...

2020-03-16 23:12:52 144

原创 kafka最佳实践

spring-kafka配置配置类

2020-03-16 18:54:15 256

原创 redis最佳实践

spring-boot整合jedis与redission客户端整合pom文件省略配置文件#redis缓存配置spring.redis.host=127.0.0.1spring.redis.port=6379spring.redis.database=0spring.redis.password=spring.redis.timeout=10000spring.redis.je...

2020-03-16 16:00:57 508

原创 mysql-sql相关

联表查询方式查询例子:------右联结例子------select distinct fang.org_code as entity_id, 'uc_org_code_not8' as type, ${-1d_yyyyMMdd} as day FROM(select distinct org_level8_code from dw.dw_hr_org_da where ...

2020-03-16 15:06:05 554 2

原创 mybatis-session包阅读

session包主要功能session包主要结构session包设计模式

2020-01-25 17:24:35 1334

原创 kafka整体梳理

整体概念图作用是:解耦、削峰、异步处理。brokers、topic、partition的相关信息、监控和路由相关信息使用zk存储。zk在broker中选出一个controller,用于partition分配和leader选举。文件存储简述每新写一条消息,kafka就是在对应的文件append写,将随机写操作改为顺序写,所以性能非常高使用文件系统和操作系统的页缓存分别存储和缓存消...

2019-12-30 11:22:38 205 1

原创 mysql安装

参考:https://www.cnblogs.com/fnlingnzb-learner/p/5830622.htmlhttps://www.cnblogs.com/duanrantao/p/8988116.html机器A的ip地址为ipa,mysql数据库装在机器B上,若想A可以访问mysql需要:进入机器B中mysql数据库的命令行,执行:grant all on . to ‘ro...

2019-06-20 17:03:11 107

原创 cubbo-第一个rpc框架

dubbo源码看不懂,现自己实现一个rpc,名为cubbo,跟dubbo比简直菜的抠脚…不过希望可以为源码学习打下基础:

2019-06-18 00:18:28 151

原创 代理模式

静态代理接口 personpublic interface Person { public void study(); public void keepFit();}实现类 student 实现personpublic class Student implements Person { private String name; public S...

2019-06-17 00:21:37 128

原创 从io到netty

io与线程池优化io:0、io同步、阻塞1、io的客户端与线程数的比是1:1;线程池优化后的io是m:n2、io是面向stream编程,因此一个线程只能等待流处理,因此阻塞nio:0、nio同步、非阻塞1、nio的客户端与线程数比是m:12、nio是面向buffer编程,因此一个线程写或者读缓冲区后就可以做其他事情了,因此非阻塞图解:(这不就是在东北吃烧烤吗?)服务端注册Sele...

2019-06-16 22:07:18 861

原创 zookeeper简单命令与java客户端连接

zk常用命令:进入zk文件夹下:bin/zkCli.sh -server 127.0.0.1:2181 //连接zk服务器进入客户端quit //退出zk客户端bin/zkServer.sh start //启动ZK服务bin/zkServer.sh status //查看ZK服务状态bin/zkServer.sh stop //停止ZK服务bin/zkServer.s...

2019-06-16 20:06:51 105

原创 大佬语录

1、学习上要抓住一个点尽可能学透彻,有了这个把手,才有安全感,才能撕扯成知识面。2、还是要多写,技术学习没有真正的应用场景,那你学的还是很肤浅的。...

2019-05-30 23:05:56 191

原创 SpringBoot整合aop

1、整体流程创建springboot项目,创建controller用作浏览器页面测试,创建两个切面,一个正常切面,一个注解切面。注解切面需要自定义注解。2、实现步骤(0)pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:...

2019-04-29 16:24:30 176

原创 SpringBoot整合Mybatis、druid、Redis

1、 大体流程个人开发机安装redis并启动,https://www.cnblogs.com/codersay/p/4301677.html编写bean以Bomcdata表为例,编写mapper接口以及对应的xml文件,编写service层,编写controller层,配置文件整合druid,整合redis:2、 实现步骤(0)pom文件 yml文件<?xml version="...

2019-04-29 14:52:25 747

原创 SpringBoot整合kafka

1、 安装zk与kafkahttps://blog.csdn.net/hg_harvey/article/details/79174104其中启动消费者命令时 ./kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning 会报错原因是0.90版本之后启动消费者的方法为./kafka-...

2019-04-29 14:23:07 199

原创 git这几个命令就够了

// 项目报错了 可以 git pull origin master (拉下master代码) git pull (先下拉代码) git merge origin/master(再将主分支合进来) git add . (提交代码) git commit -...

2019-04-29 11:20:31 139

原创 常见异常原因

异常:This application has no explicit mapping for /error, so you are seeing this as a fallback.原因1:Application启动类的位置不对.要将Application类放在最外侧,即包含所有子包原因:spring-boot会自动加载启动类所在包下及其子包下的所有组件.原因2:在springboo...

2019-04-29 11:10:42 460

原创 SpringBoot整合Dubbo

1、大体流程按照dubbo官网的四个模块一一创建即可,如下所示:Registry 注册中心使用ZookeeperMonitor 使用dubbo自带的dubbo-admin与dubbo-monitor-simpleProvider 模拟提供一个春节抢票服务Consumer 模拟用户调用抢票服务2、实现步骤(0)官网直接下载这两个包安装分别作为监控中心与注册中心即可。(1)新建一...

2019-04-29 10:32:16 325

原创 SpringBoot单元测试

idea右键GOTO → Test → Creat New Test 出现下面页面选择要测试的方法即可加上相关注解,构造相关参数,运行测试类即可。注意:1、私有方法单元测试首先利用反射获取类信息2、可变参数传入要测试的私有方法,设置可见,调用invok,传入类名与参数值3、@ActiveProfiles(“xxx”) 配置测试环境或其他环境4、extends SpringBaseTe...

2019-04-29 10:15:01 208

原创 连接远程mysql服务器

1、查看navicat中数据库连接信息2、根据信息输入命令ssh [email protected]密码:xxxmysql -h s6622.zeus.mysql.ljnode.com -P 6622 -u alliance_reader -pxxx

2019-04-28 22:38:06 174

原创 mac配置

1、安装item2代替终端2、item2保存远程服务器密码:https://jingyan.baidu.com/article/e4511cf361082c2b845eaf96.html3、编写堡垒机登陆脚本4、设置脚本执行的快捷命令为 sentryLogin:5、安装zsh增加颜色 之后使 .zshrc + .bash_profile 环境变量一起生效的方法:https://bl...

2019-04-28 22:34:26 2243

原创 idea中的一些设置

1、添加RunDashboard在项目下的.idea下的workspace.xml文件中找到 标签,然后添加如下节点<option name="configurationTypes"> <set> <option value="SpringBootApplicationConfigurationType" /> </set>...

2019-04-28 22:29:42 176

原创 常用工具快捷键

idea:command+option+L : 格式化代码command+option+方向键 : 跳转查看位置command+option+v : 自动生成变量定义(.var 更快)command+option+B : 接口快速定义到实现类command+option+方向键 : 查看代码前后跳转command+/ : (取消)单行注释command+shift+/ : (取消)多...

2019-04-28 22:24:28 275

原创 MQ入门

MQ与dubbo的区别dubbo是rpc的集成,同步,注重服务暴露MQ是异步消息,注重可靠性传输为何使用ActiveMQ假设一个场景,一个互联网商城中,后台管理系统要添加一个商品,如何同步到搜索系统的索引库中呢? 方案一:后台管理系统在添加商品的业务逻辑中添加一个同步索引库的业务逻辑。缺点:业务逻辑耦合度高,业务拆分不明确。 方案二:业务逻辑在搜索系统中实现,调用服务在后台管...

2018-09-07 11:02:15 219

原创 全局异常处理

全局异常处理图解创建全局异常处理器public class GlobalExceptionReslover implements HandlerExceptionResolver { //这里用的是slf4j的LoggerFactory,比log4j的更普用,slf4j更底层一些,兼容log4j Logger logger = LoggerFactory.get...

2018-09-06 21:15:20 756

原创 Lucene与Solr学习

Lucene什么是luceneLucene是Apache的一个全文检索引擎工具包,通过lucene可以让程序员快速开发一个全文检索功能。Lucene和搜索引擎不同,Lucene是一个工具包,它不能独立运行,不能单独对外提供服务。搜索引擎可以独立运行对外提供搜索服务。全文检索首先对要搜索的文档进行分词,然后形成索引,通过查询索引来查询文档。全文检索就是先创建索引,然后根据索引来进行搜索的...

2018-09-06 20:08:11 935

原创 dubbo

分布式系统间通信在基于soa(面向服务的体系结构)的架构中,表现层和服务层是不同的工程。如何实现远程通信? 1、Webservice:效率不高基于soap协议。项目中不推荐使用。 2、使用restful形式的服务:http+json。很多项目中应用。如果服务太多,服务之间调用关系混乱,需要治疗服务。 3、使用dubbo:使用rpc协议(Remote Procedure Call远程过程调...

2018-09-06 17:24:34 256

原创 内部排序

直接插入排序最小时间复杂度O(n) 平均时间复杂度O(n^2) 最大时间复杂度O(n^2) 空间复杂度O(1) 稳定 package yanyingnan.baodian.sort;import java.util.Arrays;public class InsertSort1 { public static void insertSort(int...

2018-09-02 21:59:27 229

空空如也

空空如也

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

TA关注的人

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