微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Pushy中,为什么要使用多个ApnsClient?

如何解决在Pushy中,为什么要使用多个ApnsClient?

伙计,如果有人使用Pushy向Apple设备发送Apple通知,我对ApnsClient有一个基本问题。

文档声称“一个客户端可以配置为仅使用一个连接”,但是执行此AFAIK的唯一方法是同步使用客户端(没有lambda);也许可以这样配置,但是我不知道如何。

但是更重要的是,如果在创建客户端时可以指定一个EventLoopGroup(即线程池),那么为什么需要创建多个ApnsClient?

Pushy基于Netty构建,Netty是异步事件驱动的网络 应用程序框架。 Netty严重依赖“事件”的概念 循环”,在一个线程上按顺序执行任务。在Pushy中, 与APNs服务器的单个连接被绑定到单个事件循环, 因此是一个线程。调用者可以配置ApnsClient实例 打开与APNs服务器的多个并发连接并使用 EventLoopGroups(本质上是事件循环的线程池)各不相同 大小。

因为连接绑定到单个事件循环(绑定 到单个线程),再给ApnsClient多一点也没有意义 事件循环中的线程数比并发连接数大。有一个客户 八线程EventLoopGroup,配置为仅维护一个 连接将使用组中的一个线程,而其他七个 将保持空闲状态。在一个小的情况下打开大量的连接 线程数量可能会通过增加线程数量来降低整体效率 争夺cpu时间。

解决方法

我正在使用Pushy。可以设置并发连接数(builder.setConcurrentCOnnection())。所以我的理解是,对于一个客户端,我们可以有多个并发连接。 但是我试图弄清楚我们如何设置线程池的大小(EventPoolGroup)。线程池的大小和并发连接数不应该相等,每个线程有1个连接。 我认为仅当我们需要连接到APN服务器上的不同主题时,才需要APNSClient的多个对象。即使一个APNSClient可以连接到多个主题,但为了使不同主题的呼叫分开,我们可以拥有不同的APNS Client对象。根据流量分隔连接配置。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?