Perkins4j2的技术博客

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


  • 首页

  • 标签91

  • 分类8

  • 归档123

  • 搜索

Kafka Producer配置

发表于 2019-11-30 | 分类于 架构
本文字数: 2.2k | 阅读时长 ≈ 2 分钟

acks

producer希望leader返回的用于确认请求完成的确认数量. 可选值 all, -1, 0 1. 默认值为1。

acks=0 不需要等待服务器的确认. 这是retries设置无效. 响应里来自服务端的offset总是-1. producer只管发不管发送成功与否。延迟低,容易丢失数据。

acks=1 表示leader写入成功(但是并没有刷新到磁盘)后即向producer响应。延迟中等,一旦leader副本挂了,就会丢失数据。

acks=all等待数据完成副本的复制, 等同于-1. 假如需要保证消息不丢失, 需要使用该设置. 同时需要设置unclean.leader.election.enable为true, 保证当ISR列表为空时, 选择其他存活的副本作为新的leader.

阅读全文 »

Maven 打包Plugins集成

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

目标

  • jar冲突检测
  • 源码编译
  • 源码生成jar
  • pom依赖jar拷贝
  • spring boot可执行jar生成
  • 脚本动态生成
  • 生成目录和打包tar
    阅读全文 »

Redis Cluster

发表于 2019-11-30 | 分类于 架构
本文字数: 3.3k | 阅读时长 ≈ 3 分钟

Redis Cluster

Redis Cluster是Redis3.0版本推出的高可用及分布式解决方案,多个Redis实例组成,数据按照槽(slot)存储分布在多个Redis实例上,通过Gossip流言协议来进行节点之间通信。

Redis Cluster实现的功能:

• 将数据分片到多个实例(按照slot存储);
• 集群节点宕掉会自动failover;
• 提供相对平滑扩容(缩容)节点。

Redis Cluster暂未有的:
• 实时同步
• 强一致性

阅读全文 »

Redis跳表

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

跳表

跳表(skiplist)是一个特俗的链表,相比一般的链表,有更高的查找效率,其效率可比拟于二叉查找树。

Redis里面使用skiplist是为了实现sorted set这种对外的数据结构。

跳表预先间隔地保存了有序链表中的节点,从而在查找过程中能达到类似于二分搜索的效果,而二分搜索思想就是通过比较中点数据放弃另一半的查找,从而节省一半的查找时间,缺点即浪费了空间。

阅读全文 »

Zero-Copy

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

Zero-Copy零拷贝

Zero-Copy用于提高Linux平台上的IO密集型的应用程序的性能。能够避免中间缓冲区中的冗余数据复制以及减少Linux内核空间和用户空间上下文交换的次数。

Zero-Copy使得应用程序从本地磁盘读取数据,再将读取的数据原封不动直接地发送给Socket。

阅读全文 »

ThreadLocal原理

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

使用

定义

1
2
3
4
5
6
private static ThreadLocal<String> CHARSET = new ThreadLocal<String>() {
@Override
protected String initialValue() {
return "utf-8";
}
};
阅读全文 »

Canal配置

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

新增用户和权限

1
2
3
4
5
6
7
8
9
10
# 新增用户
CREATE USER canal IDENTIFIED BY 'canal';

# 授权REPLICATION权限
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
FLUSH PRIVILEGES;
# check
show grants for 'canal';
# 查看当前db binlog文件
show binary logs ;
阅读全文 »

Docker搭建kafka

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

搭建zookeeper环境

1
2
3
4
5
6
7
8
9
10
11
docker pull zookeeper
docker run -d \
--restart=always \
-v /opt/docker/zookeeper/zoo1/data:/data \
-v /opt/docker/zookeeper/zoo1/datalog:/datalog \
-e ZOO_MY_ID=1 \
-e ZOO_SERVERS="server.1=zookeeper-A:2888:3888 server.2=zookeeper-B:2888:3888 server.3=zookeeper-C:2888:3888" \
--name=zookeeper-A \
--net=host \
--privileged \
zookeeper
  • 指定了–net=host和–privileged选项,使得容器可以使用主机的ip地址和端口进行通信。
  • restart=always当Docker重启时,容器能自动启动
  • 2181:对client端提供服务
  • 3888:选举leader使用
  • 2888:集群内机器通讯使用(Leader监听此端口)
    阅读全文 »

SQL-Server备份

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

备份方案

  • SSIS(SQL Server Integration Services)

    阅读全文 »

Log工具类打印调用者信息

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

方法调用栈

方法调用栈,在Java 中可以通过两种方法获取到方法调用栈的信息

  • (new Throwable()).getStackTrace()
  • Thread.currentThread().getStackTrace()

这两种方式都能返回一个 StackTraceElement 数组,StackTraceElement 对象中包含了类名、方法名、文件名、代码行号这样的信息。

阅读全文 »

1…345…13
Perkins

Perkins

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