dapr / dapr/java-sdk

Enhance DaprClientBuilder to override gRPC and Http Client

Ouverte
#683 4 commentaires 3 réactions 0 personnes assignées Voir sur GitHub
P2
Langage dominant
Java
Étoiles
300
Forks
230
Merge moyen
5 j 1 h
PR mergées (30 j)
5

Description

The gRPC client and http client creation inside DaprClient is not flexible to outside users. For example when creating a grpc client, all the impactful configuration resides inside grpc ManagedChannel where you can set a sizable executor pool, timeouts etc. Same with OkHttpClient.

I locally made changes to cater this requirement. Following is the final look from the dapr client builder point of view.
` DaprClientBuilder daprClientBuilder = new DaprClientBuilder();
ManagedChannelBuilder managedChannelBuilder = Grpc.newChannelBuilder("localhost:8000", TlsChannelCredentials.create())
.executor(Executors.newFixedThreadPool(20));
DaprClient client = daprClientBuilder.withManagedGrpcChannel(managedChannelBuilder.build()).build();`

Same goes for OkHttpClient.

` DaprClientBuilder daprClientBuilder = new DaprClientBuilder();
DaprClient client = daprClientBuilder.withOkHttpClient(new OkHttpClient.Builder().readTimeout(10, TimeUnit.SECONDS)).build();`

I specifically added these methods to DaprClientBuilder directly(even though it's not aware of grpc or http specifically from the interface), to keep the implementation and current code remain same and make this change backward compatible.

Please let me know your thoughts, I can send the official PR based on your feedbacl.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par examiner DaprClientBuilder et les chemins existants de création des clients gRPC et HTTP mentionnés dans l’issue. Comparez les points d’entrée du builder demandés avec la construction actuelle et les tests, puis confirmez que les appelants peuvent fournir leurs propres clients tandis que les valeurs par défaut existantes restent inchangées ; le travail est terminé lorsque les deux exemples de remplacement fonctionnent et que le comportement existant est couvert.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
grpc, java
Domaine
api, backend
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.