课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着云技术的不断发展,越来越多的程序员都掌握了不同的应用开发方法和框架,下面我们就一起来了解一下具体内容吧。
1.流式处理和队列的合体
Pulsar就像是一个合二为一的产品,不仅可以像Kafka那样处理高速率的实时场景,还能支持标准的消息队列模式,比如多消费者、失效备援订阅和消息扇出,等等。Pulsar会自动跟踪客户端的读取位置,并把这些信息保存在高性能的分布式ledger(BookKeeper)当中。
与Kafka不一样的是,Pulsar具备传统消息队列(如RabbitMQ)那样的功能,因此,只需要运行一个Pulsar系统就可以同时处理实时流和消息队列。
2.支持分区,但不是必需的
如果你用过Kafka,就一定知道分区是怎么回事。Kafka中的所有主题都是分区的,这样可以增加吞吐量。通过分区,单个主题的处理速率可以得到大幅提升。但如果某些主题不需要太高的处理速率,那该怎么办?对于这类情况,就不需要考虑分区了,以避免复杂的API和管理方面的工作,这样不是更好吗?
Pulsar就可以做到。如果你只需要一个主题,而不需要分区,那使用一个主题就好了。如果你需要使用多个消费者实例来提升处理速率,其实也不需要使用分区,因为Pulsar的共享订阅可以达到你的目的。
如果你确实需要分区来进一步提升性能,你也可以使用分区。
3.日志固然不错,但ledger更胜一筹
Kafka开发团队预见了日志对于一个实时数据交换系统的重要性。因为日志是通过追加的方式写入系统的,所以数据写入速度很快。又因为日志中的数据是串行的,所以可以按照写入的顺序快速读取数据。相比随机读取和写入,串行读取和写入速度更快。对于任何一个提供数据保证的系统来说,持久化存储方面的交互都是一个瓶颈,而日志抽象大限度地提升了这方面的效率。
日志固然是好,但当它们的量增长到很大的时候,也会给我们带来一些麻烦。在单台服务器上保存所有日志已经成为一个挑战。在服务器存储被日志填满之后该怎么办?如何进行伸缩?或者保存日志的服务器宕机,需要重新从副本创建新的服务器,该怎么办?将日志从一台服务器拷贝到另一台服务器是很耗费时间的,特别是如果你想要在保持系统实时数据的情况下完成这个操作就更难了。
Pulsar对日志进行分段,从而避免了拷贝大块的日志。它通过BookKeeper将日志分段分散到多台不同的服务器上。也就是说,日志并不是保存在单台服务器上,所以任何一台服务器都不会成为整个系统的瓶颈。这样就可以更容易地处理故障,要进行伸缩也很容易,只需要加入新的服务器,不需要进行再均衡。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。