[Task] add BrpcPlugin to support brpc
Description
brpc is an industrial-grade RPC framework used throughout Baidu, with 1,000,000+ instances(not counting clients) and thousands kinds of services.
As for shenyu-client-brpc, we can use brpc-spring module to implment it.
As for shenyu-spring-boot-starter-client-brpc, we can use brpc-spring-boot-starter module to implment it.
As for shenyu-plugin-brpc, we can use brpc-java module to implment it.
Task List
-
- [ ] add
shenyu-client-brpcmodule, @MichaelDeSteven ;
- [ ] add
-
- [ ] add
shenyu-spring-boot-starter-client-brpcmodule, @MichaelDeSteven ;
- [ ] add
-
- [ ] add
shenyu-examples-brpcmodule, @MichaelDeSteven ;
- [ ] add
-
- [ ] add doc for
shenyu-client-brpc, @MichaelDeSteven ;
- [ ] add doc for
-
- [ ] support
generic callforbrpc, @dragon-zhang ;
- [ ] support
-
- [ ] support
generic callforbrpc-java, @dragon-zhang ;
- [ ] support
-
- [ ] add
shenyu-plugin-brpcmodule with BrpcPlugin module, @MichaelDeSteven ;
- [ ] add
-
- [ ] add
shenyu-spring-boot-starter-plugin-brpcmodule, @MichaelDeSteven ;
- [ ] add
-
- [ ] add
shenyu-integrated-test-brpcmodule; @dragon-zhang
- [ ] add
-
- [ ] add doc for
shenyu-plugin-brpc, @MichaelDeSteven ;
- [ ] add doc for
can I task this task?
sure, thanks
I listed all the tasks. It seems that the workload is heavy. What tasks would you like to complete? @MichaelDeSteven
Here is my progress: brpc-java is not support generic call, so this is a challenge for me. Now I have refer some doc and code and almost complete brpc plugin, but there need some debug and test. So I would like to complete brpc plugin(task 1、2、5、6、7) at lease.
If the grpc plugin part is no emergency, I can take it all.
No emergency, just make it the best. As for generic call, I will try to provide this feature for brpc.
task6 is depend on task3 and task5, so I just assign task1,2,5,7 to you first, and let's work out a solution to the remaining tasks together.
all right. My previous solution was bytebuddy which can dynamic generate class instead of generic call. This way refers to tars-plugin.
BTW, at the beginning I thought task3 is about grpc part which names shenyu-plugin-grpc. But when I look the describe again, maybe this is typo. It should display like that add shenyu-plugin-brpc.
BTW, at the beginning I thought task3 is about grpc part which names
shenyu-plugin-grpc. But when I look the describe again, maybe this is typo. It should display like that addshenyu-plugin-brpc.
yes, text had been fixed.
all right. My previous solution was
bytebuddywhich candynamic generate classinstead ofgeneric call. This way refers totars-plugin.
Sounds good, you can do this first as you think. If the brpc supports it, then I do the transformation. How it's feel?
all right. My previous solution was
bytebuddywhich candynamic generate classinstead ofgeneric call. This way refers totars-plugin.Sounds good, you can do this first as you think. If the brpc supports it, then do the transformation. How it's feel?
Sure. Task3 is critical. I will finish it first.
BTW, have you joined the contributor wechat group ? @MichaelDeSteven
all right. My previous solution was
bytebuddywhich candynamic generate classinstead ofgeneric call. This way refers totars-plugin.Sounds good, you can do this first as you think. If the brpc supports it, then I do the transformation. How it's feel?
Not yet. Maybe I can join now.
Please add wechat Z18179469818
------------------ Original ------------------ From: SongTao Zhuang @.> Date: Sun,Jun 5,2022 1:01 PM To: apache/incubator-shenyu @.> Cc: dragon-zhang @.>, Mention @.> Subject: Re: [apache/incubator-shenyu] [Task] add BrpcPlugin to support brpc(Issue #3450)
all right. My previous solution was bytebuddy which can dynamic generate class instead of generic call. This way refers to tars-plugin.
Sounds good, you can do this first as you think. If the brpc supports it, then I do the transformation. How it's feel?
Not yet. Maybe I can join now.
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>
@dragon-zhang Sorry about that I can't solve task3 currently. Which must use generic call to make it success. I have tried bytebuddy such complex way. But brpc-java has many difference with tars-java so the way isn't work it. I suppose that task3 can be done if brpc-java support generic call. After that I can continue finish other subtask during this time I can do other contribution. If there's anything I need to do,keep me informed plz.
@dragon-zhang Sorry about that I can't solve task3 currently. Which must use
generic callto make it success. I have triedbytebuddysuch complex way. Butbrpc-javahas many difference withtars-javaso the way isn't work it. I suppose that task3 can be done ifbrpc-javasupportgeneric call. After that I can continue finish other subtask during this time I can do other contribution. If there's anything I need to do,keep me informed plz.
Got it,I readjusted the task sequencing, task7,8,9,10 will be blocked now.
I will finish the task5,6 as soon as possible.
You can continue to complete other tasks. When you feel that the code of each module has been completed, you can submit PR by module.
any task can i support?
any task can i support?
Maybe you can do other contribute first? This feature need brpc support generic call. If there any task need to support I will give you. anyway, thx:-)
Sorry, I'm learning c++ now, and contributing code to brpc will be late.
Sorry, I'm learning c++ now, and contributing code to brpc will be late.
looking forward to your good news
may be , we can use "github project" to "project management"