go-micro

Nacos Go 微服务生态系列(一)| Dubbo-go 云原生核心引擎探索

我与影子孤独终老i 提交于 2021-01-09 23:55:06
简介: 作为微服务框架的核心引擎--注册中心,是必不可缺少的组件,市面已经有多款注册中心支持 Go 语言,应该如何选择呢?我们可以对目前主流的支持 Go 语言的注册中心做个对比。 作者 | 李志鹏 近几年,随着 Go 语言社区逐渐发展和壮大,越来越多的公司开始尝试采用 Go 搭建微服务体系,也涌现了一批 Go 的微服务框架,如 go-micro、go-kit、Dubbo-go 等,跟微服务治理相关的组件也逐渐开始在 Go 生态发力,如 Sentinel、Hystrix 等都推出了 Go 语言版本,而作为微服务框架的核心引擎--注册中心,也是必不可缺少的组件,市面已经有多款注册中心支持 Go 语言,应该如何选择呢?我们可以对目前主流的支持 Go 语言的注册中心做个对比。 图 1 根据上表的对比我们可以从以下几个维度得出结论: 生态 :各注册中心对 Go 语言都有支持,但是 Nacos、 Consul、Etcd 社区活跃,zookeeper 和 Eureka 社区活跃度较低; 易用性 :Nacos、Eureka、Consul 都有现成的管控平台,Etcd、zookeeper 本身作为 kv 存储,没有相应的管控平台,Nacos 支持中文界面,比较符合国人使用习惯; 场景支持 :CP 模型主要针对强一致场景,如金融类,AP 模型适用于高可用场景,Nacos 可以同时满足两种场景

Nacos Go微服务生态系列(一) | Dubbo-go 云原生核心引擎探索

江枫思渺然 提交于 2021-01-09 22:57:56
作者:李志鹏, Github账号:Lzp0412,开源社区爱好者,Nacos Committer,Nacos-SDK-go作者,现就职于阿里云云原生应用平台,主要参与服务发现、CoreDNS、ServiceMesh相关工作,负责推动Nacos Go微服务生态建设。 近几年,随着Go语言社区逐渐发展和壮大,越来越多的公司开始尝试采用Go搭建微服务体系,也涌现了一批Go的微服务框架,如go-micro、go-kit、Dubbo-go等,跟微服务治理相关的组件也逐渐开始在Go生态发力,如Sentinel、Hystrix等都推出了Go语言版本,而作为微服务框架的核心引擎--注册中心,也是必不可缺少的组件,市面已经有多款注册中心支持Go语言,应该如何选择呢?我们可以对目前主流的支持Go语言的注册中心做个对比。 根据上表的对比我们可以从以下几个维度得出结论: 生态: 各注册中心对Go语言都有支持,但是Nacos、 Consul、Etcd 社区活跃,zookeeper和Eureka社区活跃度较低; 易用性: Nacos、Eureka、Consul都有现成的管控平台,Etcd、zookeeper本身作为kv存储,没有相应的管控平台,Nacos支持中文界面,比较符合国人使用习惯; 场景支持: CP模型主要针对强一致场景,如金融类,AP模型适用于高可用场景,Nacos可以同时满足两种场景,Eureka

Go微服务入门到容器化实践,落地可观测的微服务电商项目

丶灬走出姿态 提交于 2020-12-20 00:13:54
Go微效勞入門到容器化理論,落地可觀測的微效勞電商項目 下载地址: 百度云盘 關於真正微效勞項目來說,效勞開發只是第一步,容器化、弹性伸缩和可觀測才是真正關键。本课程將經過電商項目實戰,係統學習完整形態的微效勞,控製成熟閉環的落中央案。 技術請求 有Go實践開發經歷 控製Linux操作 純熟控製MySQL 環境參數 開發言语:Golang 開發平台:Windows 10 開發工具:GoLand 章節目錄: 第1章 课程引見與學習指南 試看 课程的引見、學習道路與指南,如何更好的學習本课程 共 1 節 (6分鍾) 收起列表 1-1 本课的go微效勞有什麼不同? (05:34) 試看 第2章 Go微效勞引見與容器化入門 試看 课程是以go-micro爲主的技術栈,本章解說其transport通訊層grpc原理。以及grpc數據的傳輸序列化和反序列化protobuf的原理 共 6 節 (101分鍾) 收起列表 2-1 微效勞根底引見 (19:17) 2-2 微效勞必備技藝Docker 入門引見 (18:48) 2-3 go-micro根底之 grpc protogo-micro 組件架構及通訊原理 (12:28) 試看 2-4 go-micro根底之 grpc proto (20:29) 2-5 go-micro 入門案例考證 (14:41) 2-6 go-micro 入門案例編寫

go-micro v3 项目创建分支了

前提是你 提交于 2020-11-26 04:25:00
原 go-micro v3 项目结束了。重生后变成了二个新项目。 原 go-micro v3 的项目 =》 成为了 Nitro 而另一个新项目 micro 成为了 go-micro v3 开发公司的主要项目,云原生平台 这个云原生平台可以讲一讲,就是我们用户开发的业务代码(服务)上传到 github 上。被这个云原生平台引用。运行。这样不用开发者布置网关,等微服务的其它组件,只写业务服务。不考虑运维类的工作。 价格呢:5个 github 账号,每月 35美元。资源限制是 micro 开发平台的 2倍。 开发平台的开发环境是免费的。 相关链接: [1](Nitro 版权信息) Polyform Shield: https://polyformproject.org/licenses/shield/1.0.0/ [2](新项目) Micro 3.0.0 的发布公告: https://micro.mu/blog/2020/11/05/micro-v3-aka-m3o.html [3] Nitro: https://github.com/asim/nitro 来源: oschina 链接: https://my.oschina.net/u/4407031/blog/4713567

Nacos Go微服务生态系列(一) | Dubbo-go 云原生核心引擎探索

梦想与她 提交于 2020-10-02 00:01:28
作者:李志鹏, Github账号:Lzp0412,开源社区爱好者,Nacos Committer,Nacos-SDK-go作者,现就职于阿里云云原生应用平台,主要参与服务发现、CoreDNS、ServiceMesh相关工作,负责推动Nacos Go微服务生态建设。 近几年,随着Go语言社区逐渐发展和壮大,越来越多的公司开始尝试采用Go搭建微服务体系,也涌现了一批Go的微服务框架,如go-micro、go-kit、Dubbo-go等,跟微服务治理相关的组件也逐渐开始在Go生态发力,如Sentinel、Hystrix等都推出了Go语言版本,而作为微服务框架的核心引擎--注册中心,也是必不可缺少的组件,市面已经有多款注册中心支持Go语言,应该如何选择呢?我们可以对目前主流的支持Go语言的注册中心做个对比。 根据上表的对比我们可以从以下几个维度得出结论: 生态: 各注册中心对Go语言都有支持,但是Nacos、 Consul、Etcd 社区活跃,zookeeper和Eureka社区活跃度较低; 易用性: Nacos、Eureka、Consul都有现成的管控平台,Etcd、zookeeper本身作为kv存储,没有相应的管控平台,Nacos支持中文界面,比较符合国人使用习惯; 场景支持: CP模型主要针对强一致场景,如金融类,AP模型适用于高可用场景,Nacos可以同时满足两种场景,Eureka

【JMICRO】 微服务简介及异步RPC体验

走远了吗. 提交于 2020-08-13 01:02:42
一, 为什么写 JMicro 印象中初次接触微服务大概是2011年,那会做Eclpise插件开发,网上查看好多关于OSGI的技术文章,发现Spring新出了一个叫Spring-boot的框架,那会没太上心,只是了解了点皮毛,工作又太忙,之后就没下文了。 直到大概2015年的某天,碰到一个小项目,没什么难度,都用老套路去玩,没什么意思,得玩点新东西才行,也不枉一翻付出,于是选择用GO语言实现,选择GO主要是想体验一下GO,看是不是真如传说中的那样无敌。经过一翻折腾,最终确定GOGIN+GOMICRO实现。是的,从那会开始,通过学心和使用GOMICRO,从此迷上微服务。后来因为工作需要,再没什么机会在项目中接触GO。 后面也曾试图去用Dubbo和Spring-Cloud做项目,但也止于浅尝则止,没能深入。一方面项目时间太紧,折腾不起。另一方面,也是最重要的,项目组成员根本不愿意去学新东西,在很多成员心中,微服务,Spring-Cloud太深奥,玩不起,没时间,至于Dubbo,写个服务,做个RPC也是从百度复制下来的,跑起来就完事了,没人关心个中的原理,经常碰到问题就抓狂! 从那时候起,就一直琢磨着能不能用Java写一个像GoMicro一样简单的微服务框架,这个框架要确保足够简单,入门和使用成本要底,就像写HelloWord一样,但微服务的基本功能要全。因此项目依赖不能多

