go-micro入门[翻译]

go-micro开发RPC服务的方法及其运行原理 🚀 优质资源分享 🚀 学习路线指引(点击解锁) 知识定位 人群定位 🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 💛Python量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 go-micro是一个知名的golang微服务框架,最新版本是v4,这篇文章将介绍go-micro v4开发RPC服务的方法及其运作原理。 基本概念 go-micro 阅读详情

官方主页

Go Micro is a framework for microservice development.
GoMicro是一个微服框架。

Overview 概述

Go Micro provides the core requirements for distributed systems development including RPC and Event driven communication.
go micro为分布式开发提供核心基础,包含RPC和事件驱动式的通讯。
The micro philosophy is sane defaults with a pluggable architecture. We provide defaults to get you started quickly but everything can be easily swapped out.
Micro哲学是非常健壮默认使用插件架构。我们提供默认方式让你很快上手,而且所有插件很容易切换出去。

 
20716125-0c3e530958228ef3.png
架构示意图

Plugins are available at github.com/micro/go-plugins.

Follow us on Twitter or join the Slack community.

Features 特性

Go Micro abstracts away the details of distributed systems. Here are the main features.
Go Micro是对分布式系统的抽象。这里列举了主要特性。

  • Service Discovery - Automatic service registration and name resolution. Service discovery is at the core of micro service development. When service A needs to speak to service B it needs the location of that service. The default discovery mechanism is multicast DNS (mdns), a zeroconf system.
    服务发现-自动注册服务,名字解析。服务发现是微服务的核心。当A服务需要和B通话时,它需要定位B服务。默认的发现机制是mdns,是无需配置的系统。

  • Load Balancing - Client side load balancing built on service discovery. Once we have the addresses of any number of instances of a service we now need a way to decide which node to route to. We use random hashed load balancing to provide even distribution across the services and retry a different node if there’s a problem.
    负载均衡-客户端方负载均衡内建在服务发现中。一旦我们有某个服务的一些实例的地址,需要一个方法确定路由到哪个节点。我们使用随机hash负载均衡去平衡服务器之间,而且当某个节点出现问题是,将重新尝试其他节点。

  • Message Encoding - Dynamic message encoding based on content-type. The client and server will use codecs along with content-type to seamlessly encode and decode Go types for you. Any variety of messages could be encoded and sent from different clients. The client and server handle this by default. This includes protobuf and json by default.
    消息编码-基于内容类型的动态编码。客户端和服务器可以使用codecs配合content-type无缝的对Go类型做编码和解码。各种类型消息能在不同的客户端编码,发送。客户端和服务器默认情况下都会处理好这些工作。默认情况下包含protobuf和json。

  • Request/Response - RPC based request/response with support for bidirectional streaming. We provide an abstraction for synchronous communication. A request made to a service will be automatically resolved, load balanced, dialled and streamed. The default transport is http/1.1 or http2 when tls is enabled.
    请求/应答-RPC基于request/response,支持双向调用。我们提供同步通讯的抽象。一个服务器请求将会自动解析,负载均衡,连接远程微服和序列化传输数据。默认传输是http/1.1或者在tls允许的时候使用http2。

  • Async Messaging - PubSub is built in as a first class citizen for asynchronous communication and event driven architectures. Event notifications are a core pattern in micro service development. The default messaging is point-to-point http/1.1 or http2 when tls is enabled.
    异步消息-在消息驱动和异步通讯中,消息订阅和消息发布被内建在其中,并且当成first class citizen。默认消息是点对点的http1.1或者在tls有效的情况下启用http2。

  • Pluggable Interfaces - Go Micro makes use of Go interfaces for each distributed system abstraction. Because of this these interfaces are pluggable and allows Go Micro to be runtime agnostic. You can plugin any underlying technology. Find plugins in github.com/micro/go-plugins.
    插件接口-Go Micro为每个分布式抽象都使用Go的接口。因为这些接口是可插拔的,允许Go Micro运行时透明。你可以插入任何底层技术。

Getting Started 开始

