folx和motrix哪个好?

Folx好

Folx界面简洁美观现代化,完整中文化,高分辨率,支持断点续传,避免重复下载。下载稳定,浏览器扩展插件丰富,可自动捕捉/手动选择下载浏览器中的链接 (Safari, Firefox, Opera, Chrome)。可设置下载完成后自动睡眠/关机。

Motrix好。它是一款全能下载工具软件。支持10个任务同时下载,跨平台支持HTTP、FTP、BT的下载。

默认开放了 Aria 2 的 JSON-RPC 支持,可以兼容所有支持 Aria2 的扩展插件或工具。默认的 RPC 端口为 16800,目前暂不支持修改。如果与其他应用的端口冲突,请避免同时使用,不然可能会无法正常使用 Motrix。

任务队列,消息队列和rpc的区别是什么?

说实话,第一次看到这个问题,真心有点儿晕。在工作中,任务队列,消息队列和rpc都是常用的实践方案,但是这三者解决的问题似乎没有什么相关性。如:任务队列往往是需要大规模处理业务逻辑时,将相关的任务入队列,进行异步调用,从而解决任务阻塞的问题;消息队列是异构系统(或者说系统)之间异步通信的一种方法,主要是用来解决系统间信息同步问题的;而rpc是一种远程调用方式,是在代码的实现层面异步调用外部服务用的。就这种描述来看,三者之间的确没有什么瓜葛。

但是出于好奇,我在网上搜索了这个问题,发现知乎有相同的问题,并且有大神【灵剑】给出了比较专业的答案,我将其答案描述如下。

任务队列、消息队列、rpc是不同层次上的东西,任务队列是逻辑模型,消息队列是通信模型,RPC是包含了通信模型的编程模型(或者框架)。

消息队列(MQ)是一种能实现生产者到消费者单向通信的通信模型,一般来说是指实现这个模型的中间件,比如RabbitMQ。它可以是一个产品,或者是操作系统提供的一种服务之类。

RPC一般来说是具体指某一种RPC编程框架或协议,如JSON-RPC、GRPC等,它自己有一整套通信的规范,而在此之上实现什么功能是可以定制的。对于RPC来说,调用方不太关心底层的通信机制,只关心它能实现远程调用这一点;框架则不太关心上面承载的究竟是怎样的应用,只负责将调用过程发送到执行端,并将结果回传。

任务队列则是个逻辑上的概念,即将抽象的任务发送到执行的worker的组件,有的时候包含了后端的worker,有的时候不包含,并没有什么具体的形式,也没有什么规范。

这三者并没有特别大的联系,但也不一定是完全不同的东西,比如说RPC可以通过MQ来实现,而任务队列可以通过MQ实现,也可以利用RPC实现,底层可能都是相同的东西,但是因为暴露出了不同性质的接口所以也换了不同的名字。以上的区分也不绝对,很多情况下只是怎么方便就怎么叫。

任务队列是逻辑模型,消息队列是通信模型,RPC是包含了通信模型的编程模型(或者框架),概念清晰,很有概括性,这个答案值得读,也值得了解和学习。尤其是底层的东西可能是相同的,但是封装之后对于提供的接口和功能起不同的名字,更是软件开发中的普遍现象。

它们之间联系确实不紧密,非得区分的话。

(1)任务队列和消息队列是异步,RPC是同步处理。

(2)任务队列是业务话术,而消息队列和RPC是技术话术

RPC (远程过程调用)简单理解即把别人的系统当作自己的系统调用。

优点:

(1)引入别人的接口,把别人的系统当作自己的调用,调用方便

(2)一般是长连接,请求访问效率高。

缺点:

(1)需引用被调用系统的接口包,调用的外部系统越多,本系统将越来越庞大,陷入泥球模式。

(2)编程语言有较大限制,一般只能调用当前语言的RPC。

(3)建立的是长连接,所以会消耗一定的系统资源。不同于http的即插即用。

具体实例:一般为webservice和dubbo。

消息队列:即常用异步通讯技术,常见的有RabbitMQ, RocketMQ, ActiveMQ, Kafka

主要是通过生产消费者模式来实现两者之间的通讯,几者区别如下:

一般的业务场景异步我选择RabbitMQ,在大量数据日志处理我选择kafka。

任务队列,从本质上看是一个业务的概念。它触发的方式可以是RPC,消息队列,甚至可以是Http。

这是我的一点看法,若有其它观点可以一起留言探讨