摘要:
几个关键点: 最好集群部署,用于分布式协调 重要的概念:znode/session/watcher(类似订阅发布/观察者模式)/zab协议/读写模式 数据模型:类Linux形式的树形结构 zab协议: z-automatic-broadcast(原子广播)是zk的关键 zab协议 z-automat 阅读全文
摘要:
Kafka架构图 总结: 消息是分主题的,然后为了扩展性,每个主题又有许多分区(分片和索引机制),这些分片可以跨机存在 每个分区内部又是有序的队列,索引从0.1.2..开始这种的 注意副本的概念:副本是针对分区的,每个分区都有若干副本(一leader和多follower) 副本的leader和fol 阅读全文
摘要:
几个关键点 分区的原因 生产者传数据往哪个分区传 保证数据可靠性:写入单位其实是topic的某个partition,其有多个副本(分区多副本机制)。怎么保证成功写入呢? 其实采用了一种ack机制。且每个分区有多副本(1 leader n follower)。 那么什么时候发送ack? 多少个foll 阅读全文
摘要:
关键点 概念的解析 kafka的架构图 架构深入 kafka的工作流程及文件存储机制 kafka的生产者:a.分区策略 b.数据可靠性保证 c.数据一致性保证 kafka的消费者:a.消费方式 b.分区分配策略 c.offset的维护 zookeeper的作用 Kafka常见面试题:根据问题去了解大 阅读全文
摘要:
关键词: 订阅-发布系统:类比微信公众号 发消息的演进 kafka的一些概念 1.订阅发布系统 2. 发消息的演进 一对一: A <--> B 的通信,只有一条通信链路 多对多: 3*3的通信,会产生9条通信链路 当有很多人通信的时候: N*N条通信链路,此时链路网络会特别复杂臃肿,而且会有很多已经 阅读全文
摘要:
1.defer、panic、recover 2.make和new func main() { var userinfo map[string]string userinfo["username"] = "张三" fmt.Println(userinfo) } func main() { var a 阅读全文
摘要:
1. 闭包 闭包,看这一篇就够了——带你看透闭包的本质,百发百中 1.1 概念 闭包函数:声明在一个函数中的函数,叫做闭包函数。 闭包:内部函数总是可以访问其所在的外部函数中声明的参数和变量,即使在其外部函数被返回(寿命终结)了之后。 1.2 特点 让外部访问函数内部变量成为可能; 局部变量会常驻在 阅读全文
摘要:
defer 匿名返回值&命名返回值 1.问题的提出 关于 Go defer 对匿名返回值和命名返回值的不同行为 func test1() int { var a int defer func() { a++ }() return a } func test2() (a int) { defer fu 阅读全文