Go - Micro微服务

Go - Micro微服务框架实践 - Web、Proxy、CL

2018-12-24  本文已影响144人  承诺一时的华丽

一、Web

Micro Web提供了一个可视化和探索服务的仪表板

安装

go get github.com/micro/micro

运行

micro web

浏览器访问: localhost:8082

使用ACME

微型Web仪表板通过Let's Encrypt支持ACME。它会自动获取您域的TLS证书。

micro --enable_acme web

(可选)指定主机白名单

micro --enable_acme --acme_hosts=example.com,api.example.com web

设置TLS证书

仪表板支持使用TLS证书安全地提供服务

micro --enable_tls --tls_cert_file=/path/to/cert --tls_key_file=/path/to/key web

截图

image image image image

二、Proxy

micro proxy

所述micro proxy是一个CLI代理。

micro proxy提供了一个http api,它用作cli的代理,其中环境不能直接访问。

入门

用法

安装

go get -u github.com/micro/micro

依赖

代理使用go-micro,这意味着它依赖于服务发现。

安装consul

brew install consul
consul agent -dev

运行

默认情况下,micro proxy在端口8081上运行。

启动代理

micro proxy

ACME

默认使用ACME通过letsencrypt安全地服务

MICRO_ENABLE_ACME=true micro proxy

(可选)指定主机白名单

MICRO_ENABLE_ACME=true MICRO_ACME_HOSTS=example.com,api.example.com micro proxy 

proxy-cli

要在CLI中使用代理,请指定其地址

MICRO_PROXY_ADDRESS=127.0.0.1:8081 micro list services
MICRO_PROXY_ADDRESS=127.0.0.1:8081 micro call greeter Say.Hello '{"name": "john"}'

三、CLI

micro cli

所述micro cli是用于微工具包命令行界面

入门

安装

go get github.com/micro/micro

交换模式

将cli用作交互式提示

micro cli

micro在交互模式下从以下命令中删除

示例用法

列出服务

micro list services

获得服务

micro get service go.micro.srv.example

输出

go.micro.srv.example

go.micro.srv.example-fccbb6fb-0301-11e5-9f1f-68a86d0d36b6   [::]    62421

呼叫服务

micro call go.micro.srv.example Example.Call '{"name": "John"}'

输出

{
    "msg": "go.micro.srv.example-fccbb6fb-0301-11e5-9f1f-68a86d0d36b6: Hello John"
}

服务健康

micro health go.micro.srv.example

输出

node        address:port        status
go.micro.srv.example-fccbb6fb-0301-11e5-9f1f-68a86d0d36b6       [::]:62421      ok

注册/注销

micro register service '{"name": "foo", "version": "bar", "nodes": [{"id": "foo-1", "address": "127.0.0.1", "port": 8080}]}'
micro deregister service '{"name": "foo", "version": "bar", "nodes": [{"id": "foo-1", "address": "127.0.0.1", "port": 8080}]}'

代理远程环境

使用的代理远程环境 micro proxy

在针对远程环境进行开发时,您可能无法直接访问服务发现,从而难以使用CLI。在micro proxy提供了这样的场景HTTP代理。

在远程环境中运行代理

micro proxy

设置env var MICRO_PROXY_ADDRESS以便cli知道使用代理

MICRO_PROXY_ADDRESS=staging.micro.mu:8081 micro list services

用法

NAME:
   micro - A cloud-native toolkit

USAGE:
   micro [global options] command [command options] [arguments...]

VERSION:
   0.8.0

COMMANDS:
    api     Run the micro API
    bot     Run the micro bot
    registry    Query registry
    call    Call a service or function
    query   Deprecated: Use call instead
    stream  Create a service or function stream
    health  Query the health of a service
    stats   Query the stats of a service
    list    List items in registry
    register    Register an item in the registry
    deregister  Deregister an item in the registry
    get     Get item from registry
    proxy   Run the micro proxy
    new     Create a new micro service by specifying a directory path relative to your $GOPATH
    web     Run the micro web app
上一篇下一篇

猜你喜欢

热点阅读