自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(187)
  • 收藏
  • 关注

原创 argocd 调研

Argo CD 是基于 Kubernetes 的声明式, GitOps 持续交付工具。

2023-02-14 11:11:49 577

原创 leetcode-1041 模拟走法

leetcode-1041 模拟走法

2022-09-04 11:36:40 326

原创 leetcode-994 模拟算法

leetcode-994 模拟算法

2022-09-04 10:15:52 241

原创 2022-1-8-21. Merge Two Sorted Lists

合并2个有序链表 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = ne

2022-01-08 22:54:01 346

原创 2022-1-8-3. Longest Substring Without Repeating Characters

最长无重复字符串 class Solution { public int lengthOfLongestSubstring(String s) { if(s==null || s.length()==0) return 0 ; Map<Character,Integer> map = new HashMap<>(); int longest = 0; int tempStart =

2022-01-08 22:32:01 215

原创 2022-1-8-2. Add Two Numbers

链表相加 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next;

2022-01-08 21:58:37 519

原创 2022-1-8-200. Number of Islands

力扣https://leetcode-cn.com/problems/number-of-islands/深度优先搜索 class Solution { public int numIslands(char[][] grid) { int result = 0; for(int i = 0;i< grid.length;i++){ for(int j = 0;j<grid[0].length;j++){

2022-01-08 19:35:35 97

原创 2022-1-8-1. Two Sum

leetcode-1

2022-01-08 16:58:31 199

原创 DDD的理解

DDD 领域驱动设计:是一种设计思想,应用到IT技术领域,主要是指导微服务设计和划分的思想. 微服务的划分和设计是根据业务和技术两个方面来划分的,DDD之前的微服务划分是偏向于根据技术来划分,DDD更强调根据业务属性来划分微服务.从而达到微服务的高内聚,低耦合,扩展性强的设计目的. 微服务划分存在过粗或过细两个极端,过粗的微服务需要进一步划分,过细的微服务划分需要聚敛. ...

2021-08-01 10:03:46 3666 1

原创 Kafka网络层及Api层结构图

Kafka网络层及Api层结构图,欢迎讨论

2021-07-16 18:31:56 230 2

原创 KafkaConsumer流程图

KafkaConsumer主流程图,欢迎讨论

2021-07-16 17:20:43 185

原创 kafka-producermatadata类图

kafka-producermatadata类图

2021-07-12 18:05:14 106

原创 Kafka生产者主流程图

kafka生产者主流程图,欢迎讨论

2021-07-12 18:00:31 245

原创 kafka消费组管理模块(四)-GroupCoordinator分析

GroupCoordinator负责对接上层KafkaApis的各种handle请求,对下封装了GroupMetadataManager的各个方法 重点分析rebalance的两个阶段JoinRequest和SyncRequest 一.JoinRequest 1.最上层由KafkaApis的handleJoinGroupRequest方法发起 case ApiKeys.JOIN_GROUP => handleJoinGroupRequest(request) def handleJoin.

2021-03-17 18:12:23 445

原创 kafka消费组管理模块(三)-__consumer_offsets分析

__consumer_offsets成为位移主题,有以下知识点 1.由kafka自己创建,默认50个分区,每个分区3个副本 2.例如partition-1的leader为broker 4. isr为 4,6,8 ar为4,6,8 3.一个group,计算group的hash值,对50取余得出0-49的值,如果是1则这个group的group coordinator在partition-1的leader所在的broker上 4.__consumer_offsets保存了组元数据和offset元数.

2021-03-17 16:24:31 1162

原创 kafka消费组管理模块(二)-元数据管理器GroupMetadataManager

组管理器是管理多个GroupMetadata 一.核心字段 其中最核心的就是groupMetadataCache ,底层就是一个ConcurrentHashMap,消费组名,对应GroupMetadata class GroupMetadataManager(brokerId: Int, interBrokerProtocolVersion: ApiVersion, config: Offse

2021-03-16 17:44:19 895

原创 kafka消费组管理模块(一)-元数据

kafka服务端消费组管理器的源码位于kafka.coordinator.group包下 分为四个部分分析 1.元数据 MemberMetadata.scala & GroupMetadata.scala 2.元数据管理 GroupMetadataManager.scala 3.__consumer_offsets分析 4.组管理器 GroupCoordinator 第一部分:MemberMetadata.scala & GroupMetadata.scala 一.Member

2021-03-16 16:54:34 771

原创 kafka重要配置-影响可用性,性能

一.topic级别的配置 配置项 可选项 默认值 broker参数 说明 cleanup.policy delete,compact delete log.cleanup.policy 日志策略,delete或者compact delete.retention.ms 数字 86400000 (1 day) log.cleaner.delete.retention.ms 日志策略为compact.

2020-12-22 19:38:59 294

原创 kafka核心配置-consumer

fetch.min.bytes--1 fetch.max.bytes--52428800 (50 mebibytes) heartbeat.interval.ms--3000 (3 seconds) 和consumer coordinator之间的预跳时间(The value must be set lower thansession.timeout.ms, but typically should be set no higher than 1/3 of that value) max.parti.

2020-12-21 20:42:54 169

原创 kafka核心配置-producer

一.producer buffer.memory--33554432=32m retries--2147483647:可能导致顺序不对 batch.size--16384 字节=16k connections.max.idle.ms--540000 (9 minutes) delivery.timeout.ms--120000 (2 minutes) 此值应该大于request.timeout.ms+linger.ms,一个消息的最大投递时间 request.timeout.ms--30...

2020-12-21 20:23:27 283

原创 kafka核心配置-broker

基础配置 listeners default.replication.factor--1 advertised.listeners auto.create.topics.enable message.max.bytes broker.rack broker.id.generation.enable num.partitions--1 reserved.broker.max.id security.inter.broker.protocol--PLAINTEXT create.topic

2020-12-21 18:40:30 452

原创 kafka-副本机制

kafka通过副本机制保证数据的可靠性 一.副本机制的概念如下: 1.一个partition有多个副本replication,一般是3个或5个 2.每个副本位于不通的broker 3.每个副本集合里有一个leader副本,其余的为follower副本,只有leader副本才接受读写请求,follower副本只做同步数据 4.所有的副本组成的集合称为AR,所有同步副本成为ISR(In-Sync Replication),所有非同步副本成为OSR,OSR+ISR=AR 5.如果leader副本不可用

2020-11-08 19:25:23 224

原创 kafka-client-分区分配

分区再均衡 分区再均衡在服务端由GroupCoordinator负责,在客户端由ConsumerCoordinator负责 有以下集中情况会触发再均衡 1.新消费者加入 2.消费者被动下线 3.消费者主动下线 4.消费组对应的GroupCoordinator节点发生变更 5.消费组订阅的主题分区数量发生变化 当发生分区再均衡时有以下几个阶段 第一阶段 FIND_COORDINATOR 第二阶段JOIN_GROUP 第三阶段SYNC_GROUP 第四阶段HEARTBE...

2020-11-07 20:23:52 403

原创 kafka-client-分区策略

分区分配策略 一个消费组内有多个消费者,一个topic有多个patition,所以消费者和partition是多对多的关系,kafka默认有以下三种分区分配策略 1.RangeAssignor 按照消费者总数和分区总数整除得到一个跨度,然后将分区按照跨度进行平均分配,当订阅多个topic时,每个topic分别计算 例如消费者c0,c1 topic有2个,分区分别为: t0p0,t0p1,t0p2 t1p0,t1p1,t1p2 分配过程: (1)分配topic:t0 c0: t0p0,t0

2020-11-07 20:22:55 292

原创 kafka-controller

1.kafka中有多个broker,其中一个broker会被选举为controller 2.选举的方式是所有broker在zookeeper创建/controller临时节点,创建成功的broker成为controller controller的数据如下 {"version":1,"brokerid":2,"timestamp":"1604740076796"} 同时会创建controller_epoch节点,节点数据是一个整数,记录选举轮次 3.controller的职责 监听分区相关的变化

2020-11-07 19:03:14 150

原创 kafka-日志格式

kafka的topic-partition文件夹下有多个文件包括 .log .idex .timeindex 这三个核心文件 还包括 .deleted .cleaned .swap 等临时文件 还可能有 .snapshot .txnindex leader-epoch-checkpoint 等文件 .log文件是kafka的数据文件

2020-11-06 12:34:44 1232

原创 kafka-分区管理

1.分区优先副本选举 当分区的leader分配不均衡时,例如3个broker,0,1,2,有一个topic有3个分区p0,p1,p2,当所有的分区leader都在一个broker上时,就是分区分配不均衡 ./kafka-preferred-replica-election.sh --zookeeper 127.0.0.1:2181/kafka-plaintext-poc 结果太多,不展示 可以通过指定topic和分区的方式,对特定topic和分区进行优先副本选举 2.分区重分配 当有broker

2020-11-06 11:19:43 186

原创 kafka-topic管理

一.概念 kafka的topic是一个逻辑概念,一个topic对应多个分区,一个分区对应多个副本,一个副本对应一台broker上的一个文件夹,例如topic为test的第0个分区的一个副本的文件夹名为test-1,每个分区在一个broker上只能有一个副本,所以所有副本的文件夹名是相同的,只是在不同的broker上 每个副本的文件夹内有以下文件: 00000000000000000974.index //索引文件 00000000000000000974.snapshot //快照文件 0000..

2020-11-05 20:10:22 2545

原创 消费者代码实例

一.创建配置,最小化配置如下 var props = new Properties(); props.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "127.0.0.1:9092");//broker地址 props.setProperty(ConsumerConfig.GROUP_ID_CONFIG, "group_id_1");//group id props.setProperty(ConsumerConfig.KEY_DESERIALI

2020-11-05 14:53:33 302

原创 生产者代码示例

一.必须按配置 Properties props = new Properties(); props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "127.0.0.19092");//kafka broker地址 props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer");//key序列...

2020-11-05 14:53:01 224

原创 kafka副本同步机制

kafka的复制机制不是完全的同步或异步,完全的同步需要所有的副本成功写入才能返回,会极大地影响性能,完全的异步,只要写入leader副本即可,这样如果leader宕机,会丢消息,kafka采取了独特的ISR机制权衡数据的可靠性和性能. 1.日志文件逻辑格式 0是日志起始offset,HW是消费者可以拉取到的最大的offset,leo是新写入的下一条offset 2.所有的副本组成的集合是AR(Assigned Replicas) 3.与Leader保持一定程度同步的副本集合是ISR(In-Sy

2020-11-02 17:39:38 453

原创 kafka-Consumer Group 不消费问题

一.问题现象: go 客户端简单consumer 模式可以消费 go客户端consumer group模式不可消费,客户端运行到一下代码卡住 <-consumer.ready // consumer一直没有ready fmt.Println("Sarama consumer up and running!...") java客户端不可消费 客户端每次poll不到数据,没有日志输出 ConsumerRecords<String, String> records = consu

2020-10-22 11:56:55 2423

原创 redis最佳实践-创建及主从同步

Redis创建需要注意的问题

2020-08-04 20:28:00 150

原创 redis cluster-手动扩缩容

redis cluster-手动扩缩容,垂直和水平扩缩容

2020-08-04 20:13:44 307

原创 redis cluster-手动搭建(5.0.8)

redis cluster-手动搭建(5.0.8)

2020-08-04 20:12:28 205

原创 Redis Cluster on K8s性能测试

本测试用于了解Redis Cluster在Kubernetes环境下的性能表现,以及对比Kubernetes环境相比虚机环境的性能差异

2020-08-04 20:10:59 1280

原创 redis-服务端配置文件详解

学习redis首先需要搞清楚配置文件

2020-08-04 19:57:48 598

原创 网络相关概念

网络概念 LAN 局域网 local area network LAN 通过hub和switch联通,属于一个广播域 LAN 中所有成员都会收到任意成员发出的广播包 MAN 城域网 metropolitan area network WAN 广域网 wide area network 广域网不等于互联网 Ethernet 以太网 是LAN的一种组网技术,取代了其他LAN的组网技术:令牌环,FDDI和ARCNET IEEE 制定了以太网标准 IEEE 802.3,规定了物理层的连线,电子信号和...

2020-07-16 11:13:44 299

原创 SpringCloud源码解读--Eureka注册中心核心源码解读(2)-cache原理

本节讲一下Eureka服务端的缓存机制

2020-02-17 11:35:22 204

原创 SpringCloud源码解读--Eureka注册中心核心源码解读(1)-核心流程

核心类 1.InstanceRegistry:注册表 2.DiscoverClient:客户端 3.Application:注册得应用,InstanceInfo:注册的应用实例 4.PeerEurekaNode:每一个注册中心节点 5.EurekaBootStrap:服务端启动类 ...

2020-02-16 20:18:39 476

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除