摘要: 本文转载自: https://www.cnblogs.com/lpfuture/p/5796398.html 如有侵权,请告知下线,多谢!! 0. 目的 分布式系统中节点根据哈希取值进行保存数据,当有节点新增或者节点下线,普通哈希算法会需要所有数据的哈希分布重新计算。而一致性哈希算法只需要重新计算下 阅读全文
posted @ 2019-08-28 22:50 suyesean 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 前言:工作使用git进行协同开发工作,大多数时候使用几个常用的命令即可搞定工作。但是对于背后的含义犹如囫囵吞枣,不甚解其味。于是查阅资料,对平时使用到的命令做进一步深入研究理解。知其然,更知其所以然。 1. 基本命令流程 大多数工作情况下,我们使用到如下命令即可完成提交代码到远程仓库的动作。下面列出 阅读全文
posted @ 2019-08-25 23:37 suyesean 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 整体架构 Kubernetes属于主从分布式架构 主要由Master Node和Worker Node组成,以及包括客户端命令行工具kubectl和其它附加项。 Master Node: 作为控制节点,对集群进行调度管理; Master Node由 API Server、Scheduler、Clus 阅读全文
posted @ 2019-07-25 22:44 suyesean 阅读(246) 评论(0) 推荐(0) 编辑
摘要: [TOC] 1. 内存区域(运行时数据区) 线程私有: 程序计数器、Java虚拟机栈、本地方法栈 线程共享: 堆、方法区(运行时常量池)、直接内存 1.1 程序计数器 用来记录程序正在执行的字节码指令的地址 1.2 虚拟机栈 组成: 每执行一个Java方法都会创建一个栈帧,每个栈帧包含:局部变量表、 阅读全文
posted @ 2019-07-25 07:10 suyesean 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 线程池的执行策略 1. 判断核心线程池是否已满?不满,new一个线程执行任务;满了,执行步骤2 2. 线程队列是否已满?不满,放在工作队列里;满了,new一个线程执行任务。 3. 判断线程是否超过最大线程数?未超过,可以new线程执行任务;超过了,任务被拒绝,执行 RejectedExecution 阅读全文
posted @ 2019-07-25 07:06 suyesean 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 0. 目录 [TOC] 1. 消费者和消费者组 每一个分区只能被一个消费组中的一个消费者所消费。 在消费组中增加消费者可以增加整体的消费能力,消费者不能多于分区个数。 消息中间件2中模式:点对点的队列模式、订阅/发布模式 点对点:所有消费者属于1个消费组 订阅/发布:各个消费者属于不同的消费组 通过 阅读全文
posted @ 2019-07-25 07:04 suyesean 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 0. 目录 [TOC] 1. 生产消息步骤 配置生产者客户端参数,创建生产者实例 构建待发送的消息 发送消息 关闭生产者 2. ProducerRecord的属性 key用来计算分区号,确定发送到指定分区 3. 必要的参数 bootstrap.servers:指定kafka集群的broker的地址, 阅读全文
posted @ 2019-07-25 07:02 suyesean 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 1. 基本名词 Producer Consumer Broker 服务器 集群 主题和分区 主题是逻辑上的概念,分区是可以追加的日志文件。 offset是每个分区文件的偏移量,offset不跨越分区 保证分区内消息有序。 分区解决了写文件,单个机器IO成为瓶颈的问题。 多副本机制 副本是为了提升容灾 阅读全文
posted @ 2019-07-25 07:00 suyesean 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 1. 定义 定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。 2. 设计原则 封装变化 将变化的地方独立出来,不要与不变化的混杂在一起 多用组合,少用继承(more has,less extends) 针对接口编程,而不针对实现编程 3. 模式举例 不好的 阅读全文
posted @ 2019-07-25 06:56 suyesean 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 一、运行时数据区 程序计数器 用于记录程序执行到的字节码地址。 java虚拟机栈 java方法执行时,创建一个栈帧,保存局部变量表、操作数栈常量池引用等信息。 当线程请求的栈深度超过最大值,即方法嵌套方法层次太深时,会抛出StackOverflowError。 当栈进行动态扩展没有足够的空间时,会抛 阅读全文
posted @ 2019-05-26 18:01 suyesean 阅读(147) 评论(0) 推荐(0) 编辑