自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

翻身咸鱼的博客

知行合一

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

原创 ThreadLocal原理简单版

首先,简单的讲解一下。1、每个线程里面有一个ThreadLocalMap,他存的键就是一个ThreadLocal对象,值是用户设置进去的。2、ThreadLocal每次get、set都会拿出当前线程的ThreadLocalMap对象。3、但是ThreadLocalMap又是ThreadLocal里面的一个内部类。 所以,我再补充一下第二点,ThreadLocal每次get,都是...

2018-07-31 12:24:36 591

原创 netty设计模式-观察者模式

这个模式可以说在java的源码里面应用很广泛了,各种addListener,future这些,最终都是观察者模式的体现。1、观察者和被观察者2、观察者订阅消息,被观察者发布消息3、订阅则能收到,取消订阅收不到首先我们看看观察者模式的一个生活中的例子。 /** * 被观察者 */ public interface Observerable {...

2018-07-26 22:30:47 2137

转载 mybatis报Error updating database. Cause: java.lang.IllegalArgumentException: invalid comparison: java

mybatis 3.3.0中对于时间参数进行比较时的一个bug. 如果拿传入的时间类型参数与空字符串‘‘进行对比判断则会引发异常. 所以在上面的代码中去该该判断, 只保留非空判断就正常了<if test="createTime != null and createTime !=‘‘ " >   date(create_time) = date(#{createTime,jdbc...

2018-07-26 15:23:30 5602

原创 Kafka error deserializing key/value for partition

Kafka error deserializing key/value for partition写了一个kafka测试的demo出现了如下错误:这是我kafka的配置: 这是我接收的配置:之前我用别的topic测试了没有问题,换了一个topic出现这个问题,问题的原因在于这个topic序列化的参数改变了,IntegerDeserializer的长度不是4,所以...

2018-07-25 14:59:33 8076

原创 netty设计模式-装饰器模式

装饰器模式被大量地使用在各种框架的源码里面,真正学会了对看源码和设计软件受益匪浅。1、装饰者和被装饰者继承同一个接口2、装饰者给被装饰者动态修改行为 首先我们一生活中的例子来看一看装饰器模式:/** * @see io.netty.buffer.WrappedByteBuf; * @see io.netty.buffer.UnreleasableByteBuf * @s...

2018-07-22 18:00:04 1558

原创 netty设计模式-策略模式

策略模式的特点大致如下:1、封装一系列可替换的算法家族2、支持动态选择某一个策略 常见的策略模式实现方式/** * @see DefaultEventExecutorChooserFactory#newChooser(EventExecutor[]) */public class Strategy { private Cache cacheMemory = ne...

2018-07-22 17:58:29 1809

原创 netty设计模式-单例模式

单例模式是最常见的设计模式:1、忽略反射的影响,全局只有一个实例2、有可能会出现延迟创建实例对象,要使用的时候才创建3、这种设计模式能够避免线程安全问题 最常见的单例模式实现方法:懒汉模式(单例对象 volatile + 双重检测机制 -> 禁止指令重排)public class SingletonExample5 { // 私有构造函数 priv...

2018-07-22 17:53:10 2570 3

原创 netty的设计模式

如果要阅读源码,首先就要学会基本的设计模式。设计模式是前人总结出来的软件设计方法,有利于使代码更加简洁优雅。了解了netty的设计模式,再去看源码,会有一种焕然大悟的感觉。一、单例模式单例模式是最常见的设计模式:1、忽略反射的影响,全局只有一个实例2、有可能会出现延迟创建实例对象,要使用的时候才创建3、这种设计模式能够避免线程安全问题netty单例模式分析详情二、策...

2018-07-22 15:58:32 4657 1

原创 netty基本组件

今天起,我开始写netty的博客,首先从基本组件开始:一、NioEventLoop相当于线程,可以处理连接请求和逻辑处理二、Channel接收数据的管道,相当于socket三、ByteBuf数据传输的基本单元四、ChannelHandler处理业务逻辑的单元五、ChannelPipeline处理请求的管道多个ChannelHandler可以组成一个Cha...

2018-07-21 19:15:21 925

原创 mongodb慢查询

最近mysql同步到mongodb很慢,开始排查问题。首先想到的是mongodb的问题,那么就要找出它的慢查询日志,证明是mongodb的问题一、用那个绿色的工具,robomongo打开,对着某个需要的数据库打开shell(右键open shell),(一定要这样,否者会查到或者设置到别的数据库,导致一直没看到数据)二、mongodb有profiling三个级别:0:关闭,...

2018-07-18 12:01:21 2594

原创 redis java 客户端服务器最佳实践

本文带大家入门市场上最佳的redis实践方案,redisson+codis。一、为什么要使用redisson这里介绍的是redis客户端方面的。对于java客户端,现在市面上有jedis,jedis是redis官方推荐的,支持redisCluster、shardJedis、redis sentienl等多种功能。功能比较齐全。虽然都支持,但是redisCluster、redis sentienl都...

2018-07-14 17:09:32 4127 1

原创 mybatis时间格式出现.0

使用mybatis的时候,总是会遇到后面多一个.0的情况,这种情况使用mysql的时间格式化函数就可以了,例子:DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%S') createTime  %M 月名字(January……December) %W 星期名字(Sunday……Saturday) %D 有英语前缀的月份的日期(1st, 2nd, ...

2018-07-11 14:49:04 8905 3

原创 Jenkins sudo:抱歉,您必须拥有一个终端来执行 sudo

jenkins用户启动脚本的时候,如果不是root,sudo执行命令的时候需要输入密码,但是没有终端输入sudo,所以会报一下错误:抱歉,您必须拥有一个终端来执行 sudo可能是因为sudo没办法输入密码,实际上并不是(实际上是因为,sudo需要终端来执行,正如字面上所说的)那么第一个思路就是免密使用sudo了,假设我使用jenkins的账户是xdq,那么我用root账户 修改/etc...

2018-07-10 13:09:53 3760 2

原创 redis主从复制原理和介绍

一、单机的问题:1、机器故障:导致redis不可用2、容量瓶颈:容量不能水平扩展3、OPS瓶颈:一台机器的网络带宽总是有限的,如果能够分配到多台机器,可以有效解决QPS问题二、主从复制的作用1、数据副本:多一份数据副本,保证redis高可用2、扩展性能:如容量、QPS等三、主从复制特点1、一个master可以有多个slave2、一个slave只能有一个master3、数据流向是单向的,master...

2018-07-08 15:40:20 9344

原创 java学习杂记

1、SimpleDateFormat 是线程不安全的,所以做一个Dateutils,单例模式获取它

2018-07-06 20:58:13 926

原创 kafka应用之路

  1、在技术选型上,为什么要使用kafka,不使用rocketmq?kafka是分布式日志存储系统2、介绍kafka3、kafka安装4、kafka使用(kafka的实践)

2018-07-06 20:56:13 1522

原创 idea快捷键

1、try catch快捷键选中块---->ctrl+alt+t2、全局查找快捷键一般是ctrl+shift+f如果这个快捷键被使用了,那就在edit-->find-->find in path3、alt+数字,按一按有惊喜:alt+1,alt+2,alt+4,alt+5,alt+6,alt+74、另外一种查找ctrl+shift+a5、查找最...

2018-07-06 20:53:07 1083

原创 ADSL实现爬虫代理更新

众所周知,做爬虫的时候,需要不停地切换ip。有以下几种方案: 1、网上爬免费的ip,这个方法行不通,因为这些ip很多有期限,几分钟就没有了,而且大部分不可用。2、买一些第三方代理,例如阿布云。但是阿布云很多人用多了,ip也逐渐被污染,例如我们爬工商总局的数据,就很多ip不能用了。3、买adsl代理服务器。某宝买。什么是adsl服务器?通俗的来说,就是每次拨号,都会重新分配一个i...

2018-07-06 20:32:24 2391

原创 storm 学习杂记

1、在本地环境里面,相同的topology可以重复提交,到了生产环境就不行

2018-07-06 20:10:10 978

原创 maven学习杂记

1、maven打包方法

2018-07-06 20:08:40 829

原创 max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

elasticsearch把network.host:0.0.0.0加上之后启动会报这个错max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]意思是elasticsearch用户拥有的客串建文件描述的权限太低,知道需要65536个解决:切换到root用户下面,vi...

2018-07-06 10:35:09 3812

原创 elasticsearch-head 无法连接elasticsearch的原因和解决

首先确定的是,elasticsearch-head启动无误,elasticsearch启动无误。点击连接elasticsearch出现这个问题:提示未连接作为一个web开发,通常会查看请求是否出错,关键是请求没有出错,就是没有返回值:然后再浏览器打开,有返回结果: 留意了一下请求,居然是options请求:在postman里面用options请求果然...

2018-07-06 09:56:34 52944 16

原创 elasticsearch which: no java in (/sbin:/bin:/usr/sbin:/usr/bin) Could not find any executable java

which: no java in (/sbin:/bin:/usr/sbin:/usr/bin)Could not find any executable java binary. Please install java in your PATH or set JAVA_HOMEelasticsearch 必须要要用非root用户启动,所以新建了一个elasticsearch用户才能启动,(默认...

2018-07-05 16:11:37 9589 3

转载 mysql性能优化,索引原理

数据库永远是应用最关键的一环,同时越到高并发阶段,数据库往往成为瓶颈,如果数据库表和索引不在一开始就进行良好的设计,则后期数据库横向扩展,分库分表都会遇到困难。对于互联网公司来讲,一般都会使用Mysql数据库。一、数据库的总体架构我们首先来看Mysql数据的总体架构如下:这是一张非常经典的Mysql的系统架构图,通过这个图可以看出Mysql各个部分的功能。当客户端连接数据库的时候,首先面对的是连接...

2018-07-04 12:20:00 617

原创 configure: error: you must configure in a separate build directory

安装glibc的时候,出现了这个问题。这是一个奇葩问题,暂时不知道为什么。解决办法:退出到上层目录:可以了

2018-07-02 09:42:42 15697

空空如也

空空如也

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

TA关注的人

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