加载中
深入了解Redis【二】对象及数据结构综述

-- 引言 Redis中每个键值对都是由对象组成: 键总是一个字符串对象(string) 值可以是字符串对象(string)、列表对象(list)、哈希对象(hash)、集合对象(set)、有序集合对象(zset)。...

前天 23:21
13
深入了解Redis【一】源码下载与参考资料准备

引言 一直在使用redis,但是却没有系统的了解过它的底层实现,准备边学习边记录,深入了解redis。 打算分析以下几个方面: redis的基本类型及底层原理与java对比,每种数据类型的使用场景 re...

Java内存模型分析

在学习Java内存模型之前,先了解一下线程通信机制。 1、线程通信机制 在并发编程中,线程之间相互交换信息就是线程通信。目前有两种机制:内存共享与消息传递。 1.1、共享内存 Java采用的就是...

前天 23:09
9
精选PDF版本书籍第一期

福利概述 精选JAVA必读书籍的PDF版本(来源于网络,侵删)。 Effective java 中文版(第2版) Head First 设计模式(中文版) Java并发编程的艺术 Java技术手册(第6版) Java性能权威指南 ...

12/08 22:55
27
关于`ClawHub的技术分享`公众号

生命不息,折腾不止! 该公众号的内容大部分为平时学习积累所整理的笔记,包括但不限于源码、原理、经验等。 如果感兴趣,也可以访问clawhub的博客主站https://clawhub.club...

12/08 22:32
0
深入了解Kafka【五】Partition和消费者的关系

1、消费者与Partition 假设主题T1有四个分区。 1.1、一个消费者组 1.1.1、消费者数量小于分区数量 只有一个消费者时,消费者1将收到4个分区的全部消息。 当有两个消费者时,每个消费者将分别...

12/08 22:00
1
深入了解Kafka【四】消费者的Offset管理

1、Offset Topic Consumer通过提交Offset来记录当前消费的最后位置,以便于消费者发生崩溃或者有新的消费者加入消费者组,而引发的分区再均衡操作,每个消费者可能会分到不同的分区。我测试的...

12/08 21:58
7
深入了解Kafka【三】数据可靠性分析

1、多副本数据同步策略 为了保障Prosucer发送的消息能可靠的发送到指定的Topic,Topic的每个Partition收到消息后,要向Producer发送ACK,如果Produser收到ACK,就会进行下一轮发送,否则重试。...

12/08 21:54
5
LeetCode|371. 两整数之和

题目描述 等级: 简单 不使用运算符 + 和 - ,计算两整数a 、b之和。 示例1: 输入: a = 1, b = 2 输出: 3 示例2: 输入: a = -2, b = 3 输出: 1 思路 对于位运算的考察。 在位运算中,异或操...

Go
12/05 23:19
12
LeetCode|344. 反转字符串

题目描述 等级: 简单 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额...

Go
12/05 23:13
4
LeetCode|350. 两个数组的交集 II

题目描述 等级: 简单 给定两个数组,编写一个函数来计算它们的交集。 示例1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例2: 输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输...

12/05 23:11
5
对于分布式Job的思考

引言 在清理Github的时候,发现以前写的一个简单的分布式任务分发系统ClawHub/task-distribution,使用了zk的选主与队列,调度器使用spring的ThreadPoolTaskScheduler,任务支持cron表达式。 ...

12/05 21:05
14
分布式ID方案SnowFlake雪花算法分析

1、算法 SnowFlake算法生成的数据组成结构如下: 在java中用long类型标识,共64位(每部分用-分开): 0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 0000000000 0...

12/05 20:59
5
并发编程挑战:死锁与上下文切换

引言 上下文切换(有时也称做进程切换或任务切换)是指 CPU 从一个进程或线程切换到另一个进程或线程。上下文切换会影响多线程执行速度。死锁是指多个进程或线程循环等待它方占有的资源而无限...

12/03 17:59
10
LeetCode|412. Fizz Buzz

题目描述 等级: 简单 写一个程序,输出从 1 到 n 数字的字符串表示。 如果 n 是3的倍数,输出“Fizz”; 如果 n 是5的倍数,输出“Buzz”; 如果 n 同时是3和5的倍数,输出 “FizzBuzz”。 ...

12/03 00:22
14
LeetCode|387. 字符串中的第一个唯一字符

题目描述 等级: 简单 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 案例: s = "leetcode" 返回 0. s = "loveleetcode", 返回 2. 注意事项:您可以...

Go
12/03 00:15
10
深入了解Kafka【二】工作流程及文件存储机制

1、Kafka工作流程 Kafka中的消息以Topic进行分类,生产者与消费者都是面向Topic处理数据。 Topic是逻辑上的概念,而Partition是物理上的概念,每个Partition分为多个Segment,每个Segment对应...

12/02 21:30
11
深入了解Kafka【一】概述与基础架构

1、概述 Kafka是一个分布式的、基于发布订阅的消息系统,主要解决应用解耦、异步消息、流量削峰等问题。 2、发布订阅模型 消息生产者将消息发布到Topic中,同时有多个消息消费者订阅该消息,...

分布式ID生成方案汇总

1、目标 1.1、全局唯一 不能出现重复的ID,全局唯一是最基本的要求。 1.2、趋势有序 业务上分页查询需求,排序需求,如果ID直接有序,则不必建立更多的索引,增加查询条件。 而且Mysql InnoD...

深入了解Netty【八】TCP拆包、粘包和解决方案

1、TCP协议传输过程 TCP协议是面向流的协议,是流式的,没有业务上的分段,只会根据当前套接字缓冲区的情况进行拆包或者粘包: 发送端的字节流都会先传入缓冲区,再通过网络传入到接收端的缓...

12/02 21:05
16

没有更多内容

加载失败,请刷新页面

返回顶部
顶部