Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Question] How to make kratos grpc transfer data larger than 4MB in size ? #3099

Closed
Tsan1024 opened this issue Nov 26, 2023 · 4 comments
Closed
Labels
question Further information is requested

Comments

@Tsan1024
Copy link

Please see the FAQ in our main README.md before submitting your issue.

@Tsan1024 Tsan1024 added the question Further information is requested label Nov 26, 2023
Copy link

dosubot bot commented Nov 26, 2023

🤖

Hello @Tsan1024! I'm Dosu, a bot here to assist while we wait for a human maintainer. I'm here to help you debug issues, answer your questions, and guide you on how to contribute to the repository. Looking forward to helping you solve your issue!

To configure Kratos to transfer gRPC data larger than 4MB in size, you can use the grpc.MaxRecvMsgSize and grpc.MaxSendMsgSize options. These options allow you to set the maximum message size in bytes that the gRPC client can receive and send, respectively.

You can use these options with the WithOptions function in the ClientOption type. Here's an example of how you can do this:

maxSize := 1024 * 1024 * 10 // 10MB
conn, err := grpc.Dial(
    address,
    WithOptions(
        grpc.WithDefaultCallOptions(
            grpc.MaxCallRecvMsgSize(maxSize),
            grpc.MaxCallSendMsgSize(maxSize),
        ),
    ),
)

In this example, maxSize is set to 10MB, which is larger than the default maximum message size of 4MB. This allows the gRPC client to send and receive messages up to 10MB in size.

You can find more information about this in the transport/grpc/client.go file in the Kratos repository.

As for the default maximum message size for gRPC in Kratos, I wasn't able to find an answer within the repository. It's possible that the answer may be available elsewhere or I could have missed it. If you have any further questions or need more clarification, feel free to ask.

Sources


This response is meant to be useful and save you time. It is not meant to be a precise solution, but rather a starting point for your own research.

Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it is irrelevant.

If you want to continue the conversation, start your reply with @dosu-bot.

@Tsan1024
Copy link
Author

ok

@shenqidebaozi
Copy link
Sponsor Member

@dosu-bot
The code should be as follows, where grpc2 is an alias for google.golang.org/grpc

conn, err := grpc.Dial(
    address,
    grpc.WithOptions(
        grpc2.WithDefaultCallOptions(
            grpc2.MaxCallRecvMsgSize(maxSize),
            grpc2.MaxCallSendMsgSize(maxSize),
        ),
    ),
)

Copy link

dosubot bot commented Dec 15, 2023

🤖

It looks like you're trying to set the maximum message sizes for gRPC calls in your Go code. However, the grpc.Dial function doesn't directly accept grpc.WithOptions. Instead, you can achieve this by creating a DialOption with the desired call options.

Here's how you can achieve this:

import (
    "google.golang.org/grpc"
    "google.golang.org/grpc/credentials"
)

// Create a DialOption with the desired call options
opts := []grpc.DialOption{
    grpc.WithDefaultCallOptions(
        grpc.MaxCallRecvMsgSize(maxSize),
        grpc.MaxCallSendMsgSize(maxSize),
    ),
}

// Dial the gRPC server with the created options
conn, err := grpc.Dial(address, opts...)

In this example, we create a slice of grpc.DialOption and pass it to the grpc.Dial function using the spread operator .... This allows us to set the maximum message sizes for gRPC calls.

If you have any more questions or need further assistance, feel free to ask!


This response is meant to be useful and save you time. It is not meant to be a precise solution, but rather a starting point for your own research.

Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it is irrelevant.

If you want to continue the conversation, start your reply with @dosu-bot.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants