Skip to content

gavinguo1987/gateway_demo

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Table of Contents generated with DocToc

功能点对应源码

功能点 源码地址
熔断器 源代码
单机流量统计 源代码
分布式流量统计 源代码
grpc反向代理 源代码
grpc反向代理整合中间件 源代码
grpc反向代理整合负载均衡器 源代码
grpc测试服务器、客户端、grpc-gateway 源代码
负载均衡器支持四种负载策略 源代码
负载均衡之主动探测 源代码
负载均衡之服务发现 源代码
中间件实现 源代码
观察者模式 源代码
限流器 源代码
测试下游服务器 源代码
测试下游服务器+服务注册 源代码
浏览器正向代理 源代码
http反向代理实现 源代码
http反向代理简单版 源代码
http2反向代理 源代码
https反向代理 源代码
http反向代理基本功能 源代码
http反向代理权限校验 源代码
tcp代理服务器实现 源代码
thrift服务器与客户端 源代码
websocket代理服务器 源代码
zookeeper基本使用 源代码
==基础功能== ===基础功能===
函数是一等公民 源代码
http客户端 源代码
http服务端 源代码
tcp客户端 源代码
tcp代理 源代码
tcp服务器 源代码
udp客户端 源代码
udp服务端 源代码
tcp自定义协议获取完整报文 源代码
其他正在补充... 其他正在补充...

Go 微服务网关代码使用说明

这是慕课网上的实战课程《Go 微服务网关》的代码仓。这个代码仓将不仅仅包含课程的所有源代码,还将发布课程的更新相关内容,勘误信息以及计划的更多可以丰富课程的内容,如更多分享,多多练习,等等等等。

大家可以下载、运行、测试、修改。如果你发现了任何bug,或者对课程中的任何内容有意见或建议,欢迎和我联系:)

第1-8章节功能演示代码:https://github.com/e421083458/gateway_demo

完整后端项目:https://github.com/e421083458/go_gateway

完整前端项目:https://github.com/e421083458/go_gateway_view

思维导图:点击查看

项目的预览地址:http://gateway.itpp.cn:9527/

电子邮箱:niuyufu@didiglobal.com(招php、golang中简历砸过来)

微信公众号:

image

代码帮助

运行后端代码

  • 首先git clone 本项目

git clone git@github.com:e421083458/gateway_demo.git

  • 确保本地环境安装了Go 1.12+版本
go version
go version go1.12.15 darwin/amd64
  • 下载类库依赖
export GO111MODULE=on && export GOPROXY=https://goproxy.cn
cd gateway_demo
go mod tidy
  • 在相应功能文件夹下,执行 go run main.go 即可。

运行后端项目

  • 首先git clone 本项目

git clone git@github.com:e421083458/go_gateway.git

  • 确保本地环境安装了Go 1.12+版本
go version
go version go1.12.15 darwin/amd64
  • 下载类库依赖
export GO111MODULE=on && export GOPROXY=https://goproxy.cn
cd go_gateway
go mod tidy
  • 创建 db 并导入数据
mysql -h localhost -u root -p -e "CREATE DATABASE go_gateway DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;"
mysql -h localhost -u root -p go_gateway < go_gateway.sql --default-character-set=utf8
  • 调整 mysql、redis 配置文件

修改 ./conf/dev/mysql.toml 和 ./conf/dev/redis.toml 为自己的环境配置。

  • 运行面板、代理服务

运行管理面板配合前端项目 - 达成服务管理功能

go run main.go -config=./conf/dev/ -endpoint dashboard

运行代理服务

go run main.go -config=./conf/dev/ -endpoint server

运行前端项目

  • 首先git clone 本项目
git clone git@github.com:e421083458/go_gateway_view.git
  • 确保本地环境安装了nodejs
node -v
v11.9.0
  • 安装node依赖包
cd go_gateway_view
npm install
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install
  • 运行前端项目
npm run dev

后端goland编辑器参考

  • 用 goland 打开项目目录

  • 设置 goland 支持 go mod

    • Preferences-> Go-> Go Modules(vgo)
    • 勾选 Enable Go Modules(vgo)
    • proxy 设置:https://goproxy.cn
  • 在相应文件夹下的main方法中, 点击 run go build 即可。

vscode编辑器设置参考

  • 用 vscode 打开前端项目目录

  • 安装格式化插件 ESLint、Vetur、vue-beautify

代码部署

说明一下: go_gateway_demo_view 与 go_gateway_demo 是视频时开发演示的项目。

实际放置到 github上是 go_gateway_view 与 go_gateway

实体机部署

1、每个项目独立部署

  • 前端项目一个端口
  • 接口项目一个端口
  • 使用nginx将后端接口设置到跟前端同域下访问
    server {
        listen       8882;
        server_name  localhost;
        root /Users/niuyufu/VueProjects/go_gateway_view/dist;
        index  index.html index.htm index.php;

        location / {
            try_files $uri $uri/ /index.html?$args;
        }

        location /prod-api/ {
            proxy_pass http://127.0.0.1:8880/;
        }
    }

  • 代理服务器独立部署
  • 后端项目启动脚本,所有后端只需要一个脚本了:vim onekeyupdate.sh

2、前后端合并部署

  • 前端打包dist放到后端同一项目中
  • 后端设置: vim http_proxy_router/route.go
router.Static("/dist", "./dist")
  • 启动接口项目
  • 启动代理服务器,所有项目只需要一个脚本了: vim onekeyupdate.sh

k8s部署

  • 创建docker文件 vim dockerfile_dashboard
  • 创建docker镜像:
docker build -f dockerfile_dashboard -t dockerfile_dashboard .
  • 运行测试docker镜像:
docker run -it --rm --name go_gateteway_dashboard go_gateteway_dashboard
  • 创建交叉编译脚本,解决build太慢问题 vim docker_build.sh
  • 编写服务编排文件,vim k8s_dashboard.yaml
  • 启动服务
kubectl apply -f k8s_dashboard.yaml
kubectl apply -f k8s_server.yaml
  • 查看所有部署
kubectl get all

后端环境搭建及编辑器使用 参考文档

go环境安装介绍 http://docscn.studygolang.com/doc/install

go 基础语法学习 http://tour.studygolang.com/welcome/1

10分钟学会go mod(类库管理器)使用 https://blog.csdn.net/e421083458/article/details/89762113

goland 设置支持go mod https://blog.csdn.net/l7l1l0l/article/details/102491573

goland 基本使用介绍 https://www.cnblogs.com/happy-king/p/9191356.html

前端环境搭建及编辑器使用参考文档

nodejs 安装 https://nodejs.org/zh-cn/download/

效率翻倍的 VS Code 使用指南 https://mp.weixin.qq.com/s/QpbeEgdefw2iaT8qaxkFDA

Kubernetes安装

通过Minikube快速搭建一个本地的Kubernetes单节点环境 https://m.imooc.com/article/23785

About

微服务网关后端 1-8章 功能点演示代码

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 98.6%
  • Shell 1.4%