Files
EdgeAPI/internal/apis/api_node.go

72 lines
2.0 KiB
Go
Raw Normal View History

2020-07-21 17:27:00 +08:00
package apis
import (
"errors"
"github.com/TeaOSLab/EdgeAPI/internal/configs"
2020-07-24 09:17:48 +08:00
"github.com/TeaOSLab/EdgeAPI/internal/rpc/services"
2020-07-22 22:17:53 +08:00
"github.com/TeaOSLab/EdgeAPI/internal/utils"
2020-09-13 20:37:28 +08:00
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
2020-07-21 17:27:00 +08:00
"github.com/iwind/TeaGo/logs"
"google.golang.org/grpc"
"net"
"os"
"strconv"
)
var sharedAPIConfig *configs.APIConfig = nil
type APINode struct {
}
func NewAPINode() *APINode {
return &APINode{}
}
func (this *APINode) Start() {
logs.Println("[API]start api node, pid: " + strconv.Itoa(os.Getpid()))
config, err := configs.SharedAPIConfig()
if err != nil {
logs.Println("[API]start failed: " + err.Error())
return
}
sharedAPIConfig = config
2020-07-22 22:17:53 +08:00
// 设置rlimit
_ = utils.SetRLimit(1024 * 1024)
2020-07-21 17:27:00 +08:00
// 监听RPC服务
logs.Println("[API]start rpc: " + config.RPC.Listen)
err = this.listenRPC()
if err != nil {
logs.Println(err.Error())
return
}
}
// 启动RPC监听
func (this *APINode) listenRPC() error {
listener, err := net.Listen("tcp", sharedAPIConfig.RPC.Listen)
if err != nil {
return errors.New("[API]listen rpc failed: " + err.Error())
}
rpcServer := grpc.NewServer()
2020-07-24 09:17:48 +08:00
pb.RegisterAdminServiceServer(rpcServer, &services.AdminService{})
2020-07-29 19:02:28 +08:00
pb.RegisterNodeGrantServiceServer(rpcServer, &services.NodeGrantService{})
pb.RegisterServerServiceServer(rpcServer, &services.ServerService{})
pb.RegisterNodeServiceServer(rpcServer, &services.NodeService{})
pb.RegisterNodeClusterServiceServer(rpcServer, &services.NodeClusterService{})
2020-08-30 16:12:00 +08:00
pb.RegisterNodeIPAddressServiceServer(rpcServer, &services.NodeIPAddressService{})
2020-09-06 16:19:54 +08:00
pb.RegisterAPINodeServiceServer(rpcServer, &services.APINodeService{})
2020-09-13 20:37:28 +08:00
pb.RegisterOriginServerServiceServer(rpcServer, &services.OriginServerService{})
2020-09-15 14:44:11 +08:00
pb.RegisterHTTPWebServiceServer(rpcServer, &services.HTTPWebService{})
pb.RegisterReverseProxyServiceServer(rpcServer, &services.ReverseProxyService{})
2020-09-16 09:09:21 +08:00
pb.RegisterHTTPGzipServiceServer(rpcServer, &services.HTTPGzipService{})
2020-07-21 17:27:00 +08:00
err = rpcServer.Serve(listener)
if err != nil {
return errors.New("[API]start rpc failed: " + err.Error())
}
return nil
}