zoukankan      html  css  js  c++  java
  • Golang Gateway API 搭建教程

    原文链接

    随着微服务的兴起,行业里出现了非常多优秀的微服务网关框架,今天教大家搭建一套国人,用Golang写的微服务网关框架。

    这里啰嗦一句,可能到今天还有人不理解什么是微服务,为什么要用微服务。目前网上相对比较模糊,没有精确的定义,但大家的意思都差不多,这里个人通俗描述,就是小项目发展到大项目过程中,出于已维护,与稳定性等考虑,将一个整体项目分为多个微小服务。

    微服务网关的作用是在用户第一个网关服务器,你按照业务服务相关需求,给网关分流,相比云主机厂商提供的负载均衡器,强大在于你可以根据自己业务去分流,同时还以可以实现鉴权、校验、聚合、缓存等自定义服务,而云主机的负载均衡器只是一个简单按照流量给你负载均衡请求,不具有自定义编程性质。

    接下来教如何安装,以及注意事项。

    地址:

    https://github.com/fagongzi/gateway

    功能:

    • 流量控制
    • 熔断
    • 负载均衡
    • 服务发现
    • 插件机制
    • 路由(分流,复制流量)
    • API 聚合
    • API 参数校验
    • API 访问控制(黑白名单)
    • API 默认返回值
    • API 定制返回值
    • API 结果Cache
    • JWT Authorization
    • API Metric导入Prometheus
    • API 失败重试
    • 后端server的健康检查
    • 开放管理API(GRPC、Restful)
    • 支持websocket
    • 支持在线迁移数据

    1.下载

    https://github.com/fagongzi/gateway

    2.编译

    cd $GOPATH/src/github.com/fagongzi/gateway/cmd/proxy
    go build -o proxy ./...
    
    cd $GOPATH/src/github.com/fagongzi/gateway/cmd/api
    go build -o apiserver ./...

    3.ECTD安装

    Etcd是一个高可用的 Key/Value 存储系统,主要用于分享配置和服务发现。

    etcd github地址:

    https://github.com/etcd-io/etcd

    当然,你也可以用命令行安装

    1、安装

    yum install etcd

    2、修改配置文件,主要是地址,如果不是很懂,可以看下etcd官方文档

    vim /etc/etcd/etcd.conf 
    # [member] ETCD_NAME="k8s_master_ip_name" 
    #范例:
    etcd1 
    ETCD_DATA_DIR="/work/etcd" 
    ETCD_LISTEN_PEER_URLS="http://k8s_master_ip:2380" 
    ETCD_LISTEN_CLIENT_URLS="http://127.0.0.1:2379,http://k8s_master_ip:2379"

    3、启动

    systemctl daemon-reload 
    systemctl enable etcd.service 
    systemctl start etcd.service

    4、测试

    IP与端口改为配置的ip地址,如果没有使用,建议不要随意变动端口

    curl http://127.0.0.1:2379/version 

    如果返回{"etcdserver":"3.3.2","etcdcluster":"3.3.0"} 就是安装成功了

    基础软件都安装好了,我们就准备最低三台机器。

    运行环境

    我们以三台etcd、一台ApiServer,三台Proxy的环境为例

    环境信息

    组件环境说明
    etcd集群环境 192.168.1.12 配置服务器
    Proxy 192.168.1.13 代理服务器
    ApiServer 192.168.1.14 路由配置接口服务器

    1.启动 ApiServer服务

    启动ApiServer服务,看到以下截图就对了。

     
    image.png

    2.启动代理服务

    看到以下截图就对了

     
    image.png

    3.添加配置

    服务都启动后,我们添加配置路由。

    启动Proxy

    ./proxy --addr=192.168.1.200:80 --addr-rpc=192.168.1.200:9091 --addr-store=etcd://192.168.1.100:2379,192.168.1.101:2379,192.168.1.102:2379 --namespace=test
    ./proxy --addr=192.168.1.201:80 --addr-rpc=192.168.1.201:9091 --addr-store=etcd://192.168.1.100:2379,192.168.1.101:2379,192.168.1.102:2379 --namespace=test
    ./proxy --addr=192.168.1.202:80 --addr-rpc=192.168.1.202:9091 --addr-store=etcd://192.168.1.100:2379,192.168.1.101:2379,192.168.1.102:2379 --namespace=test

    用户的API接入地址可以为:192.168.1.201:80、192.168.1.201:80、192.168.1.202:80其中任意一个

    如果能访问下你后面代理的接口内容,表示成功。

    如果觉得配置服务器API,命令行麻烦,可以下载WEB UI的管理控制台。

    下载地址:

    https://github.com/fagongzi/gateway-ui-vue



  • 相关阅读:
    macOS npm install -g npm失败提示无权限
    js中的展开运算符
    vite启动项目
    export与export default区别
    vue3新特性拾遗
    isRef, isReactive 与 isReadonly的原理
    shallowReactive与reactive的原理浅析
    shallowReadonly 与 readonly原理浅析
    shallowRef与ref的原理浅析
    设计模式-资料相关
  • 原文地址:https://www.cnblogs.com/-wenli/p/11421012.html
Copyright © 2011-2022 走看看