切换导航条
此项目
正在载入...
登录
mmm-go
/
partnermg
·
提交
转到一个项目
GitLab
转到群组
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
邮件补丁
差异文件
浏览文件
作者
唐旭辉
4 years ago
提交
1ba5b76d041c791650b98794f476529c5b5a1e03
1 个父辈
0419693c
调试
隐藏空白字符变更
内嵌
并排对比
正在显示
2 个修改的文件
包含
71 行增加
和
0 行删除
main.go
pkg/port/consumer/produce/produce.go
main.go
查看文件 @
1ba5b76
...
...
@@ -13,6 +13,7 @@ import (
_
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/log"
_
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/port/beego"
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/port/consumer"
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/port/consumer/produce"
)
func
main
()
{
...
...
@@ -37,6 +38,9 @@ func main() {
<-
consumerRun
.
IsReady
()
logs
.
Info
(
"Sarama consumer up and running!..."
)
}()
go
func
()
{
produce
.
Producer
()
}()
for
{
select
{
case
<-
sigs
:
...
...
pkg/port/consumer/produce/produce.go
0 → 100644
查看文件 @
1ba5b76
package
produce
import
(
"fmt"
"strconv"
"time"
"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/port/consumer/configs"
"github.com/Shopify/sarama"
"github.com/astaxie/beego/logs"
)
var
(
producer
sarama
.
SyncProducer
)
func
init
()
{
logs
.
Info
(
"init kafka producer, it may take a few seconds to init the connection
\n
"
)
var
err
error
mqConfig
:=
sarama
.
NewConfig
()
mqConfig
.
Producer
.
Return
.
Successes
=
true
mqConfig
.
Version
=
sarama
.
V0_10_2_1
if
err
=
mqConfig
.
Validate
();
err
!=
nil
{
msg
:=
fmt
.
Sprintf
(
"Kafka producer config invalidate. config: %v. err: %v"
,
configs
.
Cfg
,
err
)
logs
.
Info
(
msg
)
panic
(
msg
)
}
producer
,
err
=
sarama
.
NewSyncProducer
(
configs
.
Cfg
.
Servers
,
mqConfig
)
if
err
!=
nil
{
msg
:=
fmt
.
Sprintf
(
"Kafak producer create fail. err: %v"
,
err
)
logs
.
Info
(
msg
)
panic
(
msg
)
}
}
func
produce
(
topic
string
,
key
string
,
content
string
)
error
{
msg
:=
&
sarama
.
ProducerMessage
{
Topic
:
topic
,
Key
:
sarama
.
StringEncoder
(
key
),
Value
:
sarama
.
StringEncoder
(
content
),
Timestamp
:
time
.
Now
(),
}
_
,
_
,
err
:=
producer
.
SendMessage
(
msg
)
if
err
!=
nil
{
msg
:=
fmt
.
Sprintf
(
"Send Error topic: %v. key: %v. content: %v"
,
topic
,
key
,
content
)
logs
.
Info
(
msg
)
return
err
}
logs
.
Info
(
"Send OK topic:%s key:%s value:%s
\n
"
,
topic
,
key
,
content
)
return
nil
}
func
Producer
()
error
{
key
:=
strconv
.
FormatInt
(
time
.
Now
()
.
UTC
()
.
UnixNano
(),
10
)
value
:=
"this is a new kafka message!"
err
:=
produce
(
"topic_test"
,
key
,
value
)
if
err
!=
nil
{
logs
.
Info
(
"producer err:%s
\n
"
,
err
)
return
err
}
return
nil
}
...
...
请
注册
或
登录
后发表评论