kafka原理和高可用
Apache Kafka 是一个开源的分布式事件流平台 (Distributed Event Streaming Platform)。
忘掉 “ 消息队列 “ 这个狭隘的标签。虽然它能当消息队列用,但这好比说一台 MacBook Pro 只是个打字机。它的核心是一个分布式的、分区的、可复制的、持久化的提交日志 (Commit Log)。数据被 “ 追加 “ 到日志末尾,并且可以被多个消费者在任意时间点、以任意速度重复读取。
一句话类比: Kafka 就像一个拥有无数个频道的、永不停止的数字电视台。
- 电视台 (Kafka Cluster): 整个服务系统。
- 频道 (Topic): 数据的分类,比如 “ 订单频道 “、” 用户行为频道 “。
- 节目 (Message/Event): 一条条的数据,比如 “ 用户 A 下单 “、” 用户 B 点击了按钮 “。
- 节目制作方 (Producer): 负责制作节目并发送到指定频道。
- 电视观众 (Consumer): 订阅自己感兴趣的频道。
- 电视节目录像机 (Log & Offset): 电视台会把所有节目按顺序录下来(持久化日志)。每个观众都有自己的进度条(Offset),可以从任何时间点开始看、快进、甚至倒带重看(数据回溯),且每个观众的观看进度互不影响。
自旋锁的原理和优缺点
io多路复用select_poll_epoll
linux的io模型
先抛出知乎的一个问题: https://www.zhihu.com/question/59975081
epoll技术属于IO复用,IO复用属于同步IO,所以epoll属于同步IO,这应该是没毛病的。
现在我用了一个框架,比如twisted,里面的reactor模式的实现是基于epoll或者poll的,在IO的范畴应该是属于同步IO,但是网上几乎所有的文章都说twisted是异步的。
我的问题是,异步与异步IO是不是一个东西?有没有可能异步可以由同步IO(epoll或poll)实现?
正向代理反向代理负载均衡和API网关
如何管理成千上万的访客(用户请求)和内部员工(服务间调用)的流动,确保一切井然有序、安全高效?这就是今天要讨论的这套“交通管理系统”要解决的问题。
微服务拆分原则
k8s教程06-探针机制
k8s教程05-Deployment滚动更新程序
Deployment,⽀持声明式地更新应⽤程序。
- Deployment是⼀种更⾼阶资源,⽤于部署应⽤程序并以声明的⽅式升级应⽤,⽽不是通过ReplicationController或ReplicaSet进⾏部署,它们都被认为是更底层的概念。
- 当创建⼀个Deployment时,ReplicaSet资源也会随之创建 。
- 在使⽤ Deployment 时 , 实 际 的 pod 是 由Deployment 的Replicaset创建和管理的,⽽不是由Deployment直接创建和管理的。


