You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by di...@apache.org on 2020/05/08 09:32:24 UTC
[rocketmq-client-go] branch master updated: update introduction of
the go native sdk
This is an automated email from the ASF dual-hosted git repository.
dinglei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/rocketmq-client-go.git
The following commit(s) were added to refs/heads/master by this push:
new 6b7f96c update introduction of the go native sdk
6b7f96c is described below
commit 6b7f96c1a217e2ce9915d2fbbbdcb5c527a05f81
Author: ShannonDing <li...@163.com>
AuthorDate: Fri May 8 17:31:52 2020 +0800
update introduction of the go native sdk
---
docs/Introduction.md | 56 ++++++++++++++++++++++++++++++----------------------
1 file changed, 32 insertions(+), 24 deletions(-)
diff --git a/docs/Introduction.md b/docs/Introduction.md
index 2e32356..f5b8e12 100644
--- a/docs/Introduction.md
+++ b/docs/Introduction.md
@@ -3,20 +3,20 @@
### go mod
```
require (
- github.com/apache/rocketmq-client-go/v2 v2.0.0-rc1
+ github.com/apache/rocketmq-client-go/v2 v2.1.0-rc3
)
```
### Set Logger
Go Client define the `Logger` interface for log output, user can specify implementation of private.
in default, client use `logrus`.
-```go
+```
rlog.SetLogger(Logger)
```
### Send message
#### Interface
-```go
+```
Producer interface {
Start() error
Shutdown() error
@@ -27,12 +27,13 @@ Producer interface {
#### Examples
- create a new `Producer` instance
-```go
-opt := producer.ProducerOptions{
- NameServerAddr: "127.0.0.1:9876",
- RetryTimesWhenSendFailed: 2,
-}
-p := producer.NewProducer(opt)
+```
+p, err := rocketmq.NewProducer(
+ producer.WithNameServer(endPoint),
+ //producer.WithNsResovler(primitive.NewPassthroughResolver(endPoint)),
+ producer.WithRetry(2),
+ producer.WithGroupName("GID_xxxxxx"),
+ )
```
- start the producer
@@ -41,7 +42,7 @@ err := p.Start()
```
- send message with sync
-```go
+```
result, err := p.SendSync(context.Background(), &primitive.Message{
Topic: "test",
Body: []byte("Hello RocketMQ Go Client!"),
@@ -51,7 +52,7 @@ result, err := p.SendSync(context.Background(), &primitive.Message{
```
- or send message with oneway
-```go
+```
err := p.SendOneWay(context.Background(), &primitive.Message{
Topic: "test",
Body: []byte("Hello RocketMQ Go Client!"),
@@ -60,36 +61,43 @@ err := p.SendOneWay(context.Background(), &primitive.Message{
Full examples: [producer](../examples/producer)
### Consume Message
-alpha1 only support `PushConsumer`
+now only support `PushConsumer`
#### Interface
-```go
+```
PushConsumer interface {
+ // Start the PullConsumer for consuming message
Start() error
- Shutdown()
- Subscribe(topic string, selector MessageSelector,
- f func(*ConsumeMessageContext, []*primitive.MessageExt) (ConsumeResult, error)) error
+
+ // Shutdown the PullConsumer, all offset of MessageQueue will be sync to broker before process exit
+ Shutdown() error
+ // Subscribe a topic for consuming
+ Subscribe(topic string, selector consumer.MessageSelector,
+ f func(context.Context, ...*primitive.MessageExt) (consumer.ConsumeResult, error)) error
}
```
#### Usage
- Create a `PushConsumer` instance
-```go
-c := consumer.NewPushConsumer("testGroup", consumer.ConsumerOption{
- NameServerAddr: "127.0.0.1:9876",
- ConsumerModel: consumer.Clustering,
- FromWhere: consumer.ConsumeFromFirstOffset,
-})
+```
+c, err := rocketmq.NewPushConsumer(
+ consumer.WithNameServer(endPoint),
+ consumer.WithConsumerModel(consumer.Clustering),
+ consumer.WithGroupName("GID_XXXXXX"),
+ )
```
- Subscribe a topic(only support one topic now), and define your consuming function
-```go
+```
err := c.Subscribe("test", consumer.MessageSelector{}, func(ctx *consumer.ConsumeMessageContext,
msgs []*primitive.MessageExt) (consumer.ConsumeResult, error) {
- fmt.Println(msgs)
+ fmt.Printf("subscribe callback: %v \n", msgs)
return consumer.ConsumeSuccess, nil
})
```
- start the consumer(**NOTE: MUST after subscribe**)
+```
+err = c.Start()
+```
Full examples: [consumer](../examples/consumer)