-
Notifications
You must be signed in to change notification settings - Fork 9
微服务编写
wangyu edited this page Nov 9, 2018
·
1 revision
syntax = "proto3";
//service name is kibana
service Kibana {
//service method is write
rpc Write(WriteRequest) returns (WriteResponse) {}
}
//writer request struct
message WriteRequest {
string tag = 1;
string info = 2;
string level = 3;
}
//writer response struct
message WriteResponse {
int32 code = 1;
string message = 2;
map<string, string> data = 3;
}
protoc --proto_path=.:. --micro_out=. --go_out=. kibana.proto
package main
import (
proto "micro-srv/service/kibana/proto"
"micro-srv/service/kibana/logics"
"fmt"
"micro-srv/common"
"golang.org/x/net/context"
)
type Kibana struct{}
const (
SRV_PORT = 50061
SRV_NAME = "kibana"
)
func (k *Kibana) Write(ctx context.Context, req *proto.WriteRequest) (rsp *proto.WriteResponse, err error) {
rsp.Code = 0
rsp.Message = "success"
rsp.Data = map[string]string{"tag":req.Tag,"info":req.Info,"level":req.Level}
err = logics.WriteLog(req.Tag, req.Info, req.Level)
return rsp, err
}
func main() {
server, listener, err := common.Register(SRV_NAME, SRV_PORT)
if err != nil {
fmt.Println(err.Error())
}
proto.RegisterKibanaServer(server, &Kibana{})
err = server.Serve(listener)
if err != nil {
fmt.Println(err.Error())
}
}
consul agent -dev &
cd kibana && go run main.go &
email: [email protected]