本项目旨在使用golang 搭建一个微服务应用.
---
// gin
Frame
- app // 控制器
- conf // 配置文件
- middleward // 中间件
- models // 模型
- routes // 路由
- services // 服务层
- uitl // 工具
- main.go // 入口
// app 目录
app
- api
- v1
- goods.go
- route.go
- app.go
//conf目录
conf
- config.ini
models
- models.go
services
- xxxService.go
util
- config.go
快速回顾之前的 blog:
涉及到的问题:
简单实践步骤:
先回顾一下 bookinfo 微服务应用的端到端架构:
同理, 实现 productpage detail 服务
还需要解决的问题:
近几年诞生了很多微服务框架,比如JAVA的Spring Cloud、Dubbo;Golang的GoKit和GoMicro以及NodeJs的Seneca.几乎每种主流语言都有其对应的微服务框架.
Go在微服务框架中有其独特的优势,至于优势在哪,自行google.
①.、GoKit框架
这是一个工具包的集合,可以帮助攻城狮构建强大、可靠和可维护的微服务.提供了用于实现系统监控和弹性模式组件的库,例如日志、跟踪、限流、熔断等.
基于这个框架的应用程序架构由三个主要的部分组成:
传输层:用于网络通信,服务通常使用HTTP或者gRPC等网络传输协议,或者使用NATS等发布订阅系统相互通信.
服务成:具体的业务逻辑实现
这是一个基于Go语言实现的插件化RPC微服务框架.提供了服务发现、负载均衡、同步传输、异步通信以及事件驱动等机制,尝试简化分布式系统之间的通信,让开发者更专注于自身业务逻辑的开发.
GoMicro的设计哲学是可插拔的架构理念,提供了可快速构建系统的组件,并且可以根据自身的需求对GoMicro提供的默认实现进行定制.所有插件都可在仓库github.com/micro/go-plugins 中找到.
近期启动一个项目,业务端使用的python,要爬取多维度的数据.有两个业务模块使用的多进程(发现python多线程有弊端),其他业务打算利用go(线程和协程)的特性,以微服务的模式实现.其实直接go buildmode也可以实现,经团队讨论还是采用了微服务方案,更有长远意义
持续补充...
Go语言在云计算、大数据、微服务、高并发领域应用应用非常广泛.BAT大厂正在把Go作为新项目开发的首选语言.
Go语言能干什么?
①.、服务端开发:以前你使用C或者C++做的那些事情,用Go来做很合适,例如日志处理、文件系统、监控系统等;
以上就是土嘎嘎小编为大家整理的微服务能用go语言实现吗相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!