Code Monkey home page Code Monkey logo

Comments (32)

andot avatar andot commented on August 11, 2024

嗯,携手你我他,推广靠大家

from hprose-java.

kris-zhang avatar kris-zhang commented on August 11, 2024

如果能够做一些基准测试就好了

from hprose-java.

andot avatar andot commented on August 11, 2024

@kris-zhang 欢迎提交测试代码

from hprose-java.

kris-zhang avatar kris-zhang commented on August 11, 2024

咱这个有什么优势么?或者给一个vs对比啥的

from hprose-java.

andot avatar andot commented on August 11, 2024

跨语言,常用语言支持的最多。动态 RPC,无需中间语言。类型自动转换,接口定义成什么类型,就自动转换成什么类型,而且是直接反序列化为接口指定的类型(所以没有二次转换的开销)。不仅仅是 RPC,还支持订阅推送服务。性能比 thrift、grpc 之类的静态 RPC 还要快,而且是快很多。松散耦合,服务本身跟 hprose 没有任何绑定关系,也就是说你的服务代码里不需要引入任何 org.hprose 的包,所以你的服务代码在没有 hprose 的环境下仍然可以被复用。易用性也是所有 RPC 中最好的,即使不看文档也能秒懂怎么用。

from hprose-java.

xclouder avatar xclouder commented on August 11, 2024

"性能比 thrift、grpc 之类的静态 RPC 还要快,而且是快很多"
这样说口说无凭 甚至有点让人反感,还是给出个对比比较好,如性能、流量等

from hprose-java.

andot avatar andot commented on August 11, 2024

就算我给出对比,你也会说老王卖瓜,自卖自夸。所以,不如你自己测试一下,你自己跑的数据应该最能让你心服口服。

from hprose-java.

xclouder avatar xclouder commented on August 11, 2024

@andot 不要误会,我就是给个建议。毕竟用数据说话更有说服力

from hprose-java.

andot avatar andot commented on August 11, 2024

@xclouder 我的意思是,我自己评测的数据同样没有说服力,评测数据由第三方给出才有说服力,所以,评测的事情还要是靠你们大家了。

from hprose-java.

jiangbaowei2 avatar jiangbaowei2 commented on August 11, 2024

@andot 推送服务都可以应用到哪些方面 ,和MQ的差别 比如一些消息中间件

from hprose-java.

andot avatar andot commented on August 11, 2024

MQ是个数据中转站,生产者的客户端往 MQ 里填数据,消费者的客户端从 MQ 里取数据。当然取数据这个过程可以通过订阅的方式来实现,之后 MQ 会把生产者发送给 MQ 的数据推送给消费者。

所以对于 MQ 的推送来说,是三方通讯:生产者 -> MQ -> 消费者。

Hprose 的推送是直接在服务器端的服务方法中,推送数据给客户端,属于两方通讯。所以,可以在这个基础上,直接通过 Hprose 服务来实现一个 MQ。

from hprose-java.

wty007 avatar wty007 commented on August 11, 2024

跨语言、轻量、简单易用确实不错,而且性能也不差!
如果能加入“服务发现/治理、高可用”这样就更好了!dubbo的服务治理+Thrift的性能就完美了!

from hprose-java.

andot avatar andot commented on August 11, 2024

2.0 已经支持高可用了。服务发现/治理后面会单独做几个项目:hprose-registry,hprose-agent,hprose-manager,来实现松耦合跨语言的服务发现/治理。

from hprose-java.

wty007 avatar wty007 commented on August 11, 2024

服务治理打算怎么做,用consul、zookeeper吗?类似于微博的motan那样。

from hprose-java.

andot avatar andot commented on August 11, 2024

我打算用 hprose 2.0 for golang 来做,服务注册和发现服务本身就是一个 hprose 服务,这样所有的 hprose 客户端就都可以直接使用了。

from hprose-java.

lichangmao avatar lichangmao commented on August 11, 2024

稳定性怎么样呢?

from hprose-java.

pavlelee avatar pavlelee commented on August 11, 2024

@lichangmao 稳定性可以,我们项目面对千万用户已经在用了

from hprose-java.

wty007 avatar wty007 commented on August 11, 2024