See the docs for detailed information on the architecture, installation and use of go-micro.
查看这个文档获取关于架构的详细信息。安装并且使用go-micro

别再只认16位!计量前端ADC选型与采购避坑指南 模数转换器(ADC)是数据采集系统的核心,但决定精度的远不止位数。Δ-Σ架构通过过采样与噪声整形实现高有效分辨率,ENOB比标称位数更能反映真实性能。在电能计量、电力监控等多通道同步采样场景中,通道一致性、增益温漂和参考源质量才是关键指标。选型时若只关注“16位”标签,容易忽略信号链完整度与系统稳定性,导致标定困难或批量误差。本文结合工程实践,解析计量前端芯片的核心参数,并提供采购验证、批次管理及样板测试的实操建议,帮助硬件工程师与采购人员建立完整的判断标准,避开常见陷阱。 阅读详情

相关推荐

TP4054芯片实战:手把手教你设计USB锂电充电电路(附PCB散热优化技巧)

本文以TP4054芯片为核心,手把手教你设计稳定可靠的USB锂电池充电电路。文章详细解析了芯片的恒流恒压工作模式、关键外围元件选型计算,并重点分享了PCB布局与散热优化的实战技巧,帮助工程师从“能工作”提升到“工作得好”,确保充电效率与系统稳定性。

1a2s3d4f5g的博客 467

go-micro命令行创建helloworld微服务

文章目录一、前言二、环境准备三、正式开始3.1 创建微服务前一些服务的启动3.1.1 启动微服务3.1.2. 查看当前的服务3.2 创建helloworld微服务3.2.1命令行预创建helloworld微服务3.2.2 安装proto3.2.3 proto编译文件3.2.4 运行 一、前言 以命令行的方式创建一个微服务(使用默认的mdns服务发现),然后建立客户端调用微服务 二、环境准备 最基本的,go开发环境配置完成,gopath已设置好 go-micro环境已安装完成 环境的安装可以参考下面两篇文章

weixin_38707040的博客 1743

告别报错!Win10下Autodock Vina 1.2.3保姆级安装与避坑指南

本文提供了Win10系统下Autodock Vina 1.2.3的完整安装与实战指南,涵盖环境配置、分子文件预处理、对接参数优化及结果分析等关键步骤。通过详细的避坑技巧和优化方案,帮助用户高效完成分子对接任务,特别适合生物信息学研究人员和药物发现领域的初学者。

weixin_29969209的博客 401

golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techide...

imwinlion && 我是胡文林 822

YOLOv8冻结层的迁移学习 全网首发

在调用时会创建trainer此时的模型配置更新了,冻结了个p。

qq_42693842的博客 6586

【STC32G12K128开发板】——从零到一:Keil C251开发环境全攻略

本文详细介绍了为STC32G12K128开发板搭建Keil C251开发环境的完整流程。从环境准备、软件安装、驱动配置到创建第一个工程并下载程序,提供了避坑指南和实用技巧,帮助开发者高效入门这款基于251内核的国产32位单片机开发。

weixin_29192141的博客 362

micro微服务开发环境的搭建

