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

原文地址:https://www.cnblogs.com/-wenli/p/11421012.html

时间: 2024-11-02 13:07:29

Golang Gateway API 搭建教程的相关文章

spring cloud 2.x版本 Gateway路由网关教程

前言 本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3 本文基于前两篇文章eureka-server.eureka-client.eureka-ribbon和eureka-feign的实现. 参考 eureka-server eureka-client eureka-ribbon eureka-feign 概念 Spring Cloud Gateway是Spring Cloud的一个新项目,该项目是基于Spring5.0,Sprint B

C中级 MariaDB Connector/C API 编程教程

引言 - 环境搭建 首先开始环境搭建. 主要在Window 10 + Visual Studio 2015 上构建使用 mariadb connector/c api 进行数据操作开发. 为什么选择在window上搭建开发环境呢? 最核考虑是 更 方便 看源码!!! 记得以前也写过一个在ubuntu上mariadb api开发教程, 有兴趣也可以参照看一下, 数据库层api是一样的. c基础 mariadb处理简单案例 http://www.cnblogs.com/life2refuel/p/5

windows下vue.js开发环境搭建教程

这篇文章主要为大家详细介绍了windows下vue.js开发环境搭建教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 最近,vue.js越来越火.在这样的大浪潮下,我也开始进入vue的学习行列中,在网上也搜了很多教程,按着教程来做,也总会出现这样那样的问题(坑啊,由于网上那些教程都是Vue.js 1.x版本的,现在用Vue.js 的构建工具都已经升级到2.0版本了),经过了一段时间的摸索和看官方的教程和api,才了解到2.0版本在1.0版本的基础上做了好多调整,废弃了好多api.废话不多说

EOS主网搭建教程--&&--搭建节点

EOS主网搭建教程: 1.git clone https://github.com/EOS-Mainnet/eos.git --recursive 2.cd eos 3.git tag (查看有哪些分支) git checkout mainnet-1.0.10(切换分支) git branch (查看现在所在的分支) 4.git submodule update --init --recursive 5../eosio_build.sh 6.cd build 7.sudo make instal

spring cloud 2.x版本 Gateway动态路由教程

摘要 本文采用的Spring cloud为2.1.8RELEASE,version=Greenwich.SR3 本文基于前面的几篇Spring cloud Gateway文章的实现. 参考 Gateway路由网关教程 Gateway自定义过滤器教程 前言 写了几篇关于Spring Cloud Gateway的文章后发现,Gateway涉及的知识范围太广了,真是深刻体会了"一入Spring cloud深似海". 现实生产环境中,使用Spring Cloud Gateway都是作为所有流量

圆通快递单号查询接口物流路由跟踪信息快递鸟api对接教程

看完快递鸟api对接教程这篇文章,然后把源码复制到你的项目上,就能快速完成圆通快递接口对接.更适合刚入门的菜鸟,调用快递鸟的圆通快递查询API接口,能查询到圆通快递单号从收件.运输,到转运中心,派送到签收等各个环节的物流发货状态.快递鸟api接口不区分开发语言,支持Java,C#,PHP,Python,ObjectC等开发语言的程序调用.下面具体讲解实现过程. 1.完成前期准备工作 1.1,去快递鸟官网免费注册一个账号 1.2,免费获得一个apiKey(接口权限验证需要), 获取用户ID和Api

中通快递-单号查询接口-物流路由跟踪信息快递鸟api对接教程

前言 看完快递鸟api对接教程这篇文章,然后把源码复制到你的项目上,就能快速完成中通快递接口对接.更适合刚入门的菜鸟,调用快递鸟的中通快递查询API接口,能查询到中通快递单号从收件.运输,到转运中心,派送到签收等各个环节的物流发货状态.快递鸟api接口不区分开发语言,支持Java,C#,PHP,Python,ObjectC等开发语言的程序调用.下面具体讲解实现过程. 目录 1.完成前期准备工作 2.API接口 3.请求参数(Headers) 4.请求参数(Body) 5.返回参数(Return)

聚币网API使用教程 demo

原文 http://30daydo.com/article/181 目前还在完善,等功能完善了,就更新到csdn. 更新 2017-05-27 官方有API的文档,可是这个文档就像一个草稿一样,两个基本例子都没有. 所以自己摸索一下,自己写一个现成的例子给大家,可以有个参考. 首先看一下官方的API文档: 一.API使用说明 1.请求过程说明 1.1 构造请求数据,用户数据按照Jubi提供的接口规则,通过程序生成签名和要传输给Jubi的数据集合: 1.2 发送请求数据,把构造完成的数据集合通过P

Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程

这篇文章主要介绍了Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程,需要的朋友可以参考下 准备篇 一.环境说明: 操作系统:Windows Server 2012 R2 PHP版本:php 5.5.8 MySQL版本:MySQL5.6.15 二.相关软件下载: 1.PHP下载地址: http://windows.php.net/downloads/releases/php-5.5.8-nts-Win32-VC11-x86.zip 2.MySQL下载地址: