shenyu icon indicating copy to clipboard operation
shenyu copied to clipboard

[Task] add BrpcPlugin to support brpc

Open loongs-zhang opened this issue 3 years ago • 21 comments

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-brpc module, @MichaelDeSteven ;
    • [ ] add shenyu-spring-boot-starter-client-brpc module, @MichaelDeSteven ;
    • [ ] add shenyu-examples-brpc module, @MichaelDeSteven ;
    • [ ] add doc for shenyu-client-brpc, @MichaelDeSteven ;
    • [ ] support generic call for brpc, @dragon-zhang ;
    • [ ] support generic call for brpc-java, @dragon-zhang ;
    • [ ] add shenyu-plugin-brpc module with BrpcPlugin module, @MichaelDeSteven ;
    • [ ] add shenyu-spring-boot-starter-plugin-brpc module, @MichaelDeSteven ;
    • [ ] add shenyu-integrated-test-brpc module; @dragon-zhang
    • [ ] add doc for shenyu-plugin-brpc, @MichaelDeSteven ;

loongs-zhang avatar May 28 '22 14:05 loongs-zhang

can I task this task?

MichaelDeSteven avatar May 28 '22 14:05 MichaelDeSteven

sure, thanks

loongs-zhang avatar May 28 '22 14:05 loongs-zhang

I listed all the tasks. It seems that the workload is heavy. What tasks would you like to complete? @MichaelDeSteven

loongs-zhang avatar Jun 04 '22 16:06 loongs-zhang

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.

MichaelDeSteven avatar Jun 04 '22 17:06 MichaelDeSteven

If the grpc plugin part is no emergency, I can take it all.

MichaelDeSteven avatar Jun 04 '22 17:06 MichaelDeSteven

No emergency, just make it the best. As for generic call, I will try to provide this feature for brpc.

loongs-zhang avatar Jun 05 '22 04:06 loongs-zhang

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.

loongs-zhang avatar Jun 05 '22 04:06 loongs-zhang

all right. My previous solution was bytebuddy which can dynamic generate class instead of generic call. This way refers to tars-plugin.

MichaelDeSteven avatar Jun 05 '22 04:06 MichaelDeSteven

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.

MichaelDeSteven avatar Jun 05 '22 04:06 MichaelDeSteven

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.

yes, text had been fixed.

loongs-zhang avatar Jun 05 '22 04:06 loongs-zhang

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?

loongs-zhang avatar Jun 05 '22 04:06 loongs-zhang

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 do the transformation. How it's feel?

Sure. Task3 is critical. I will finish it first.

MichaelDeSteven avatar Jun 05 '22 04:06 MichaelDeSteven

BTW, have you joined the contributor wechat group ? @MichaelDeSteven

loongs-zhang avatar Jun 05 '22 04:06 loongs-zhang

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.

MichaelDeSteven avatar Jun 05 '22 05:06 MichaelDeSteven

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: @.***>

loongs-zhang avatar Jun 05 '22 05:06 loongs-zhang

@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.

MichaelDeSteven avatar Jun 10 '22 16:06 MichaelDeSteven

@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.

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.

loongs-zhang avatar Jun 11 '22 06:06 loongs-zhang

any task can i support?

847850277 avatar Jul 30 '22 08:07 847850277

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:-)

MichaelDeSteven avatar Jul 30 '22 09:07 MichaelDeSteven

Sorry, I'm learning c++ now, and contributing code to brpc will be late.

loongs-zhang avatar Aug 02 '22 12:08 loongs-zhang

Sorry, I'm learning c++ now, and contributing code to brpc will be late.

looking forward to your good news

MichaelDeSteven avatar Aug 03 '22 01:08 MichaelDeSteven

may be , we can use "github project" to "project management"

zhouyao1994 avatar Nov 05 '22 05:11 zhouyao1994