使用 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 中与我们交流.