归档: 2020/8

用etcd做服务发现(service discovery)

什么是服务发现服务发现其实有两层含义,第一层是实例发现,第二层是端口发现。如果有两个服务A和B,两个服务都是分布式系统,在某个时刻服务A作为客户端要请求服务B,那么这时从服务A中的某个实例(instance)Ai就要访问服务B中的某个实例Bi,那么Ai找到一个合适的Bi就是服务发现的第一层含义,即实例发现。Ai找到合适的Bi后其实还没完事,Ai需要知道Bi响应这个请求的应用程序,也就是说需要知道B

Go语言slice前置插入(prepend)的坑

最近在工作中遇到一个需求,抽象为数据结构的问题就是:对于一个只记录了前向节点的链表,把其中所有节点的值转化为一个数组,数组需要保持原链表中各个值的顺序。也就是一个链表节点的数据结构长这样: 1234type ListNode struct { Val int Prev *ListNode} 需要向前遍历这个链表,用一个slice记录其每个节点的值,并且保持值在链表中