我们正在寻找限制Micronaut 2.0.1公开的HTTPendpoint接受的并发连接数的最佳方法。endpoint接受图像文件,将其写入磁盘并创建缩略图。由于请求太多,我们的内存不足。
到目前为止,我们发现的是Netty线程池的设置。不过,我们怀疑这些措施是否能让我们实施一个具体的限制。它们似乎更多地与Netty事件循环线程池有关?
是否有一种行之有效的方法来实现Micronaut和Netty的背压?
没有现成的配置可以像您希望的那样强制执行并发限制。您可能希望实现一个HttpServletFilter,它跟踪当前正在执行的请求的数量,并在数量超过配置的限制时以status429 to Many requests
响应。类似于下面代码的东西应该可以工作(注意:未测试)
@Override
public Publisher<MutableHttpResponse<?>> doFilter(HttpRequest<?> request, ServerFilterChain chain) {
return Flowable.fromCallable(() -> atomicRequestCounter.incrementAndGet())
.subscribeOn(Schedulers.computation())
.flatMap(numConcurrentRequests -> {
if (numConcurrentRequests > MAX_ALLOWED_CONCURRENCY) {
return Flowable.just(HttpResponse.status(HttpStatus.TOO_MANY_REQUESTS));
} else {
return chain.proceed(request);
}
})
.doOnNext(res -> atomicRequestCounter.decrementAndGet());
}
如果您真的想将其插入Netty层,请查看ChannelPipelineCustomizer。您可以应用与上述相同的原则,并将处理程序添加到跟踪并发连接的管道中。请注意,基于过滤器的方法的优点是,它允许您强制执行对特定URI/资源的限制,而如果在网络级别强制执行,则会影响整个应用程序。
实现微博资源的第一步是创建微博数据模型,在模型中设定微博的基本特征。和 2.3 节创建的模型类似,我们要实现的微博模型要包含数据验证,以及和用户模型之间的关联。除此之外,我们还会做充分的测试,指定默认的排序方式,以及自动删除已注销用户的微博。 如果使用 Git 做版本控制的话,和之前一样,建议你新建一个主题分支: $ git checkout master $ git checkout -b us
译者:ZHHAYO 作者: Nathan Inkawhich 在本教程中,我们将深入探讨如何微调和特征提取torchvision 模型,所有这些模型都已经预先在1000类的magenet数据集上训练完成。本程将深入介绍如何使用几个现代的CNN架构,并将为微调任意的PyTorch模型建立一个直觉。 由于每个模型架构是有差异的,因此没有可以在所有场景中使用的样板微调代码。 然而,研究人员必须查看现有架
我试图理解这段代码是如何用于冲突检测的。我知道目标是一个边界框,并且我们正在测试实体的每个可能点,但是我不确定带符号移位运算符在这种情况下的用途。事实上,我甚至不明白它为什么会有用,只是它的作用。谁能详细说明一下? 可能值得注意的是,实体按像素知道其确切的x和y位置,但一个瓷砖根本不知道它的位置。天下有瓦阵,却只知其瓦位……因此,当需要进行碰撞检测时,函数必须确定从玩家位置得到哪个平铺位置。 全文
本文向大家介绍微信公众号消息类型?相关面试题,主要包含被问及微信公众号消息类型?时的应答技巧和注意事项,需要的朋友参考一下 微信目前提供了7种基本消息类型,分别为: (1)文本消息(text); (2)图片消息(image); (3)语音(voice) (4)视频(video) (5)地理位置(location); (6)链接消息(link); (7)事件推送(event) 类型。 掌握不同的消息
在上一节《实施前端微服务化的六七种方式》中,介绍了在实施微前端的过程中,我们采用的一些不同方案的架构方案。在这篇文章中,我将总结如何依据不同的情况来选择合适的方案。 快速选型指南图 我还是直接先给结论: 关键点的相关解释如下: 框架限制。在后台微服务系统里,人们使用其它语言的库来开发新的服务,如用于人工智能的 Python。但是在前端,几乎不存在这种可能性。所以当我们的前端框架只有一个时,我们在采
本文向大家介绍微信小程序 图片绝对定位(背景图片),包括了微信小程序 图片绝对定位(背景图片)的使用技巧和注意事项,需要的朋友参考一下 微信小程序 图片绝对定位 前言: 在小程序中,有时需要用到背景图片,但是如果使用background-image的话,就无法控制图片的大小,background-image一般用于将图片压缩为1像素的背景图片,然后自动填充铺满。使用背景图片的话,一般使用一些新的v