baidu / Jprotobuf-rpc-socket

Protobuf RPC是一种基于TCP协议的二进制RPC通信协议的Java实现
Apache License 2.0
527 stars 221 forks source link

升级到3.5.9还是不行,赶紧解决吧! #50

Open berbatov001 opened 6 years ago

berbatov001 commented 6 years ago

public class ID { @Protobuf private String id; } 升级了3.5.9,编译时生成的代理ID$$JProtoBufClass.class大小是0K 退回到以前的3.4.1,就没这个问题。 但是3.4.1有性能问题,之前已经提过issue了,跑一段时间之后必须重启,否则吃光CPU 。 哎,你们能不能好好测一下再发布?别砸了百度的牌子。

jhunters commented 6 years ago

把你maven编译的插件版本发出一下,是不是使用的编译插件的问题?

berbatov001 commented 6 years ago
com.baidu jprotobuf-precompile-plugin 1.2.1 true com compile precompile
jhunters commented 6 years ago

plugin请升级到 1.2.6版本, 可能是plugin依赖的jprotobuf与rpc依赖的版本有冲突导致

berbatov001 commented 6 years ago

插件升级到1.2.6 编译报错,找不到com.sun.jersey.api.client.Client这个类

Failed to execute goal com.baidu:jprotobuf-precompile-plugin:1.2.6:precompile (default) on project id-generator-server: An exception occured while executing the Java class. null: InvocationTargetException: Scan entry error: EntryData{com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient'}; <--- java.lang.ClassNotFoundException: com.sun.jersey.api.client.Client: Lcom/sun/jersey/api/client/Client; -> [Help 1]

jhunters commented 6 years ago

plugin会扫描classpath的路径,你这个问题是你设置的扫描包的路径太大了。把你的path设置到你开发@Protobuf注解的包就好了。 看一下下面 filterClassPackage 的配置

com.baidu jprotobuf-precompile-plugin 1.2.5 true com.baidu.xxxx compile precompile
berbatov001 commented 6 years ago

打包通过了,谢谢,有问题再请教你 你们这个版本是不是已经修复3.4.1那个吃光CPU的问题了?

jhunters commented 6 years ago

你说的吃光cpu还是内存?

berbatov001 commented 6 years ago

qq 20171109165617

打包过了,冒烟测试没过

berbatov001 commented 6 years ago

你好,昨天按照你说的方式测试了一下,还是有各种问题,但是回退到3.4.1版本就没问题。 能不能在3.4.1这个版本上打个补丁,专门修复好性能问题,可以吗?

jhunters commented 6 years ago

新版本还有什么问题? 另外 3.4.1的性能问题表现是什么样的,有没有具体的dupm线程?

berbatov001 commented 6 years ago

image 3.5.9启动时会这种警告,有影响吗?是需要设置哪里吗?

berbatov001 commented 6 years ago

image 3.4.1目前不定期会出现CPU升高的情况,因为3.4.1到3.5.9中间版本跨度比较大,可能引入了很多新的功能,不知是否出现其它问题。而3.4.1目前一直在用,除了运行一段时间CPU升高其它都还不错。 所以我想能不能麻烦在3.4.1的版本上发布一个小补丁。修复CPU升高的问题,其它的新功能可以不要。

jhunters commented 6 years ago

上面的警告不用关心,只是提示,没有error就可以了

jhunters commented 6 years ago

你上面使用3.5.9的问题,可以简单修改把 jprotobuf的版本手工指定为 1.10.7 `

com.baidu jprotobuf 1.10.7

`

jhunters commented 6 years ago

cpu高性能目前只有你那边反馈,能否在cpu升高时,dump一下线程堆栈给我看一下