Skip to content

2024

GOST中的日志

程序运行的日志无论是对开发人员还是使用人员都是一个很重要且很有价值的信息。对于开发人员可以帮助其快速定位问题,对于使用人员一方面在遇到问题时可以将日志提供给开发人员方便分析和定位问题,另一方面通过日志可以对应用的使用情况进行统计和分析。日志也是可观测性概念的组成部分,日志让我们多了一个观测和监控程序运行状态和行为的手段。

用户级别的流量统计和动态限流方案

GOST中的观测器组件可以用来对服务的连接和流量进行统计,当服务配置使用了观测器,则会周期性以事件(Event)的方式上报此服务的接收(inputBytes)和发送数据(outputBytes)总字节数。而限制器组件则可以用来限制服务的连接和流量。

有些时候可能需要对流量进行更加精细化管理。例如一个支持认证的代理服务,需要按用户进行流量统计或限速,更进一步可能还需要根据用户的实时流量来做动态限流。由于不同的使用场景可能会有比较复杂的处理逻辑,为了获得更高的灵活性和更强的扩展性,GOST本身并没有提供用户级别的限流功能,而是通过插件的方式开放给使用者来实现自己的逻辑。

利用反向代理隧道实现k8s中服务的本地调试

当前的容器,Kubernetes等云原生技术使我们的服务部署和管理更加灵活和便利,然而任何技术有利就会有弊,当一个应用运行在Kubernetes集群中时,如果需要对其进行调试则会很麻烦。

目前比较主流的解决方案是使用Telepresence等工具,将服务的流量拦截并转发到本地服务,从而实现本地环境下的开发和调试。下面我们将利用反向代理隧道来实现类似的功能。