# README
core-go
Golang WEB framework
使用
go get github.com/whileW/core-go
Components
- 配置
- grpc
- httpx:req、resp封装,自动保存请求日志
- log:日志
- orm:基于配置自动初始化orm实例
配置
code: conf/*
使用:
获取系统内置配置:conf.GetConf().SysSetting.Env
获取自定义配置: conf.GetStringd("配置名称","默认值")
获取嵌套结构配置:conf.GetChildd("配置名称").GetStringd("配置名称","默认值")
系统内置配置--环境变量
code: conf/env.go
配置项:
ENV: 环境(debug/release)
HTTPADDR: http服务端口
RPCADDR: rpc服务端口
HOST: 本机ip
SYSTEMNAME: 系统名称
CONFFROM: 从哪里读取配置(file\nacos)[默认为file]
使用:
conf.GetConf().SysSetting.Env
从file读取配置
code: conf/file.go
可选配置项(通过环境变量配置):
CFNAME: 配置文件名称
CFTYPE: 配置文件类型(暂只支持yaml类型的配置文件)
默认为:config.yaml
从nacos配置中心读取配置
code: conf/nacos.go
可选配置项(通过环境变量配置):
NACOSADDR: nacos的地址--不包括端口(端口默认8848)
NACOSDATAID: nacos中的dataid(建议程序名称) --如果不配置则采用SYSTEMNAME
ENV: 环境(nacos中的group)
部署nacos参考:
github.com/whileW/core-go/conf/nacos-docker-master
https://nacos.io/zh-cn/docs/quick-start-docker.html
https://github.com/nacos-group/nacos-docker
grpc
code: grpc/traefik.go
针对小型应用降低grpc使用成本
--利用traefik网关完成类似服务发现、服务注册
配置
traefik:traefik网关地址(127.0.0.1:80)
使用
代码:
import (
grpc2 "gitee.com/jiransoft/user/pkg/grpc"
"google.golang.org/grpc"
)
const GrpcName = "user" //需要调用的grpc名称
conn, err := grpc.Dial(grpc2.GetTraefikTarget(GrpcName), grpc.WithInsecure(),grpc.WithResolvers(&grpc2.TraefikBuilder{}))
网关配置:
[http]
[http.routers]
[http.routers.quotation_grpc]
service = "product_grpc"
rule = "Host(`grpc_quotation`)"
[http.services]
[http.services.product_grpc]
[http.services.product_grpc.loadBalancer]
[[http.services.product_grpc.loadBalancer.servers]]
url = "h2c://127.0.0.1:30011"
orm
code: orm/*
会自动根据配置生成gorm实例
使用:
orm.GetOrm().Get(DBName)
配置格式:
DB:
MYSQL:
process:
username: root
password: root
path: 127.0.0.1:3306
db_name: process_test
config: charset=utf8&parseTime=True&loc=Local
max-idle-conns: 50
max-open-conns: 50
log_mode: true
user:
username: root
password: root
path: 127.0.0.1:3306
db_name: process_test
log
code: log/*
if ENV == "debug"
开启控制台日志输出
else
关闭控制台日志输出
配置使用loki保存日志
增加配置:
{"log":{"loki":true}}
{"loki":{"addr":"http://127.0.0.1:3100"}}
file输出配置--暂未实现
使用:
log.GetLoger().Errorw("msg",arg...)
# Packages
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author