加载中
9、Kafka常见问题

1、connection with xxxxx disconnected ERROR o.a.kafka.common.network.Selector - Connection with gdga-hd-kafka-003/68.29.196.30 disconnected 原理是:connections.max.idle.ms参数指...

8、关于Coordinator

参考链接:https://www.jianshu.com/p/f01f5f0309a9 一、旧版本Scala消费者客户端的缺陷 在kafka0.9及以前版本的consumer会在zookeeper上/consumers/groupId/ids、/consumers/groupId/topics...

7、关于KafkaConsumer

一、新旧API的区别 老版本(0.8及以前)Consumer会在zookeeper上记录和管理group信息,一旦consumer挂了,其他所有consumer都会接收到信息,会重新进行rebenlance 新版本(0.9及以上)kafka...

7、redis主从复制和sentinel配置高可用

一:redis主从配置 1、环境准备 master : 192.168.50.10 6179 slave1: 192.168.50.10 6279 slave2: 192.168.50.10 6379 2、redis.conf配置文件配置 master port 6179 requirepass 12345.....

6、消息发布和订阅功能

一:介绍 redis提供了简单的发布订阅功能,producer往某个channel推送,client订阅指定的channel(可以模糊匹配),这样就能够消费。 redis和rabbitmq的区别 可靠性 redis :没有相应的机制保...

5、redis分布式锁

参考链接:https://www.cnblogs.com/linjiqin/p/8003838.html 一:介绍 实现分布式锁有三种方式:1、数据库乐观锁,2、基于redis,3、基于zookeeper。 redis服务端是单线程操作,完美地避免了...

6、清理maven仓库中lastUpdate的jar

一、为什么要清理? 由于网络的原因,如果jar下载不完整就会有一个lastUpdate的后缀,每次使用这个jar的时候,发现已经在本地仓库存在了就不会去远端仓库拉取,但是这个jar是不可用的,所以需...

2018/12/22 10:35
75
11、MapReduce代码技巧总结

1、map的输入是无法控制的,它一行行读取进来 2、但是我们可以将它输入的value进行切割,组装成我们想要的key对象,以方便排序后在传输到reduce。 所以一般我们这么干:把需要排序的字段组装...

2018/10/29 17:15
15
10、Mapreduce的一些场景

1、排序并且求 TOPOne 和TOPN 1、在map端的输出中,将需要排序的字段作为key。那么到达reduce时,相同的key会作为一组排在一起的数据。 注意:如果key是自己组装的javabean,那么这个javabea...

2018/10/29 16:29
15
1、工程构建、打包的一些经验

1、工程结构描述 源工程目录结构: 打包之后的标准部署工程结构: bin: 包含start.sh、stop.sh脚本 sbin:一些供用户打包的bat脚本和shell脚本 config:包含工程配置文件xxx.properties(包括...

21、ThreadLocal

1、介绍 ThreadLocal为多个线程提供数据存储的功能,里面定义了一个map类型的结构,用于保存每个线程对应的数据。如下 由此可见,在它里面就是一个map,把线程各自的数据是分开的,互不干扰的...

20、Semaphore信号量

1、介绍 Synchronized锁针对的是”单值“临界资源,但是对于”多值“的临界资源,比如系统访问并发量为500,这个时候单纯使用Synchronized就需要自己额外判断剩余访问量,比较繁琐。此时可以...

2018/10/03 12:53
2
19、Exchanger线程交换数据

1、介绍 两个线程之间进行数据的共享,有几种方式: 1、redis、kafka等第三方消息系统 2、线程都共同拥有一个list、queue等容器对象 上面这两种都是线程之间,你发送给我,我发送给你,都是一...

2018/10/03 12:51
1
18、CyclicBarrier

1、介绍 CyclicBarrier和CountDownLatch一样,都是为了控制多个线程等待达到某个时间的时候再继续进行后续的任务。 不同点: 1、CountDownLatch不能循环使用,第一次有效,后续的使用都无效了...

2018/10/03 12:49
6
17、CountDownLatch

1、原理 在多线程环境中有时候可能会分为两种情况,一组线程(比如3个)在处理一种业务,另外一组线程(2个)需要等待前面三个线程都完成后才能进行操作,那么此时就需要用到CountDownLatch来...

2018/10/03 12:46
3
16、volatile线程可见关键字

1、原理 volatile关键字的功能是为了让一个线程的修改,立马能够让其他线程可见,如何实现? jvm的线程工作机制 线程工作的内存和堆是分开的,所以线程需要操作堆中的对象是,先需要从堆中c...

2018/10/03 12:40
4
15、Condition(await、signalAll)和object(wait、notifyall)

1、介绍 1、condition: 一般是和锁绑定的,通过lock.newCondition()产生 可以生产多个,分别控制不同的线程角色(生产者和消费者) 2、object: 任何对象都有,一般使用临界资源(queue数组...

2018/10/03 12:36
7
14、Reentrantlock和ReentrantWriteLock、Read锁

1、介绍 为什么有了Synchronized锁,还需要ReentranLock(重入锁)锁? 1、因为synchronized锁导致线程一旦拿不到锁就会一直阻塞,不能通知用户,拿不到锁的情况该如何处理。而ReentrantLock...

2018/10/03 12:23
7
13、synchronized使用方式

1、介绍 Synchronized锁是java内置的一个关键字,重量级锁,一旦锁住,就一直等待 2、代码示例 /** synchronized关键字作为锁的测试 @Author liufu @CreateTime 2018/3/22 14:08 */ public ...

2018/10/03 12:03
2
12、线程池ThreadPool

1、总共有5种线程池: 1、单个线程 ExecutorService pool1 = Executors.newSingleThreadExecutor(); 2、固定数量线程 ExecutorService pool2 = Executors.newFixedThreadPool(2); 3、动态线程...

2018/10/03 11:59
15

没有更多内容

加载失败,请刷新页面

返回顶部
顶部