go语言消息总线 go语言开发的消息队列( 二 )


ACME( Automatic Certificate Management Environment)是由 Let’s Encrypt 制定的安全协议 。
可以选择是否配置白名单
API服务支持TLS证书
API使用带分隔符的命名空间来在逻辑上区分后台服务及公开的服务 。命名空间及http请求路径会用于解析服务名与方法,比如 GET /foo HTTP/1.1 会被路由到 go.micro.api.foo 服务上 。
API默认的命名空间是 go.micro.api  , 当然,也可以修改:
我们演示一个3层的服务架构:
完整示例可以参考: examples/greeter
先决条件:我们使用Consul作为默认的服务发现,所以请先确定它已经安装好了,并且已经运行,比如执行 consul agent -dev 这样子方式运行 。
向micro api发起http请求
HTTP请求的路径 /greeter/say/hello 会被路由到服务 go.micro.api.greeter 的方法 Say.Hello 上 。
绕开api服务并且直接通过rpc调用:
使用JSON的方式执行同一请求:
micro api提供下面类型的http api接口
请看下面的例子
Handler负责持有并管理HTTP请求路由 。
默认的handler使用从注册中心获取的端口元数据来决定指向服务的路由,如果路由不匹配,就会回退到使用”rpc” hander 。在注册时,可以通过 go-api 来配置路由 。
API有如下方法可以配置请求handler:
通过/rpc入口可以绕开handler处理器 。
API处理器接收任何的HTTP请求 , 并且向前转发指定格式的RPC请求 。
RPC处理器接收json或protobuf格式的HTTP POST请求,然后向前转成RPC请求 。
代理Handler其实是内置在服务发现中的反向代理服务 。
事件处理器使用go-micro的broker代理接收http请求并把请求作为消息传到消息总线上 。
Web处理器是,它是内置在服务发现中的HTTP反向代理服务,支持web socket 。
/rpc 端点允许绕过主handler,然后与任何服务直接会话 。
示例:
更多信息查看可运行的示例: github.com/micro/examples/api
解析器,Micro使用命名空间与HTTP请求路径来动态路由到具体的服务 。
API命名的空间是 go.micro.api。可以通过指令 --namespace 或者环境变量 MICRO_NAMESPACE= 设置命名空间 。
下面说一下解析器是如何使用的:
RPC解析器示例中的RPC服务有名称与方法 , 分别是 go.micro.api.greeter , Greeter.Hello。
URL会被解析成以下几部分:
带版本号的API URL也可以很容易定位到具体的服务:
代理解析器只处理服务名,所以处理方案和RPC解析器有点不太一样 。
URL会被解析成以下几部分:
关于go语言消息总线和go语言开发的消息队列的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读