编辑
2023-12-04
后端
00

etcd是一个使用Go语言编写的分布式键值存储系统,是CNCF(Cloud Native Computing Foundation)的核心项目之一。它提供了高可用性、一致性和分布式事务的支持。

1. 服务端设计

etcd的服务端模块是etcd的核心模块,它定义了主要的接口和数据交互格式,并解决了以下问题:

  • 接收客户端的请求并对节点进行分发
  • 感知集群成员变动,对成员进行通知
  • 同步或启动恢复快照等
编辑
2023-12-04
后端
00

ETCD的Raft一致性算法原理

ETCD是一个使用Raft一致性算法来实现分布式一致性的高可用键值存储系统。Raft算法是一种易于理解和实现的一致性算法,它通过选举一个leader节点来协调分布式系统中的数据复制和一致性。

编辑
2023-12-04
后端
00

etcd是一个分布式键值存储系统,用于在分布式系统中存储和检索数据。它被广泛应用于容器编排系统(如Kubernetes)和分布式系统中的配置管理。etcd的watch机制是其重要的特性之一,它允许客户端监听特定的键,并在这些键的值发生变化时得到通知。

编辑
2023-12-04
后端
00

MySQL请求处理过程大致可以分为以下几个阶段:

  1. 连接管理/连接器:
    • 客户端与服务器进程之间建立连接,可以使用TCP/IP、命名管道或共享内存等方式进行连接。
    • 客户端提供主机信息、用户名和密码等,服务器对提供的信息进行认证和权限验证
  2. 解析与优化:
    • 查询缓存(MySQL 8中已取消):MySQL会将查询请求的结果进行缓存处理,如果有相同的请求访问,会直接返回缓存结果。
    • 语法解析:对请求进行词法解析、语法解析和语义解析,从指定的文本中获取查询条件。
    • 查询优化:根据查询条件生成执行计划,包括使用哪些索引、表的连接顺序等。
编辑
2023-12-04
后端
00

Go语言的CSP(Communicating Sequential Processes)并发模型是一种并发编程模型,它基于通信来实现并发控制,而不是共享内存。这个模型的核心思想是通过通信来共享内存,而不是通过共享内存来通信。Go语言通过goroutine和channel来实现CSP模型。

  1. Goroutine(协程):
    • Goroutine是Go语言中的轻量级线程,它可以在并发执行的实体之间进行切换。
    • Goroutine可以看作是并发执行的实体,它可以独立执行一段代码,拥有自己的栈空间。
    • Goroutine之间的切换是由Go语言的调度器自动完成的,开发者无需关心具体的调度细节。