相关概念 在使用micro框架前必须熟悉下面的概念,本blog认为读者已经有此基础,故不再赘述。 Protocol Buffers rpc 计算机集成与分布式 负载均衡及服务注册与发现 网络通信(HTTP,UDP,常用端口【如:dns端口是53】) 开发环境中使用的程序与go包 protoc(可执行程序) protoc-gen-go(可执行程序) protoc-gen-micro(可执行程序...

qq_37469945的博客 1178

手把手教你用树莓派蓝牙抓取小米温湿度计2代数据,接入HomeAssistant(附密钥获取避坑指南)

本文详细介绍了如何通过树莓派蓝牙抓取小米温湿度计2代数据并接入HomeAssistant的完整流程。重点解析了获取32位加密密钥的三种方法,包括使用Telink Flasher工具、米家APP抓包和开源工具ATC_MiThermometer,并提供了HomeAssistant集成配置和常见问题排查指南,帮助用户实现稳定可靠的温湿度监测。

一名菜鸟攻城师 778

Spirula Studio 3DGS 训练工具:跨显卡一键从照片到 Mesh

把一段环绕视频变成能任意角度观看的 3D 场景,老路是:先装 Python、再把 PyTorch 和 CUDA 版本对到一起、单独装好 COLMAP 跑半天重建、还得祈祷显卡是 NVIDIA 的。这些坑一个不少就是 3DGS(3D Gaussian Splatting,用一堆可渲染的小高斯云团表示 3D 场景的训练方法)的入场费。Spirula Studio 把这些全砍掉了:从照片/视频训练 3D

gitblog_00902的博客 901

树莓派4B系统安装及SSH远程控制(简单易操作)

​自从2022年4月树莓派官网更新了RaspberryPiImager版本v1.7.2后,便不再支持自行建立ssh文件,并用默认用户名pi和密码raspberry的方式进行远程控制(亲测不行,输密码时一直access denied)。但是该版本软件提供了烧录系统前设置ssh用户及密码功能。本文记录了系统安装和SSH远程操作步骤。........................

机械人的代码路 5789

YOLOv5_DeepSORT_Pytorch训练自己的多目标跟踪模型

1 准备 环境配置:https://blog.youkuaiyun.com/weixin_50008473/article/details/115250986?spm=1001.2014.3001.5501 YOLOv5_DeepSORT_Pytorch代码地址: https://github.com/mikel-brostrom/Yolov5_DeepSort_Pytorch DeepSORT论文:https://arxiv.org/pdf/1703.07402.pdf 2 训练目标检测模型 训练自己的目标检测模

weixin_50008473的博客 1万+

go-micro V2 从零开始(八)集成链路追踪工具jaeger

本文相关代码:gitee 文章目录前言步骤一、hystrix-go二、API网关2.1 创建目录2.2 编辑main.go 前言 这一章我们演示如何在网关中集成熔断器器Hystrix。 步骤 一、hystrix-go hystrix是一个容错库,旨在隔离指向远程系统,服务和第三方库的请求,杜绝级联故障,并在复杂的分布式系统中实现弹性,毕竟在分布式系统中,故障是不可避免的。 此项目脱胎于由Netflix开源的同名java项目。https://github.com/Netflix/Hystrix Hystr

hotcoffie的博客 1112

[SV]SystemVerilog学习笔记之struct & union

SystemVerilog学习笔记(四) 一、结构体(struct) 1.1、结构体(struct) 结构体声明:结构体默认是变量,也可以声明为线网 var struct{ //通过var进行结构体变量声明 logic [31:0] a, b; logic [ 7:0] opcode; } Instruction_Word_var; wire struct{ //结构体线网声明,定义为线网类型时,结构体的所有成员必须...

元直的博客 1万+

golang微服务框架对比_Golang 微服务教程(二)

Golang 微服务教程(二) 发表于 2018-05-12 | 阅读次数: | 字数统计: 3,763原文链接:ewanvalentine.io,翻译已获作者 Ewan Valentine 授权。本节未细致介绍 Docker,更多可参考:《第一本Docker书 修订版》前言在上一篇中,我们使用 gRPC 初步实现了我们的微服务,本节将 Docker 化该微服务并引入 go-micro 框架代替 ...

weixin_39707941的博客 255

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

go 链路追踪_go-micro V2 从零开始(八)集成链路追踪工具jaeger

本文相关代码:gitee前言这一章我们继续使用go-plugins库中插件,以Wrapper方式集成链路追踪工具jaeger。步骤一、jaeger1.1 简介Jaeger是一个GO语言开发的微服务链路追踪工具,用于分布式系统监控和故障排除,他的主要特性包括:分布式上下文传播 分布式事务监控 根本原因分析服务依赖关系分析 性能/延迟优化以上内容翻译自jaeger官方文档,更多内容请查阅官网:Jaeg...

weixin_32166921的博客 443

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

micro 架构组件介绍

Micro 是什么  Micro 是微服务生态系统中专注于提供产品、服务和解决方案的一款软件,使得在现代软件企业中起到创新驱动。它计划是可以将任何微服务相关的资源与即将使用此款软件的公司结合起来,利用此技术来处理自己的业务。从早期原型的搭建直到大规模生产环境部署应用。  Micro 可以理解为它就是一个微服务平台,提供微服务的方便构建,官方说法也叫做:一个开源的微服务工具箱  Micro 为构建和...

weixin_30920597的博客 220

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Go语言爱好者周刊:第 2 期

这里记录每周值得分享的 Go 语言相关内容,周日发布。欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue[1]。鉴于大部分人可能没法坚持把英文文章看完,因此,周...

Seekload 743

突破语言壁垒:Micro编辑器插件国际化全攻略

你是否曾为开源插件无法适配多语言用户而烦恼?是否希望你的Micro插件能触达全球开发者?本文将系统讲解如何为Micro(一款现代化终端文本编辑器)插件实现完整的国际化支持,从架构设计到实战开发,让你的插件轻松跨越语言障碍。 ## 为什么插件国际化至关重要 在全球化协作日益频繁的今天,开发者面临的语言障碍已成为开源项目推广的主要瓶颈之一。调查显示,支持多语言界面的开源项目平均能获得: - 37%...

gitblog_00025的博客 638

go http 传递 文件_Go语言爱好者周刊:第 68 期

这里记录每周值得分享的 Go 语言相关内容,周日发布。本周刊开源(GitHub:polaris1119/golangweekly),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue 。鉴于大部分人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。题图:https://github.com/guark/guark,使用 G...

weixin_42421854的博客 228

Golang 微服务教程(五)

译文链接:wuYin/blog原文链接:ewanvalentine.io,翻译已获作者 Ewan Valentine 授权。 本文完整代码:GitHub 在上节中,我们使用 JWT 在微服务之间进行了用户的认证。在本节中,我们将使用 go-micro 结合 nats 插件来完成用户创建事件的发布与订阅。 正如前几节所说,go-micro ...

weixin_33979363的博客 522

Go REST Web 服务实用指南(四)

在本章中,我们将介绍一种名为 GraphQL 的新查询语言。传统的 API 定义未能解决欠取和过取 API 的问题。欠取 API 是指为特定请求提供最小细节集的 API。其缺点是开发者必须始终创建新的 API 或更新现有的 API。为了克服这一点,他们可以提供客户端可以安全忽略的额外数据。这导致另一个副作用;那就是它增加了响应的有效负载大小。这种情况被称为过取。过取 API 为客户端提供不必要的或不受欢迎的数据。当设计针对客户端的 API 时,如果网络带宽有限制,响应大小至关重要。GraphQL 是一种解决

龙哥盟 794

[从RPC到Go-Micro 零]RPC简介及原理

RPC简介 RPC是Remote Procedure Call Protocol单词首字母的缩写,简称为:RPC,翻译成中文叫远程过程调用协议。所谓远程过程调用,通俗的理解就是可以在本地程序中调用运行在另外一台服务器上的程序的功能方法。这种调用的过程跨越了物理服务器的限制,是在网络中完成的,在调用远端服务器上程序的过程中,本地程序等待返回调用结果,直到远端程序执行完毕,将结果进行返回到本地,最终完成一次完整的调用。 本地程序调用 在正常情况下,我们会在本地执行程序,如以下Go代码: func Sub(a

陈守一的博客 478

Golang 微服务教程(六)

译文链接:wuYin/blog原文链接:ewanvalentine.io,翻译已获作者 Ewan Valentine 授权。 本文完整代码:GitHub 在上节中我们使用 go-micro 搭建了微服务的事件驱动架构。本节将揭晓从 web 客户端的角度出发如何与微服务进行调用交互。 微服务与 web 端交互 参考 go-micro 文档,...

weixin_33943347的博客 522
上一篇: go-tcpsvr
下一篇: go-etcd入门资料
erlang_hell
博客等级 码龄14年 57粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值