ef

module
v0.0.0-...-81b6cf0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 10, 2020 License: Apache-2.0

README

参考文档

go-micro开发文档:https://micro.mu/docs/framework.html

protobuf开发文档:https://developers.google.com/protocol-buffers/

环境配置

安装protobuf:https://github.com/protocolbuffers/protobuf

安装protobuf-gen-go: https://github.com/golang/protobuf

安装protobuf-gen-micro: https://github.com/micro/protoc-gen-micro

set GO111MODULE=on
set GOPROXY=https://goproxy.cn,direct
go get -u -v github.com/golang/protobuf/protoc-gen-go
go get -u -v github.com/micro/protoc-gen-micro

契约编写

定义protobuf文件

syntax = "proto3";

service Greeter {
	rpc Hello(Request) returns (Response) {}
}

message Request {
	string name = 1;
}

message Response {
	string greeting = 2;
}

生成golang的接口文件

protoc.exe --proto_path=. --micro_out=. --go_out=. greeter.proto

服务编写

签发证书

mkdir ca
openssl genrsa -out ca/ca-key.pem 1024
openssl req -new -out ca/ca-req.csr -key ca/ca-key.pem -subj "/C=CN/ST=guangdong/L=shenzhen/O=company/OU=section/CN=root"
openssl x509 -req -in ca/ca-req.csr -out ca/ca-cert.pem -signkey ca/ca-key.pem -days 3650

mkdir server
openssl genrsa -out server/server-key.pem 1024
openssl req -new -out server/server-req.csr -key server/server-key.pem -subj "/C=CN/ST=guangdong/L=shenzhen/O=company/OU=section/CN=xxx.yyy.com"
openssl x509 -req -in server/server-req.csr -out server/server-cert.pem -signkey server/server-key.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -CAcreateserial -days 3650

mkdir client
openssl genrsa -out client/client-key.pem 1024
openssl req -new -out client/client-req.csr -key client/client-key.pem -subj "/C=CN/ST=guangdong/L=shenzhen/O=company/OU=CNCF/CN=example.com"
openssl x509 -req -in client/client-req.csr -out client/client-cert.pem -signkey client/client-key.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -CAcreateserial -days 3650

安装nats-server

下载nats-server https://nats.io/download/nats-io/nats-server/ nats-server 集群模式可选两种建立模式。

  1. 启动一个Seed节点,其他节点连上Seed节点后,自动获取其他节点的路由信息。
  2. 每一个节点启动的时候都配置其他节点的信息,节点启动后主动互相连接。
var qouta = []byte(`"`)

func (j *jsonValue) Bytes() []byte {

	b, err := j.Json.Bytes()
	if err != nil {
		// try return marshalled
		b, err = j.Json.MarshalJSON()
		if err != nil {
			return []byte{}
		}
		return b
	}
	return bytes.Join([][]byte{qouta,b,qouta},[]byte(""))
}

Directories

Path Synopsis
micro
pkg/micro/config/source/gitlab
Package gitlab loads changesets from a gitlab
Package gitlab loads changesets from a gitlab
nats

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL