0%

Rebalance问题处理

最近有个项目,过一段时间就出出现如下问题,现象为offset不再提交,但是观察log数据发现数据还有在消费。

1
Attempt to heartbeat failed since group is rebalancing
阅读全文 »

HTTP Sink 配置

最少配置

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"connector.class": "io.confluent.connect.http.HttpSinkConnector",
"http.api.url": "http://localhost:8288/api/messages",
"request.method": "POST",
"topics": "REASON_HTTP",
"tasks.max": "1",
"request.body.format": "json",
"confluent.topic.bootstrap.servers": "localhost:9092",
"key.converter.schemas.enable": "false",
"value.converter.schemas.enable": "false",
"key.converter": "org.apache.kafka.connect.storage.StringConverter",
"value.converter": "org.apache.kafka.connect.json.JsonConverter"
}
阅读全文 »

窗口类型

  • Hopping Window 固定时间,重叠窗口
  • Tumbling Window 固定时间,不重叠,无间隙的滚动窗口
  • Session Window 动态大小,不重叠的数据驱动窗口

avatar

阅读全文 »

除法问题

  • double 类型除不尽时结果为null
  • 复杂计算时,先乘再除

数据处理

  • 如果有多个job同时处理一个大的数据流,可以先对数据流进行清洗,对提升性能有明显效果。
阅读全文 »

场景

最近公司在做redis规范,其中有一条就是禁用或者重命名CONFIG命令,然后在部署Redis Sentinel的时候也傻乎乎的就把CONFIG命令给重命名了。今天在查看相关文档时,发现sentinel在做节点管理时会使用CONFIG命令。按照这个逻辑,如果重命名CONFIG命令会导致无法实现故障转移。

阅读全文 »

随着公司Redis使用规模越来越大,redis安全也展现出来了,所以我们经过分析研究做出如下总结。

Redis在部署时,需要满足一下条件则会变得更加安全:

禁止root用户启动redis

为 Redis 服务创建单独的用户和home目录,使用普通用户启动,安全性往往高很多。

阅读全文 »

Redis部署机器最佳系统优化实践执行内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
vi /etc/sysctl.conf
vm.swappiness = 0
vm.overcommit_memory = 1
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 262144

# 立即生效
sysctl -p
# 查看
cat /proc/sys/vm/overcommit_memory

vi /etc/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag
fi

echo never > /sys/kernel/mm/transparent_hugepage/enabled
阅读全文 »

Dockerfile是一种文本文档,其中包含用户在命令行上可以调用的所有命令,使用这些命令来组装Image。

最简单的Dockerfile

1
2
3
4
5
6
7
8
9
#Version: 0.01
FROM anapsix/alpine-java:8 #基于哪个镜像
MAINTAINER reason.h.duan #作者
RUN mkdir /opt/rest_demo #创建一个工作目录,不创建不能上传文件到此目录
ADD RestDemo.jar /opt/rest_demo #上传自己的文件
ADD start.sh /opt/rest_demo
WORKDIR /opt/rest_demo #设置工作目录
ENTRYPOINT ["./start.sh"] #设置容器启动执行脚本

阅读全文 »

Docker多阶段构建可以在构建镜像时,只使用工具镜像,但是不将工具镜像的内容打包到最终镜像中。这个可以减少镜像的最终大小。

阅读全文 »