使用 Micro

未匹配的标注

使用Micro

M3O 是 Micro 即服务, 这意味着你可以访问所有基础服务.

服务

提供的核心服务如下

  • 认证
  • 服务发现
  • RPC 通信
  • 动态配置 Dynamic Config
  • 事件流
  • 键值存储
  • 运行时管理

我们将在后续更深入的介绍这些内容, 其本质上是个 OSS, Micro v3 封装之后提供给你的高可用分布式系统.

调用服务

要使用服务需要 GitHub 上的此服务目录下的内容.
Micro 会预初始化私有服务, 以便你导入该包并调用公共函数来完成自己的服务.

举个栗子. 我们来调用一个服务.

import (
    "context"

    "github.com/micro/micro/v3/service/client"
    pb "github.com/micro/services/helloworld/proto"
)

req := client.NewRequest("helloworld", "Helloworld.Call", &pb.Request{Name: "Alice"})
rsp := new(pb.Response)
err := client.Call(context.Background(), req, &rsp)

如果要使用代码生成

hw := pb.NewHelloworldService("helloworld", client.DefaultClient)
rsp, err := hw.Call(context.Background(), &pb.Request{Name: "Alice"})

发布或订阅事件

怎么说发布事件好呢?

import "github.com/micro/micro/v3/events"

events.Publish("event-topic", map[string]string{"foo": "bar"})

然后订阅该事件

eventChan, err := events.Subscribe("event-topic")

存储及检索数据

import (
    // 这里有点困扰正在修正中
    kv "github.com/micro/go-micro/v3/store"
    "github.com/micro/micro/v3/store"
)

// 写入记录
store.Write(&kv.Record{
    Key: "foo",
    Value: []byte(`Bar`),
})

// 读取记录
rec, err := store.Read("foo")

// 删除记录
store.Delete("foo")

我们会及时跟进所有相关内容的进一步文档, 现在可随时在 Slack 中与我们交流.


本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
taadis
讨论数量: 0
发起讨论 查看所有版本


暂无话题~