blob: 4baa63cf4a18b3577832406eaf53f1e8f810a7c9 [file] [log] [blame] [view]
----------
## RocketMQ Client Go
### 1. Go Version
* go1.10.5 darwin/amd64
### 2. Dependency
* [librocketmq](https://github.com/apache/rocketmq-client-cpp)
### 3. Build and Install
#### macOS Platform (macOS Mojave 10.14)
* Install Compile tools (homebrew package manager)
```
1. xcode-select --install
2. brew install cmake
3. brew install automake
```
* Install dependencies
1. [Go official download](https://golang.org/dl/)
2. Get go client package
```
go get github.com/apache/rocketmq-client-go
```
3. [librocketmq](https://github.com/apache/rocketmq-client-cpp)
- `git clone https://github.com/apache/rocketmq-client-cpp`
- `cd rocketmq-client-cpp`
- `sudo sh build.sh`
- `cp bin/librocketmq.dylib /usr/local/lib`
- `sudo mkdir /usr/local/include/rocketmq`
- `sudo cp incldue/* /usr/local/incldue/rocketmq/`
#### Linux
*coming soon*
#### Windows
*coming soon*
----------
## How to use
- import package
```
import "github.com/apache/rocketmq-client-go/core"
```
- Send message
```go
func SendMessagge(){
producer := rocketmq.NewProducer(&rocketmq.ProducerConfig{GroupID: "testGroup", NameServer: "localhost:9876"})
producer.Start()
defer producer.Shutdown()
fmt.Printf("Producer: %s started... \n", producer)
for i := 0; i < 100; i++ {
msg := fmt.Sprintf("Hello RocketMQ-%d", i)
result := producer.SendMessageSync(&rocketmq.Message{Topic: "test", Body: msg})
fmt.Println(fmt.Sprintf("send message: %s result: %s", msg, result))
}
time.Sleep(10 * time.Second)
producer.Shutdown()
}
```
- Push Consumer
```go
func PushConsumeMessage() {
fmt.Println("Start Receiving Messages...")
consumer, _ := rocketmq.NewPushConsumer(&rocketmq.ConsumerConfig{
GroupID: "testGroupId",
NameServer: "localhost:9876",
ConsumerThreadCount: 2,
MessageBatchMaxSize: 16})
// MUST subscribe topic before consumer started.
consumer.Subscribe("test", "*", func(msg *rocketmq.MessageExt)rocketmq.ConsumeStatus {
fmt.Printf("A message received: \"%s\" \n", msg.Body)
return rocketmq.ConsumeSuccess})
consumer.Start()
defer consumer.Shutdown()
fmt.Printf("consumer: %s started...\n", consumer)
time.Sleep(10 * time.Minute)
}
```
- [Full example](../examples)