Go-Micro 是一个基于微服务库的可插拔 RPC,为编写分布式应用程序提供基本构件。它是 Micro 工具包的一部分,支持 Proto-RPC 和 JSON-RPC 的请求/响应协议,默认设置 Consul 为探索。
示例服务可以在 examples/service 找到。
特征
特征 | 包 | 内置插件 | 描述 |
Discovery | Registry | consul | 用来沟通的一种定位服务方式 |
Client | Client | rpc | 用来将RPC请求变成服务 |
Codec | Codec | proto,json | 对请求进行编码/解码处理 |
Balancer | Selector | random | 服务节点过滤和池 |
Server | Server | rpc | 监听和服务器的RPC请求 |
Pub/Sub | Broker | http | 发布和订阅事件 |
Transport | Transport | http | 服务之间的通信机制 |
项目 | 描述 |
greeter | greeter 服务(包括 Go、Ruby、Python ) |
geo-srv | 使用 hailocab/go-geoindex 进行地理位置跟踪服务 |
geo-api | 为地理位置跟踪和搜索提供的 HTTP API 处理程序 |
geocode-srv | 使用 Google Geocoding API 提供地理编码服务 |
hailo-srv | 一种用于hailo出租车服务开发者的api服务 |
place-srv | 存储和检索地点的微服务 |
slack-srv | 将Slack机器人的API当成一个go-micro 的RPC服务 |
twitter-srv | 一种用于Twitter的API微服务 |
user-srv | 一种为用户管理和认证提供的微服务 |
这是一个以 greeter 服务为例的快速入门指南。
必备条件
我们需要一个服务发现机制来解决服务的名称到地址的映射,默认设置Consul为探索。Discovery是可插拔的,你可以使用 kubernetes, zookeeper 等。我们的实践可以在 go-plugins 上找到。
安装Consul
https://www.consul.io/intro/getting-started/install.html
运行Consul
$ consul agent -dev -advertise=127.0.0.1
运行服务
$ go run examples/service/main.go 2016/03/14 10:59:14 Listening on [::]:50137 2016/03/14 10:59:14 Broker Listening on [::]:50138 2016/03/14 10:59:14 Registering node: greeter-ca62b017-e9d3-11e5-9bbb-68a86d0d36b6
测试服务
$ go run examples/service/main.go --client Hello John
前言 不管是单个服务还是微服务,读取文件在每个项目系统中是必不可少的部分。 大多数项目中都是静态加载项目配置文件的,有时候可能需要从各种源中读取配置数据,这让配置读取复杂化,不易于快速开发。而go-micro中,不管是从动态读取配置,还是从多元读取配置都很简单,唯一难点就是需要读取源码来了解他的工作机制。 Go-Micro支持多种源的读取,包括命令行参数、文件(json、yaml)、etcd、co
go-micro在微服务框架中提供了开箱即用的灵活接口,但是官方文档以及版本过于混乱,导致很难上手,初次使用很多调用都需要去阅读源码才能使用,微服务之间最核心的功能就是接口调用,当你使用go-micro的微服务去调用另一个go-micro的微服务时,使用起来简单,但是如果跨语言呢,grpc是没有语言限制的,假设你用go-micro实现了一个微服务,使用java作为客户端去调用呢?本教程主要记录go
由于 Micro3.0直接放弃维护 go-micro,所以网上很多文章都是已经过时的了。那些安装方法根本装不上了。此贴主要根据官方文档进行摸索,感觉官方文档似乎也没来得及更新,所以部分操作也没能成功。就只记录一下自己成功的操作和遇到的问题。 依赖 我们需要protoc-gen-micro来生成代码 protobuf protoc-gen-go protoc-gen-micro #Download
1.micro简介 Micro由开源的库与工具组成,旨在辅助微服务开发。 go-micro - 基于Go语言的可插拔RPC微服务开发框架;包含服务发现、RPC客户/服务端、广播/订阅机制等等。 go-plugins - go-micro的插件有etcd、kubernetes、nats、rabbitmq、grpc等等。 micro - 微服务工具集包含传统的入口点(entry point);API
安装gin go get -u github.com/gin-gonic/gin 安装go-micro v3 先安装依赖 go get -u github.com/golang/protobuf/proto go get -u github.com/golang/protobuf/protoc-gen-go //安装asim/go-micro 这个是go micro 3.0 框架 go g
一、 在线安装 #安装 go-micro go get -u -v github.com/micro/go-micro #安装工具 go get -u -v github.com/micro/micro #安装protobuf插件 go get -u github.com/golang/protobuf/{proto,protoc-gen-go} go get -u github.com/mi
web.xml模块 使用上述定义的注解,使得 web.xml 的使用变为可选。然而,对于覆盖默认值或使用注解设置的值,仍然需要使用部署描述符。如前所述,如果 web.xml 描述符中的 metadata-complete 元素设置为 true,则存在于 class 文件和绑定在 jar 包中的 web-fragments 中的指定部署信息的注解将不被处理。这意味着,所有应用的元数据通过 web.x
背景 在 Apache ShardingSphere 中,很多功能实现类的加载方式是通过 SPI(Service Provider Interface) 注入的方式完成的。 SPI 是一种为了被第三方实现或扩展的 API,它可以用于实现框架扩展或组件替换。 挑战 可插拔架构对程序架构设计的要求非常高,需要将各个模块相互独立,互不感知,并且通过一个可插拔内核,以叠加的方式将各种功能组合使用。 设计一
本文向大家介绍PHP基于反射机制实现插件的可插拔设计详解,包括了PHP基于反射机制实现插件的可插拔设计详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP基于反射机制实现插件的可插拔设计。分享给大家供大家参考,具体如下: 说PHP和ASP等同的朋友们可以就此打住了,PHP支持反射,而且还是非常的强大。好了,我们开始今天的话题。 功能描述: 页面拥有一个主导航菜单,里头有默认连接若干。
如果发生任何问题,大多数开发人员都难以跟踪日志。 这可以通过用于Spring Boot应用程序的Spring Cloud Sleuth和ZipKin服务器来解决。 春云侦探 Spring cloud Sleuth日志以下列格式打印 - [application-name,traceid,spanid,zipkin-export] Where, Application-name =应用程序的名称
ServletContainerInitializer 和编程式注册特性可以在 Servlet 和JSP 容器之间提供一个清晰的职责分离,通过由 Servlet 容器只负责解析 web.xml 和 web-fragment.xml 资源,而解析标签库描述符(TLD)资源委托给 JSP 容器。 在此之前,web 容器必须扫描 TLD 资源寻找任何 Listener 声明。使用Servlet 3.0
在 web 应用中,使用注解的类仅当它们位于 WEB-INF/classes 目录中,或它们被打包到位于应用的 WEB-INF/lib 中的 jar 文件中时它们的注解才将被处理。 Web 应用部署描述符的 web-app 元素包含一个新的 “metadata-complete” 属性。“metadata-complete”属性定义了 web 描述符是否是完整的,或是否应该在部署时检查 jar 包