0%

背景

Pulsar 有提供一个查询 Broker 负载的接口:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    /**
* Get load for this broker.
*
* @return
* @throws PulsarAdminException
*/
LoadManagerReport getLoadReport() throws PulsarAdminException;

public interface LoadManagerReport extends ServiceLookupData {

ResourceUsage getCpu();

ResourceUsage getMemory();

ResourceUsage getDirectMemory();

ResourceUsage getBandwidthIn();

ResourceUsage getBandwidthOut();
}

可以返回一些 broker 的负载数据,比如 CPU、内存、流量之类的数据。

Read more »

之前有朋友问如何做集成测试,今天就重点讲讲这个集成测试在开源项目中是如何做的。

通常是需要对外提供服务的开源项目都需要集成测试:

原文链接:https://medium.com/@andreiboar/5-small-tips-i-recently-learned-in-go-cf52d50cf129

让编译器计算数组数量

我们在 Go 通常很少使用数组 arrays,一般使用切片 Slice 来代替;

但是当你需要使用的时候,如果你对需要指定数量大小感到很烦时可以使用 [...] 让编译器自动帮我们计算数组大小:

1
2
3
4
5
6
7
8
9
10
11
12
package main  

import "fmt"

func main() {
arr := [3]int{1, 2, 3}
sameArr := [...]int{1, 2, 3} // Use ... instead of 3

// Arrays are equivalent
fmt.Println(arr)
fmt.Println(sameArr)
}
Read more »

在之前写过两篇比较系统的关于 OpenTelemetry 的文章:

从基本概念到如何部署 demo 实战了解 OpenTelemetry,从那个 demo 中也可以得知整个 OpenTelemetry 体系的复杂性,包含了太多的组件和概念。

为了能更清晰的了解每个关键组件的作用以及原理,我打算分为几期来讲解 OpenTelemetry 的三个核心组件:

  • Trace
  • Metrics
  • Logs

首先以 Trace 讲起。

Read more »

原文链接: https://overcast.blog/13-kubernetes-tricks-you-didnt-know-647de6364472

使用 PreStop 优雅关闭 Pod

1
2
3
4
5
6
7
8
9
10
11
12
apiVersion: v1
kind: Pod
metadata:
name: graceful-shutdown-example
spec:
containers:
- name: sample-container
image: nginx
lifecycle:
preStop:
exec:
command: ["/bin/sh", "-c", "sleep 30 && nginx -s quit"]

PreStop 允许 Pod 在终止前执行一个命令或者是脚本,使用它就可以在应用退出前释放一些资源,确保应用可以优雅退出。

比如可以在 Nginx 的 Pod 退出前将当前的请求执行完毕。

Read more »