RPC 框架 Go-MOA

未知
Google Go 查看源码»
跨平台
2016-04-08
开源中国股瞎

Go-MOA 是使用redis get请求协议的RPC 框架。

MOA Server使用方式

  • 安装:

    安装ZooKeeper $Zookeeper/bin/zkServer.sh start

    go get  github.com/blackbeans/go-moa/core
    go get  github.com/blackbeans/go-moa/proxy
  • 定义服务的接口对应

        //接口
        type DemoResult struct {
            Hosts []string `json:"hosts"`
            Uri   string   `json:"uri"`
        }
    
        type IGoMoaDemo interface {
            GetDemoName(serviceUri, proto string) (DemoResult, error)
        }
        //服务实现
        type GoMoaDemo struct {
        }
    
        func (self GoMoaDemo) GetDemoName(serviceUri, proto string) (DemoResult, error)      {
            return DemoResult{[]string{"fuck gfw"}, serviceUri}, nil
        }
    • 例如接口为:

  • 服务端启动启动:

        func main(){
            app := core.NewApplcation("./conf/cluster_test.toml", 
            func() []proxy.Service {
                return []proxy.Service{
                    proxy.Service{
                        ServiceUri: "/service/bibi/go-moa",
                        Instance:   GoMoaDemo{},
                        Interface:  (*IGoMoaDemo)(nil)}}
            })
    
            //设置启动项
            ch := make(chan os.Signal, 1)
            signal.Notify(ch, os.Kill)
            //kill掉的server
            <-ch
            app.DestoryApplication()
        }
  • 说明

    • Service为一个服务单元,对应了本服务对外的服务名称、以及对应的接口

    • Applcation需要对应的Moa的配置文件,toml类型,具体配置参见./conf/cluster_test.toml

  • 发布服务成功可以使用客户端进行测试,具体客户端的使用请参考

*** Benchmark

env:Macbook Pro 2.2 GHz Intel Core i7

go test --bench=".*" github.com/blackbeans/go-moa/core -run=BenchmarkApplication

BenchmarkApplication-8     20000         64517 ns/op
的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

暂无资讯

暂无问答

nodejs里的repl

如果用过rails,一定很喜欢rails console,它可以直接调用AR里的各种方法,非常简单的就可以测试对db的各种操作。那么作为一个nodejs开放,是否也可以实现一样的功能呢?详见正文...

2015/08/06 09:40
1K
0
nodejs mongoose建模实践

一直以来mongoose学习都是比较麻烦的,mongoose-cli试图简化学习和测试mongoose部分,并通过app开发流程反思整个过程中业务逻辑部分如何抽象,以期简化开发与分层实现...

2015/08/07 14:30
129
0
Nodejs框架演进之路

nodejs web框架

2015/12/26 14:25
231
0
火狐主页设置行数

localStorage.setItem("moa.ntab.dial.rowlimit", 20)

2015/12/08 19:49
12
0
Moa-api:一个基于node express快速开发api类后端的框架

目前是让开发可以快速的开发api类后端,开箱即用,可以最大程度发挥node express的威力

2015/08/05 20:14
946
1
Nodejs Restful Api几点讨论

关于rest api的几点讨论,比如版本控制,标准restful api,以及回答了《给mysql和mongodb提供restful接口,有啥现成的包可提供》问题

2015/08/24 23:48
9.6K
5
全栈工程师之路-Node.js

主要内容:1. 为什么我们要选择 Node.js ?(历史\槽点\架构平衡和选择\企业级SaaS) 2. 我眼中的Node.js核心 3. 快速开发实践 4. 全栈 or 全烂 ?工具链/前端开发4阶段/Hybrid开发/跨平台/如何...

2016/04/08 09:46
346
1
全栈工程师之路-Node.js

主要内容:1. 为什么我们要选择 Node.js ?(历史\槽点\架构平衡和选择\企业级SaaS) 2. 我眼中的Node.js核心 3. 快速开发实践 4. 全栈 or 全烂 ?工具链/前端开发4阶段/Hybrid开发/跨平台/如何...

2016/04/08 09:51
216
1
mysql优化工具---mysqloa

一.MySQL Optimize Analysis介绍 1.“一键优化”功能,可以优本地和远程的服务器,将繁琐的优化工作“傻瓜”式操作 2.根据业务需求一步一步深度优化mysql服务器参数,起到指引作用,简化用户...

2014/03/23 01:22
117
0
25个Java机器学习工具&库

本列表总结了25个Java机器学习工具&库: 1. Weka集成了数据挖掘工作的机器学习算法。这些算法可以直接应用于一个数据集上或者你可以自己编写代码来调用。Weka包括一系列的工具,如数据预处理...

2016/06/15 11:01
124
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部