Envoyez et recevez des messages avec le SDK Apache RocketMQ 5.x pour Go. Le tableau suivant présente les exemples de code pour chaque type de message pris en charge, ainsi que les paramètres de configuration pour connecter votre instance ApsaraMQ for RocketMQ.
Exemples de code par type de message
Tous les types de messages utilisent la même implémentation de SimpleConsumer pour recevoir les messages. L'implémentation du producteur varie selon le type de message.
| Type de message | Exemple de producteur | Exemple de consommateur |
|---|---|---|
| Messages normaux | Synchrone : ExampleProducerNormalMessage.go | ExampleSimpleConsumer.go |
| Messages normaux | Asynchrone : AsyncExampleProducerNormalMessage.go | Voir ci-dessus |
| Messages ordonnés | ExampleProducerWithFifoMessage.go | Voir ci-dessus |
| Messages planifiés et différés | ExampleProducerDelayMessage.go | Voir ci-dessus |
| Messages transactionnels | ExampleProducerWithTransactionalMessage.go | Voir ci-dessus |
Paramètres
Remplacez les espaces réservés suivants dans les exemples de code par les valeurs de votre instance ApsaraMQ for RocketMQ.
| Paramètre | Exemple | Description |
|---|---|---|
Endpoint |
rmq-cn-xxx.{regionId}.rmq.aliyuncs.com:8080 |
Endpoint de l'instance. Utilisez l'endpoint public pour un accès Internet ou l'endpoint VPC pour un accès via VPC. Pour plus d'informations, consultez la rubrique Obtenir l'endpoint d'une instance. |
InstanceId |
rmq-cn-xxx |
ID de votre instance ApsaraMQ for RocketMQ. |
Topic |
normal_test |
Topic utilisé pour envoyer et consommer des messages. Créez le topic au préalable. Pour plus d'informations, consultez la rubrique Créer un topic. |
ConsumerGroup |
GID_test |
Groupe de consommateurs utilisé pour consommer des messages. Créez le groupe de consommateurs au préalable. Pour plus d'informations, consultez la rubrique Créer un groupe de consommateurs. |
AccessKey |
1XVg0hzgKm****** |
Nom d'utilisateur de l'instance. Requis pour un accès Internet. Pour un accès VPC, ce paramètre n'est nécessaire que si l'instance est serverless et si l'authentification gratuite dans les VPC est désactivée. Pour plus d'informations, consultez la rubrique Obtenir le nom d'utilisateur et le mot de passe d'une instance. |
SecretKey |
ijSt8rEc45****** |
Mot de passe de l'instance. Requis pour un accès Internet. Pour un accès VPC, ce paramètre n'est nécessaire que si l'instance est serverless et si l'authentification gratuite dans les VPC est désactivée. Pour plus d'informations, consultez la rubrique Obtenir le nom d'utilisateur et le mot de passe d'une instance. |
Accéder à une instance serverless via Internet
Pour accéder à une instance ApsaraMQ for RocketMQ serverless via Internet, ajoutez les champs NameSpace et Credentials à la configuration du SDK.
Remarque
Remplacez InstanceId par l'ID réel de votre instance.
Configuration du producteur
producer, err := rmq_client.NewProducer(&rmq_client.Config{
Endpoint: Endpoint,
NameSpace: "InstanceId",
Credentials: &credentials.SessionCredentials{
AccessKey: AccessKey,
AccessSecret: SecretKey,
},
},
Configuration du consommateur
simpleConsumer, err := rmq_client.NewSimpleConsumer(&rmq_client.Config{
Endpoint: Endpoint,
ConsumerGroup: ConsumerGroup,
NameSpace: "InstanceId",
Credentials: &credentials.SessionCredentials{
AccessKey: AccessKey,
AccessSecret: SecretKey,
},
},