实测go-micro入门demo

会有一股神秘感。 提交于 2020-08-10 08:01:32
1、启动consul 使用一下命令启动consul agent。 consul agent -dev -client 0.0.0.0 注意,一定要加-client 0.0.0.0,否则其他机器是无法访问consul的。 2、创建一个服务(math_service) main.go package main import ( "fmt" "github.com/gin-gonic/gin" "github.com/micro/go-micro/v2/registry" "github.com/micro/go-micro/v2/web" "github.com/micro/go-plugins/registry/consul/v2" "strconv" ) var reg registry.Registry func init() { reg = consul.NewRegistry(registry.Addrs("127.0.0.1:8500")) } func InitWeb() *gin.Engine { r := gin.Default() r.GET("/math/add", func(c *gin.Context) { x, _ := strconv.Atoi(c.Query("x")) y, _ := strconv.Atoi(c.Query("y")) z := x

让rpcx支持python细节分析之服务调用

血红的双手。 提交于 2020-08-09 07:54:41
0x1 这段时间在线上系统上正式用上了rpcx作为微服务框架,逐渐代替之前使用的go-micro,主要是考虑到简洁性(go-micro要写proto),性能,配套(rpcx有一个服务治理的UI),fork了个项目二次开发,加入了一些需要的功能特性 网关: https://github.com/halokid/rpcx-gateway 框架: https://github.com/halokid/rpcx 0x2 关于支持python的技术细节 目前python假如rpcx当中,由于时间人手问题,想快速切换原有的服务到rpcx框架,并没有从rpc协议上去支持,目前的做法是python服务还是用原有的jsonrpc来做,但是在服务注册阶段会按照rpcx的注册方式来注册,无缝集成到rpcx-ui当中,python服务的流程如下: 如图所示,相同语言的调用是直接走RPC的, 不同语言的调用是通过网关来统一调用,一般跨语言的服务调用都是用目前访问量不太大的应用来做,多了一次http的转发,性能会比直接调用差一些。其中直接调用的话go的采用msgpack(可定制,默认支持4种)作为默认的解编码工具,ptyhon是用json,所以性能方面go肯定比py要快,从这个层面来说,但是py胜在快速开发。 来源: oschina 链接: https://my.oschina.net/u/615967

Jetbrains插件Protobuf Generator,支持GO等多种语言

蹲街弑〆低调 提交于 2020-07-27 12:24:37
Protobuf Generator是基于GenProtobuf开发的一款jetbrains插件,在GenProtobuf的基础上增加了对PHP,GO和go-micro的支持。以替代命令行生成方式使得生成代码更加便捷。支持jetbrains全系列IDE(idea,phpstrom,goland,webstrom等)。 插件使用说明: 1,使用插件前需要安装protoc 2,在IDE(idea,goland,phpstrom等。。)中的File->Settings->Plugins,Marketplace中搜索Protobuf Generator并安装和重启IDE 3,配置生成代码规则。在菜单栏Tools中选择Configure GenProtoBuf。 4,选中项目中的.proto文件,右键生成代码 如果只生成单一语言类型,并把生成代码放到当前目录,可以通过配置Quick Gen选项。右键生成时选择quick gen protobuf here 如果需要一键同时生成多种语言并把代码放到指定目录,可以勾选多种语言。右键生成时选择quick gen protobuf rules 来源: oschina 链接: https://my.oschina.net/u/4249250/blog/4287323