@andot 服务治理/服务发现 如果能出 java版的就nice了!强烈建议!

from hprose-java.

andot avatar andot commented on August 11, 2024

@wty007 hprose-registry 本身就是一个 hprose 服务,是一个独立的可执行程序,配置好参数就运行了,所以它是跨语言的,不需要编程,跟用什么语言实现没关系。使用 golang 实现是因为部署时不需要任何依赖,而使用 Java 实现的话,用户使用时,至少需要安装 Java 运行时,这对于不需要 Java 的用户来说,不方便。

from hprose-java.

alwaying avatar alwaying commented on August 11, 2024

我想问下,如果我想设置调用方法参数必填和不必填,能不能通过@annotation的形式来做,还是必须得在服务端自己重新写处理逻辑

from hprose-java.

andot avatar andot commented on August 11, 2024

@LanayaTA Java 支持不同个数参数重载的方法,你可以通过重载来实现必填和不必填的同名方法重载。例如:

class Hello {
    String hello(String name) {
        return "Hello " + name + "!";
    }
    String hello() {
        return hello("World");
    }
}

例如你发布了这个方法,客户端不带参数调用时,返回 "Hello World!",带参数时返回 "Hello " + 你的参数 + "!"。

也就是你本地怎么用,远程就怎么用(不过不支持参数个数相同的同名方法重载)。

@annotation 方式的可选参数我没见过,java 支持这种方式吗?

from hprose-java.

alwaying avatar alwaying commented on August 11, 2024

@andot 其实我想问的是,关于调用函数参数的预处理那些,就是判断非不非空,长度,什么的,这些基础校验机制

from hprose-java.

andot avatar andot commented on August 11, 2024

@LanayaTA 这些功能没有自带,但是可以通过自定义 Hprose 中间件来实现。自己写一个可以处理这个的 Hprose 调用中间件就可以了。

不内置对服务方法使用各种 annotation 的原因是,这会造成服务和 hprose 紧耦合的关系,而 hprose 是希望服务本身独立于 hprose,在没有 hprose 的情况下仍然可以复用。所以 hprose 不自带这种功能,但是 hprose 提供的调用中间件可以实现各种特殊功能的定制,也包括这个。

使用这种自己定制的方式,你可以让你定制的功能跟你的服务紧耦合,但是跟 hprose 之间不存在紧耦合关系,所以你定制的这些 annotation 和你的服务仍然可以在脱离 hprose 的情况下复用。

关于中间件的使用方式,可以参见文档:调用中间件

其中参数 context,可以转型为 ServiceContext 类型,通过该类型,你可以获取到调用的实际方法,之后获取上面定义的各种 annotation,然后你就可以进行统一的处理了。

from hprose-java.

recyclebinA126 avatar recyclebinA126 commented on August 11, 2024

请问怎么传输文件?

from hprose-java.

andot avatar andot commented on August 11, 2024

@recyclebinA126 传 byte[]

from hprose-java.

lasting0001 avatar lasting0001 commented on August 11, 2024

请问一下这么多语言版本都是你一个人写的么

from hprose-java.

lasting0001 avatar lasting0001 commented on August 11, 2024

不好意思请问一下,传输数据量能多少K

from hprose-java.

andot avatar andot commented on August 11, 2024

大部分是我写的,也有一些版本是其他开发者写的,比如C++、Rust 等版本是 @laoye 写的。

传输的数据量理论上最大是 2GB,实际上可能要小于这个数。

from hprose-java.

recyclebinA126 avatar recyclebinA126 commented on August 11, 2024

请问Delphi版什么时候可以支持TCP?

from hprose-java.

andot avatar andot commented on August 11, 2024

TCP 客户端实现比较麻烦,所以暂时没时间来做。

from hprose-java.

bullub avatar bullub commented on August 11, 2024

@andot 看了一下hprose-registry,hprose-agent,hprose-manager里面还是空空如也,这三个东西出来之后应该会有更多人使用,没有这些,服务不好管,特别对于我这样的小白

from hprose-java.

andot avatar andot commented on August 11, 2024

@bullub 欢迎提交代码到那三个仓库中。

from hprose-java.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.