Skip to content

Commit 6cef071

Browse files
author
nmalhotra
committed
Microservice framework with kafka example
1 parent b307aca commit 6cef071

File tree

685 files changed

+251593
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

685 files changed

+251593
-0
lines changed

Gopkg.lock

+177
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Gopkg.toml

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Gopkg.toml example
2+
#
3+
# Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md
4+
# for detailed Gopkg.toml documentation.
5+
#
6+
# required = ["github.com/user/thing/cmd/thing"]
7+
# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"]
8+
#
9+
# [[constraint]]
10+
# name = "github.com/user/project"
11+
# version = "1.0.0"
12+
#
13+
# [[constraint]]
14+
# name = "github.com/user/project2"
15+
# branch = "dev"
16+
# source = "github.com/myfork/project2"
17+
#
18+
# [[override]]
19+
# name = "github.com/x/y"
20+
# version = "2.4.0"
21+
#
22+
# [prune]
23+
# non-go = false
24+
# go-tests = true
25+
# unused-packages = true
26+
27+
28+
[[constraint]]
29+
name = "github.com/Shopify/sarama"
30+
version = "1.16.0"
31+
32+
[[constraint]]
33+
name = "github.com/sirupsen/logrus"
34+
version = "1.0.5"
35+
36+
[prune]
37+
go-tests = true
38+
unused-packages = true
39+
40+
[[constraint]]
41+
name = "github.com/spf13/viper"
42+
version = "1.0.2"

examples/kafka.json

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"config": {
3+
"brokers": ["0.0.0.0:9092"],
4+
"group": 0,
5+
"offset": -1,
6+
"partition": 0
7+
}
8+
}

examples/producer.go

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package main
2+
3+
import (
4+
"go-micro-framework/microservice/configuration"
5+
"go-micro-framework/microservice/server"
6+
"log"
7+
)
8+
9+
func main() {
10+
kafkacfg := configuration.MyKafkaConfig()
11+
err := kafkacfg.LoadConfig("kafka.config")
12+
if err != nil {
13+
log.Fatal("Failed to LoadConfig - %#v\n", err)
14+
return
15+
}
16+
17+
kp, err := server.MyKafkaProducer(kafkacfg)
18+
if err != nil {
19+
log.Fatal("Failed to MyKafkaProducer")
20+
return
21+
}
22+
23+
err = kp.Start()
24+
if err != nil {
25+
log.Fatal("Failed to Start Kafka Producer")
26+
return
27+
}
28+
defer kp.Stop()
29+
30+
msg := server.Message{
31+
Service: server.Service("hello"),
32+
ServiceMessage: "Nitish Malhotra",
33+
}
34+
35+
err = kp.Produce("greeter", msg)
36+
if err != nil {
37+
log.Fatal("Failed to Produce")
38+
return
39+
}
40+
}
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"config": {
3+
"brokers": ["0.0.0.0:9092"],
4+
"group": 0,
5+
"offset": -1,
6+
"partition": 0
7+
}
8+
}

examples/simple-microservice/main

11.3 MB
Binary file not shown.

examples/simple-microservice/main.go

+81
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
package main
2+
3+
import (
4+
"flag"
5+
"fmt"
6+
"go-micro-framework/examples/simple-microservice/server"
7+
"go-micro-framework/examples/simple-microservice/service"
8+
"os"
9+
10+
log "github.com/sirupsen/logrus"
11+
)
12+
13+
var debug = flag.String("debug", "debug", "Debug levels : panic,fatal,error,warn,info,debug")
14+
15+
func blockForever() {
16+
c := make(chan struct{})
17+
<-c
18+
}
19+
20+
func init() {
21+
//--- Setup the logrus logger ---
22+
log.SetFormatter(&log.TextFormatter{})
23+
log.SetOutput(os.Stdout)
24+
log.SetLevel(log.DebugLevel)
25+
}
26+
27+
func setLogLevel() {
28+
flag.Parse()
29+
switch *debug {
30+
case "panic":
31+
log.SetLevel(log.PanicLevel)
32+
break
33+
case "fatal":
34+
log.SetLevel(log.FatalLevel)
35+
break
36+
case "error":
37+
log.SetLevel(log.ErrorLevel)
38+
break
39+
case "warn":
40+
log.SetLevel(log.WarnLevel)
41+
break
42+
case "info":
43+
log.SetLevel(log.InfoLevel)
44+
break
45+
case "debug":
46+
log.SetLevel(log.DebugLevel)
47+
break
48+
default:
49+
fmt.Printf("Level %s not supported.", *debug)
50+
}
51+
fmt.Printf("=============================\n")
52+
fmt.Printf("CURRENT LOG LEVEL : %s\n", log.GetLevel().String())
53+
fmt.Printf("=============================\n")
54+
}
55+
56+
func main() {
57+
setLogLevel()
58+
59+
// Instantiate the ServiceMgr
60+
ServiceMgr, err := service.MyServiceMgr()
61+
if err != nil {
62+
log.Fatalf("Failed MyServiceMgr - %v", err.Error())
63+
return
64+
}
65+
66+
// Register your server with the microservice
67+
err = server.Register(ServiceMgr)
68+
if err != nil {
69+
log.Fatalf("Failed server Registration - %v", err.Error())
70+
return
71+
}
72+
73+
// Start all your servers registered with the microservice
74+
err = ServiceMgr.Start()
75+
if err != nil {
76+
log.Fatalf("Failed Start - %v", err.Error())
77+
return
78+
}
79+
80+
blockForever()
81+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package server
2+
3+
import (
4+
"go-micro-framework/microservice"
5+
"go-micro-framework/microservice/configuration"
6+
"go-micro-framework/microservice/server"
7+
)
8+
9+
// Register your server here. Server options are available in SDS_common
10+
// microservice/server package.
11+
func Register(ms microservice.Microservice) (err error) {
12+
kafkacfg := configuration.MyKafkaConfig()
13+
err = kafkacfg.LoadConfig("kafka.json")
14+
if err != nil {
15+
return
16+
}
17+
18+
// Instantiate the kafka server
19+
kafkaserver, err := server.MyKafkaConsumer(kafkacfg)
20+
if err != nil {
21+
return
22+
}
23+
24+
// Register the server with the microservice.
25+
// Microservice.Start() walks through all the servers registered with the microservice
26+
// and call their respective Start() routines.
27+
err = ms.RegisterServer(server.ServerType("kafka"), kafkaserver)
28+
if err != nil {
29+
return
30+
}
31+
return
32+
}

0 commit comments

Comments
 (0)