Perkins4j2的技术博客

一个人,一根烧火棍,面对整个世界.


  • 首页

  • 标签91

  • 分类8

  • 归档123

  • 搜索

Protobuf和JSON

发表于 2019-11-29 | 分类于 架构
本文字数: 1.6k | 阅读时长 ≈ 1 分钟

Protobuf

Protobuf是用于允许对结构化数据进行序列化和反序列化。Google开发它的目的是提供一种比XML更好的方法来使系统进行通信。因此,他们专注于使其比XML更简单,更小,更快和更可维护,甚至以更好的性能,更好的可维护性和更小的大小超过了JSON。

阅读全文 »

Canal及MQ顺序性

发表于 2019-11-29 | 分类于 架构
本文字数: 1.6k | 阅读时长 ≈ 1 分钟

顺序性

Binlog本身是有序的,写入到mq之后需要保障顺序。

方案

Canal目前选择支持Kafka/Rocketmq,本质上都是基于本地文件的方式来支持了分区级的顺序消息的能力。

阅读全文 »

散列算法

发表于 2019-11-18 | 分类于 工具利器
本文字数: 1.2k | 阅读时长 ≈ 1 分钟

何为散列

散列(Hash)也称为哈希,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,这个输出值就是散列值。

散列算法的宗旨就是:构造冲突较低的散列地址,保证散列表中数据的离散度。

阅读全文 »

Kafka消费配置

发表于 2019-11-18 | 分类于 架构
本文字数: 3.9k | 阅读时长 ≈ 4 分钟

offset

在Kafka中无论是producer往topic中写数据,还是consumer从topic中读数据,都避免不了和offset打交道,关于offset主要有以下几个概念。

Last Committed Offset

  • consumer group最新一次 commit 的 offset,表示这个 group 已经把 Last Committed Offset 之前的数据都消费成功了。
    阅读全文 »

Consumer手动提交Kafka偏移量和Rebalance

发表于 2019-11-18 | 分类于 架构
本文字数: 6.4k | 阅读时长 ≈ 6 分钟

再均衡是指分区的所属权从一个消费者转移到另一个消费者的行为,再均衡期间,消费组内的消费组无法读取消息。

消费者需要自己保留一个offset,从kafka 获取消息时,只拉去当前offset以后的消息。

阅读全文 »

二进制按位与&及求余数

发表于 2019-11-18 | 分类于 工具利器
本文字数: 1k | 阅读时长 ≈ 1 分钟

按位与&

移位

运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1;

在移位运算中我们可知,计算机中的数据都是0和1的序列,当我们把某个数字左移一位,该数字会扩大为原来的2倍;而将其右移一位时,该数字就会缩小为原来的1/2,即相当于对该数字做了一次被2整除的运算。

举例说明:

11的二进制是1011,如果右移一位的话,将变成0101,也就是5。

现在我们考虑11除以8的余数,很显然是3;因为8是2的3次幂,求余时相当于除以2的3次幂,也就是把1011右移3位,该过程会把1011的低3位011给移走,事实上,这个被移走的011就是11除以8的余数!

阅读全文 »

Snowflake根据设备生成15位ID

发表于 2019-11-18 | 分类于 工具利器
本文字数: 6.8k | 阅读时长 ≈ 6 分钟

Snowflake

snowflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID。

其核心思想是,生成64位即一个long类型的递增序列Id,保障有序及不重复,具体如下:

  • 使用41bit作为毫秒数,
  • 10bit作为机器的ID,5个bit是数据中心,5个bit的机器ID
  • 12bit作为毫秒内的流水号,意味着每个节点在每毫秒可以产生 4096个ID
  • 最后还有一个符号位,永远是0
    阅读全文 »

Git操作

发表于 2019-11-18 | 更新于 2019-11-29 | 分类于 工具利器
本文字数: 989 | 阅读时长 ≈ 1 分钟

分支

创建分支

git branch <branch-name>
如git branch testing

切换分支

从当前所处的分支切换到其他分支
git checkout <branch-name>
如git checkout testing;

阅读全文 »

Canal日志增量订阅和消费

发表于 2019-11-18 | 更新于 2019-11-19 | 分类于 架构
本文字数: 4.3k | 阅读时长 ≈ 4 分钟

基于日志增量订阅和消费的业务

  • 数据库镜像
  • 数据库实时备份
  • 索引构建和实时维护(拆分异构索引、倒排索引等)
  • 业务 cache 刷新
  • 带业务逻辑的增量数据处理
    阅读全文 »

Hazelcast持久化及优化

发表于 2019-11-11 | 更新于 2019-11-18 | 分类于 架构
本文字数: 4.6k | 阅读时长 ≈ 4 分钟

数据内存格式

参数:in-memory-format,有3种。

  • BINARY
    默认,数据k-v均二进制。
    适合绝大多数put、get等操作,效率最高。
  • OBJECT
    数据存储为对象反序列化,适合对象复杂查询操作,避免反序列时间消耗。
    k为二进制,v为对象。
  • NATIVE
    企业版,二进制格式,存储在非堆空间,避免GC。
    阅读全文 »
1…456…13
Perkins

Perkins

123 日志
8 分类
91 标签
RSS
0%
© 2020 Perkins | 站点总字数: 335k | 站点阅读时长 ≈ 5:04
|