登录
首页 >  Golang >  Go问答

go中如何实现简单的流量整形

来源:stackoverflow

时间:2024-03-21 12:12:32 266浏览 收藏

在 Go 中实现简单的流量整形器时,需要半定期地调用输出函数。可以通过使用标准库中的 time.Ticker 来实现,将其配置为每 1 毫秒刷新输出。这将确保以相对恒定的速率输出整数,从而实现平滑的流量整形。

问题内容

我正在尝试在 go 中实现简单的流量整形器作为练习。

API 是: Push(int):将一个 int 放入整形器中 out():从整形器输出 1 个或多个 int。

push是客户端调用的,速率无法控制。 out 大约每 1ms 调用一次,可以输出 1 个或多个整数,并试图保持每 1s r 个整数的恒定输出率,但如果整形器的内部缓冲区有被填满的危险,则可以输出更多。然而,输出应该尽可能均匀。例如: 输出: 1 1 2 2 2 1 优于 输出:1 1 5 1 1

因为第二个示例是突发的(有 5 个整数的输出)。

我知道如何使用漏桶算法来做到这一点。

我的问题: 如何在 Go 中实现大约以 1ms 为周期半定期调用输出?


解决方案


如何在 Go 中实现大约以 1ms 为周期半定期调用输出?

使用标准 time.Ticker,配置为刷新输出 every 1 millisecond

终于介绍完啦!小伙伴们,这篇关于《go中如何实现简单的流量整形》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>