Skip to content

Instantly share code, notes, and snippets.

View yangl's full-sized avatar
🎯
Focusing

YANGLiiN yangl

🎯
Focusing
View GitHub Profile
curl -X GET -H 'Authorization: Bearer JTW_TOKEN(NO token: prefix)' -H 'X-Pulsar-Auth-Method-Name: token' -H 'Content-Type: application/json; charset=UTF-8' -i 'http://10.207.128.13:18080/admin/v2/persistent/public/default/partitioned?includeSystemTopic=false'

主要是两个head:

Authorization: Bearer $JTW_TOKEN(NO token: prefix)

@yangl
yangl / Pulsa集群模式最佳实践.md
Last active December 16, 2022 08:57
Pulsar二进制预编译包建议使用StreamNative分发的二进制包 https://github.com/streamnative/pulsar/releases

zk集群划分:

  • metadataStore 单独集群;
  • bookie & configurationMetadataStore 共享集群;

bookie跨机房大集群共享存储、broker层面独立小集群

注:bookie与metadataStore使用不同的zk集群时,pulsar目前的默认机架感知策略实现是有bug的,该bug会导致机架感知策略不对&数据恢复时报错等。(该bug可关注 https://github.com/apache/pulsar/pull/18672#issuecomment-1347634103)

ZK集群启动

@yangl
yangl / bookkeeper-topology.conf
Last active December 13, 2022 07:41
Apache Pulsar 机架感知策略 --networkTopologyScript
# bookie-1
10.207.128.13 /SZ/FT
10.207.128.14 /SZ/FT
10.207.128.15 /SZ/FT
10.207.128.16 /SZ/FT
10.207.128.17 /SZ/FT
# bookie-2
10.206.128.204 /SZ/NS
10.206.128.205 /SZ/NS

内嵌DB模式(derby),启动参数 -p embedded

一致性协议

  • CP 注册中心非临时节点&&配置中心配置 -- jraft;
  • AP 注册中心临时节点 -- Distro;

启动脚本

MM2同步下游集群消息位点差值更新机制,默认lag大于等于100条就会触发

MirrorSourceTask.java

        // true if we should emit an offset sync
        boolean update(long upstreamOffset, long downstreamOffset) {
            boolean shouldSyncOffsets = false;
            long upstreamStep = upstreamOffset - lastSyncUpstreamOffset;
            long downstreamTargetOffset = lastSyncDownstreamOffset + upstreamStep;
 if (lastSyncDownstreamOffset == -1L
@yangl
yangl / maven-shade-plugin.pom.xml
Last active July 27, 2022 08:38
maven-shade-plugin把强依赖的jar包更改包名并一起打包到自己的jar中,防止依赖冲突,中件间团队必会淫技!http://maven.apache.org/plugins/maven-shade-plugin/index.html
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
@yangl
yangl / Kafka小流量灰度&蓝绿.md
Last active July 22, 2022 08:42
Kafka小流量灰度&蓝绿

在全链路灰度背景下,Kafka作为一些系统的流量触发入口(消息驱动),Kafka必须能做到准确无误的识别灰度标识。 在比较单独新建灰度主题/独立集群等业界常规方案后,发现该方案对下游业务改动较大(需消费新灰度主题/新灰度集群等),推动实施周期长难以执行。 最终决定在原有topic的分区上动手解决这个问题,比如每个主题的分区0作为小流量灰度的专用灰度分区,奇偶分区来作为蓝绿分区。

另:该方案仅需在kafka-client上扩展自定义策略即可,无需改动server端代码。

kafka灰度-方案 drawio

@yangl
yangl / SQLTranslatorUtil.java
Created July 21, 2022 10:09
SQL方言转换工具, H2 -> MySQL, PostgreSQL -> MySQL
package com.sf.db;
import lombok.experimental.UtilityClass;
import org.jooq.Query;
import org.jooq.SQLDialect;
import org.jooq.impl.DSL;
@UtilityClass
public class SQLTranslatorUtil {
package com.sf.springbootstrap;
import com.google.common.collect.Maps;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.googlecode.aviator.*;
import java.util.Map;
import java.util.Set;
import lombok.extern.slf4j.Slf4j;