Kafka 安装与 Go 实战
1. 安装与部署
Kafka 3.x 支持 KRaft 模式,无需依赖 ZooKeeper。以下配置基于 Docker Compose:
1 | services: |
Kafka 3.x 支持 KRaft 模式,无需依赖 ZooKeeper。以下配置基于 Docker Compose:
1 | services: |
TCP 的全称叫传输控制协议(Transmission Control Protocol),TCP 相比 UDP 多了很多特性,比如流量控制、超时重传、拥塞控制等,这些都是为了保证数据包能可靠地传输给对方。当传输层的数据包大小超过 MSS(TCP 最大报文段长度) ,就要将数据包分块,我们把每个分块称为一个 TCP 段(TCP Segment)。
网络层最常使用的是 IP 协议(Internet Protocol),IP 协议会将传输层的报文作为数据部分,再加上 IP 包头组装成 IP 报文,如果 IP 报文大小超过 MTU(以太网中一般为 1500 字节)就会再次进行分片,得到一个即将发送到网络的 IP 报文。

网络接口层的传输单位是帧(frame),IP 层的传输单位是包(packet),TCP 层的传输单位是段(segment),HTTP 的传输单位则是消息或报文(message)。

分布式锁其实就是,控制分布式系统不同进程共同访问共享资源的一种锁的实现。如果不同的系统或同一个系统的不同主机之间共享了某个临界资源,往往需要互斥来防止彼此干扰,以保证一致性。
业界流行的分布式锁实现,一般基于数据库,Redis和Zookeeper。
许多单体应用在修改应用状态时都是依靠事务来保证一致性和隔离性的。要实现这两点很简单:应用通常只和单个数据库交互,使用支持启动、提交和回滚这些事务操作的框架来实现强一致性保证。
在微服务应用中,就没有这么幸运了。服务间的交互可能会失败,导致业务流程受阻,最终使整个系统处于不一致的状态。