网关/代理程序

wangkaiyue dbf3f86be0 增加重新续约 3 years ago
.idea 49bde1d7f1 tj 3 years ago
common 04472400fb ‘fix:修改’ 3 years ago
core dbf3f86be0 增加重新续约 3 years ago
etc 4a727913b7 feat:新增前置代理权益判断 3 years ago
.gitignore 56e56f06bc 修改权限校验方式 3 years ago
README.md 93bbea632f fenzhishuoming 3 years ago
gaway.sql 49bde1d7f1 tj 3 years ago
go.mod 97590f0dd0 修改ip获取 3 years ago
go.sum 439d4a5c92 提交 3 years ago
main.go 439d4a5c92 提交 3 years ago

README.md

BaseService/gateway

v1.3 处理搜索导致程序占用内存高搜索不出来问题 BaseService/gateway 剑鱼网关服务。为剑鱼网站商品标准化,提供统一权限校验,资源扣减。

网关配置

服务注册与服务发现

服务注册与发现依赖go.etcd.io/etcd/client/v3库。

服务注册

注册时向etcd中put scheme/serverCode@serverAddr key并设置租期

  • scheme 默认为 etcd:///com.gateway
  • serverCode 为服务code,在系统中需要唯一
  • serverAddr 为服务ip+端口

服务注册例子 。服务已注册,但服务不可用可能有以下操作*造成。但服务有重试机制,并常识可用节点,不会造成影响。

server := g.Server()

// 向网关注册表注册服务。*此步骤应在服务启动后注册
// NewNode可传入etcd节点,默认http://127.0.0.1:2379
closeNotify, err := node.NewNode(etcdNode1,etcdNode2...).Register(serverCode, serverPort)
if err != nil { 
    panic(err)
}

go func() {
    server.Run()
}()

// 阻塞主进程,接受退出消息。关闭服务,从注册表中删除。
// kill -9 信号接受不到,*会有2~3秒延迟。
quit := make(chan os.Signal, 1)
signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
<-quit
closeNotify()

服务发现

服务发现是网关程序依赖etcdwatch监听系统scheme中所有的服务节点。当有服务启动或关闭时,网关程序能够实时进行服务节点的增加与删除。

    //创建节点发现,并持续监听
    watchNode := node.NewNode(etcdNode1,etcdNodes2,..)
    go watchNode.NewWatcher(ctx, resolver)