Microservice avec Go et gRPC

Microservice avec Go et gRPC


Notre fichier Protobuf

Nous allons créer un fichier translator.proto dans le dossier proto.

syntax = "proto3"; package proto;

Nous allons déclarer dans ce fichier un service gRPC. La méthode Translate aura comme payload TranslateRequest et retournera TranslateResponse.

service Translator { rpc Translate(TranslateRequest) returns (TranslateResponse) {} }

Nous allons maintenant déclarer les messages TranslateRequest et TranslateResponse.

message TranslateRequest { string text = 1; Language language = 2; } message TranslateResponse { string text = 1; }

Petite subtilité ici, les chaînes de caractères ne sont pas compressées avec protobuf. Afin d'optimiser les traitements, on déclare pour language que les valeurs possibles sont en et fr. Pour ce faire on déclare une enum Language.

enum Language { en = 0; fr = 1; }

Notre fichier Protobuf est terminé et devrait ressembler à ça :

syntax = "proto3"; package proto; enum Language { en = 0; fr = 1; } message TranslateRequest { string text = 1; Language language = 2; } message TranslateResponse { string text = 1; } service Translator { rpc Translate(TranslateRequest) returns (TranslateResponse) {} }

Génération avec Prototool

Nous allons commencer par générer le fichier de config de Prototool.

prototool init

Nous allons maintenant éditer la config pour qu'il génère notre service gRPC en Go.

gen: go_options: import_path: translator-service/ plugins: - name: go type: go flags: plugins=grpc output: .

Nous pouvons maintenant générer les fichiers Go.

prototool gen

Dans le dossier proto , nous avons maintenant un fichier translator.pb.go.

Auteur(s)

Quentin Neyrat

Quentin Neyrat

Back-end developer @ Eleven Labs

Voir le profil

Vous souhaitez en savoir plus sur le sujet ?
Organisons un échange !

Notre équipe d'experts répond à toutes vos questions.

Nous contacter

Découvrez nos autres contenus dans le même thème

Baleine avec des conteneurs

Créer un environnement de revue avec Gitlab

Après avoir développé une nouvelle fonctionnalité pour votre application, le code est revue par l'équipe. Pour que le relecteur puisse mieux se rendre compte des changements, il est intéressant de mettre les changements à disposition dans un environnement de revue. Cet article va expliquer les étapes pour le faire avec Gitlab CI.

Comment tester son script Apache Spark avec Pytest ?

Tester son script Apache Spark avec pytest

Dans le domaine de la data, la qualité de la donnée est primordiale. Pour s'en assurer, plusieurs moyens existent, et nous allons nous attarder dans cet article sur l'un d'entre eux : tester unitairement avec Pytest.

Un long couloir fait à partir de données

Démarrer avec Apache Spark étape par étape

Le domaine de la data est présent dans le quotidien de chacun : la majorité de nos actions peut être traduite en données. Le volume croissant de ces données exploitables a un nom : "Big Data". Dans cet article, nous verrons comment exploiter ce "Big data" à l'aide du framework Apache Spark.