https://segmentfault.com/a/1190000022545889 在并发编程中同步原语也就是我们通常说的锁的主要作用是保证多个线程或者 goroutine在访问同一片内存时不会出现混乱的问题。Go语言的sync包提供了常见的并发编程同步原语,上一期转载的文章《Golang 并发编程之同步原语》中也详述了 Mutex、RWMutex、WaitGroup、Once 和 Cond 这些同步原语的实现原理。今天的文章里让我们回到应用层,聚焦sync包里这些同步原语的应用场景,同时也会介绍sync包中的Pool和Map的应用场景和使用方法。话不多说,让我们开始吧。
profiling 是指对应用程序的画像,画像就是应用程序使用 CPU 和内存的情况。 Go语言是一个对性能特别看重的语言,因此语言中自带了 profiling 的库,这篇文章就要讲解怎么在 golang 中做 profiling。
https://github.com/session-replay-tools/tcpcopy https://github.com/buger/goreplay https://github.com/didi/sharingan/wiki/%E9%93%BE%E8%B7%AF%E8%BF%BD%E8%B8%AA https://bou.ke/blog/monkey-patching-in-go/ https://github.com/didi/rdebug
https://github.com/apache/dubbo-go https://segmentfault.com/a/1190000022523595 可在控制面对服务的路由进行精细控制,是一个成熟 RPC 系统必备的能力之一。作为一个逐步走向成熟的 RPC 系统,Apache/dubbo-go(以下简称 dubbo-go )的最新版本 v1.4 中已经实现了 Condition Router 和 Health Instance First Router 等路由。 实现一个功能,首先要清楚其本质。那到底什么是路由规则,我们为什么需要路由规则?设想这么一个场景:现在要对某服务的新版本进行一次灰度发布,需要将一些对实验流量进行引流到灰度机器,其余流量依旧使用正常服务。此时就可以考虑使用路由策略达到目的。 路由规则( routing rule )是为了改变网络流量所经过的途径而修改路由信息的技术,通过改变路由属性(包括可达性)达到引流的目的。在发起一次 RPC 调用前,它会过滤目标服务器地址,将消费端最终发起 RPC 调用的目标范围限定在过滤后的地址列表。 目标 路由策略的关键点在于:
https://segmentfault.com/a/1190000022534841 golang Context 的使用和标准库中的Context的实现。