摘要: 来源与尼恩的《Java高并发核心卷》 同步阻塞io 阻塞与非阻塞: 阻塞是指需要内核io彻底执行完毕后才返回到用户空间执行用户程序的指令,阻塞是指用户程序的运行状态。 同步与异步: 同步io是指用户空间主动发起io请求的一方,内核系统是接收方;相反的异步io是指,系统的内核空间是主动的发起io请求的 阅读全文
posted @ 2021-11-28 16:08 桂花载酒少年游O 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 一句话概述: isr机制通过为维护一个与leader副本保持“同步状态”的集合,保证数据的一致性,提升了同步性能;ack机制与幂等性保证了数据的exactly once。 引入isr的原因 kafka并未采取Zab和Paxos协议的多数投票机制来来保证主备数据的一致性,而是提出了isr(in-syn 阅读全文
posted @ 2021-11-28 10:48 桂花载酒少年游O 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 生产环境出现了kafka接收到消息后,出现落盘与消费的延时,所以研究下kafka的网络模型,看了一些源码: 源码版本:0.8与1.1.0 图片来源于《kafka源码剖析》 网络层 Socketserver部分 0.8版本: 首先看一下他的startup方法: 在startup的方法中会创建多个pro 阅读全文
posted @ 2021-11-21 18:59 桂花载酒少年游O 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 使用场景服务器A需要远程调用服务器B上的脚本,由于脚本需要交互的执行,所以需要expect,可以预定一些参数用户交互执行,具体实例如下: 直接执行sh A.sh即可,远程机器B的脚本B.sh就会运行 调用脚本A.sh #!/bin/bash currentdir=$(cd `dirname $0`; 阅读全文
posted @ 2021-11-20 19:26 桂花载酒少年游O 阅读(406) 评论(0) 推荐(0) 编辑
摘要: shell脚本本身不支持多线程语法,这里所说的多线程本质上是使部分代码在后台运行(多进程),使cpu自动的调用各个进程,最大限度的利用cpu的性能。 这里所说的能使用多线程的场景值得是部分代码块可以并行执行,相互之间没有影响的情况。 使用&符号后台运行多个代码块 #!/bin/bash echo " 阅读全文
posted @ 2021-11-17 22:33 桂花载酒少年游O 阅读(567) 评论(0) 推荐(0) 编辑
摘要: 本文是基于在b站上所学zk的课程所作出的总结 zk的选举机制 首先介绍几个概念: Sid:服务器id,用于在集群中唯一的标识一台zk的机器,集群中不能够重复,和myid是一致的。 ZXID:事务id,用来表示一次服务器状态的变更;在某一时刻,集群中的每台机器的ZXID值是不一定完全一致,这和zk对于 阅读全文
posted @ 2021-11-16 22:33 桂花载酒少年游O 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 项目内的大佬推荐了一种流式处理框架benthos,该工具使用go语言编写,使用起来比较方便,只需要编写yaml配置文件即可完成对数据的处理; 启动就不说了,推荐大家看下官网,讲的比较详细。 该框架有三大组件: input 输入 pipeline 流水线处理 output 输出 该框架包含多种输入源, 阅读全文
posted @ 2021-11-16 22:04 桂花载酒少年游O 阅读(1640) 评论(0) 推荐(0) 编辑
摘要: 一句话概述 Java Nio 可以做到用一个线程处理多个网络请求。假设有1000个请求过来,根据实际的情况可以分配20或者80个线程进行处理,不必像阻塞io那样需要启动1000个线程进行处理。 基本介绍 Nio与Io 有着相同的作用与目的,但是使用方式完全不同,Nio支持面向缓冲区、基于通道的Io操 阅读全文
posted @ 2021-11-13 21:01 桂花载酒少年游O 阅读(78) 评论(0) 推荐(0) 编辑