再见go-micro!企业项目迁移go-zero全攻略(一)


当前第2页 返回上一页

嗯,有的同学说,阿里云k8s好用是好用,可是我不会写or不想写Dockerfile,不会写k8s的yaml or 不想写,没关系,goctl说放开它,让我来

生成 Dockerfile

$ goctl docker -go user.go 
复制代码

生成k8s yaml

$ goctl kube deploy -name user-api -namespace blog -image user:v1 -o user.yaml -port 2233复制代码

所以,就是这么简单

访问流程

app/web/pc 透过防火墙,首先访问到阿里云的负载均衡SLB,同时SLB可以将你的后端服务器ip隐藏起来,同时可以预防DDOS***,虽然有额度的,但是好过没有~~,然后SLB访问到前面的nginx,nginx作为代理使用,k8s中的service通过 nodeport方式暴露出来在nignx中代理到该service,同时在nginx中上报日志到kafka,然后api可以在etcd中拿到多个rpc节点,调用多个后端rpc服务,rpc负责跟db交互、或者调用其他rpc获取数据(当然api、rpc之间是通过etcd动态发现的)返回给api,api就是聚合数据,然后层层返回到客户端。

整体架构都是高可用高可用

项目设计

项目地址:github.com/Mikaelemmmm…

go的项目比较灵活不像java已经形成统一标准化了,所以对于不同项目的结构都不一样,我的做法是如下:

1610618953808

整个项目使用的一个大仓,项目fishtwo根目录下:

  • app : 应用内部程序

  • build:构建、以及脚本等

  • lib:应用程序用到的内部库

  • app下分为3个模块:

    • gateway:api服务
    • services: rpc服务
    • jobs:日常要处理的任务(这个可以使用 go-zero 作者的 go-queue ,测试了下很好用,哈哈,后面搞好也会写进来)

下一篇我们来看看:

  1. 怎么改造 gateway 服务
  2. 怎么改造 rpc 服务
  3. jobs 怎么定义?怎么和项目结合?

未完待续~~~


框架地址

github.com/tal-tech/go…

欢迎使用 go-zero 并 star 支持我们 ????


本文来自:51CTO博客

感谢作者:wx607fee5b9d0e6

查看原文:再见go-micro!企业项目迁移go-zero全攻略(一)

返回前面的内容

相关阅读 >>

Go 大数据生态迎来重要产品 cds

源码读起来,Go源码共读计划

Go - 统一定义 api 错误码

Gosumdb 设置私库

了解Go中如何使用包、变量和函数

Golang基础-内置数据结构

Golang如何接收前端的参数

涂鸦智能 dubbo-Go 亿级流量的实践与探索

曹大谈 dubbo mesh : 在 mosn 中玩转 dubbo-Go

centos7 安装Godoc

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...