有人可以解释 GCM 和 Google Pub/Sub 之间的区别吗

Posted

技术标签:

【中文标题】有人可以解释 GCM 和 Google Pub/Sub 之间的区别吗【英文标题】:Can someone explain the difference between GCM and Google Pub/Sub 【发布时间】:2016-10-10 13:12:41 【问题描述】:

谷歌确实在这里回答了这个问题

https://cloud.google.com/pubsub/faq

但我仍然不清楚每个场景将用于哪些场景?

有什么是 pub sub 可以做而 GCM 不能做的吗?

【问题讨论】:

【参考方案1】:

Google Cloud Pub/Sub 和 GCM 的主要区别在于扩展点。 GCM 旨在根据最终用户设备(例如电话)的顺序扩展到许多个人发布者和订阅者。另一方面,Cloud Pub/Sub 旨在从/向更少的发布者和订阅者扩展至非常大的吞吐量。

这两者实际上可以一起使用。想象一下,例如,您正在构建一个股票市场通知应用程序,当某些股票达到特定价格时,用户会收到通知。您设置了一项服务,该服务从各种来源提取股票价格,对其进行处理,然后通过 Cloud Pub/Sub 发布股票价格。您有一个单独的服务订阅 Cloud Pub/Sub 并获取这些股票价格。然后,它会确定应用程序的哪些用户感兴趣,并使用 GCM 向感兴趣的用户发送通知。

Cloud Pub/Sub 允许您将提取与不同来源以及向用户发送更新的服务分离。您的服务将是 Cloud Pub/Sub 的发布者和订阅者,在它们之间移动大量数据。通知单个用户的吞吐量会小得多,而且您有更多的订阅者,因此 GCM 将是用于该部分的合适系统。

【讨论】:

【参考方案2】:

Google Pub/Sub 是一种企业服务总线,当您的企业有许多系统时,您可以使用它,但是这些系统是分开的,通过它们的数据库,您可以通过企业服务总线与这些系统进行消息通信。 而 GCM(现为 Firebase Cloud Messaging(FCM))是一个通知服务器,当您可以从一个设备向其他设备通信或发送信息时,您可以使用 FCM。

【讨论】:

【参考方案3】:

Google Pub/Sub 相当于用于消息管理的传统 SOA 企业服务总线,而 GCM/Firebase 则更多用于通知服务(例如向移动设备发送通知)。 Google Pub/Sub 的主要目的是用于服务器到服务器的消息,但也可用于 GCM 的通知服务,有点像 GCM 的超级集。

【讨论】:

以上是关于有人可以解释 GCM 和 Google Pub/Sub 之间的区别吗的主要内容,如果未能解决你的问题,请参考以下文章

谷歌 GCM 推送通知服务器的 IP 范围?

应用程序服务器的 gcm 服务器示例,部署在 java 中的 google app 引擎上

Android GCM 投放监控

如何使用“google.gcm”服务?

在我的 android 应用中实现 Google Cloud Messaging

Google什么时候会停止支持GCM?