The Central Go Modules Repository

To use GoCenter:
export GOPROXY=https://gocenter.io
0
Stars
UNKNOWN
License
18
Downloads
January 1st 0001
Last Modified
Version:
Loading...

Noah

功能

  • [x] GRPC服务。
  • [x] HTTP服务。
  • [x] 健康检测。
  • [x] docker集成。

配置

以下完整配置是以docker为示例的配置,同时向下兼容指定的ip地址。

server: zeus:latest
port: 8000
mode: mobile
log_mode:
  - console
server_health: true
client_health: true
microservices:
    - zeus@120.26.88.217:12000
    - athen:latest@docker:14000
    - ceres:latest@docker
pgsql:
  addr: edoburu/pgbouncer@docker
  database: axzo
  user: dev
  password: dev
  pool_size: 1000

mysql:
  addr: root:123456@(120.26.88.217:3306)/axzo?charset=utf8&parseTime=True&loc=Local
  max_open_conn: 20
  max_idle_conn: 2

redis:
  addr: redis:latest@docker
  password:
  db: 0
  pool_size: 100
  pool_timeout: 10

配置说明

KEY 类型 说明
server string 服务名称。
port int 服务端口号。
mode string 运行模式:microservice、mobile、web。3选1
log_mode []string 日志模式:console。(其他待补充)
server_health bool 开启服务端健康检测接口。
client_health bool 开启对调用微服务的健康检测。如果本服务不需要调用任何微服务,则可以删除client_health。另外,当client端的client_health为true时,server_health必须为true。否则健康检测不启作用。
microservices []string 所需调用的微服务信息,包括服务名称、ip地址、端口号。如果ip==docker,则noah会去查询docker容器中对应的服务ip和端口,这样就不需要指定具体IP。注意:采用@docker时,只限于容器中只有一个端口,如果多个端口则需要指定具体端口。比如:athena@docker:14000, 如果本服务不需要调用任何微服务,则可以删除microservices。
xxx.addr string 如果@右边指定了'docker',则@左边的名称必须为docker中的镜像名称。

GRPC

noah.NewServer().Start()

注册服务接口

n := noah.NewServer()
register(n.GRPC())
n.Start()

func register(s *grpc.Server) {
  // 注册服务
}

微服务调用

msconn, err := noah.MsConn(微服务名称常量)
....

HTTP

noah.NewHTTPServer().StartHTTP()

注册路由接口

n := noah.NewHTTPServer()
register(n.Router())

func register(s *grpc.Server) {
  // 抒写路由。
}