To use GoCenter:
export GOPROXY=https://gocenter.io
axzsource.com/pkg/noah
January 1st 0001
Last Modified
0
Stars
Unknown
License
74
Downloads
ReadMe
Mod File
GoDocs
New
Security
Dependencies (0)
Used By (0)
Metrics
Versions
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) {
// 抒写路由。
}