安装:
安装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
写此文章的原因: ubuntu默认源使用apt安装的golang版本默认为1.6,而beego框架则基于1.7; deepin默认源使用apt安装的golang版本默认为1.8,但是安装beego、bee则提示没权限,即便使用sudo虽然不提示没权限,但依然安装失败。 每次更换系统go环境要寻找解决方案、配置许久,我索性记录一下golang1.11.2(当前最新版本)、beego、bee的正确安装
问题内容: 我正在使用Go gin框架Go gin 我有状态码:200,但是在OPTIONS请求之后什么也没有发生。好像我错过了什么,但我不明白我在哪里错了。 有谁能够帮我? 问题答案: FWIW,这是我的CORS中间件,可满足我的需求。
本页面主要用于 Golang Echo 框架官方首页的汉化,作为中文版的Echo的使用介绍。
把vue/react打包进框架里编译成可执行文件,在服务器上就不用装nodejs了
问题内容: 例如,如何使用CoreGraphics和CoreFoundation在macOS上操纵屏幕和处理数据。 问题答案: 假设我们要使用CoreGraphics和CoreFoundation捕获屏幕并获取图像数据:
你们使用Go开发应用,是使用那个框架,有用GoFly快速开发框架吗?
Go! 是一个 PHP 5.4 库,让 PHP 支持 AOP 面向方面编程方法,无需 PECL 扩展、Runkit、evals 或者 DI 容器支持。可使用 XDebug 轻松调试。 示例代码: // Aspect/MonitorAspect.phpnamespace Aspect;use Go\Aop\Aspect;use Go\Aop\Intercept\FieldAccess;use Go\
命令go vet是一个用于检查Go语言源码中静态错误的简单工具。与大多数Go命令一样,go vet命令可以接受-n标记和-x标记。-n标记用于只打印流程中执行的命令而不真正执行它们。-n标记也用于打印流程中执行的命令,但不会取消这些命令的执行。示例如下: hc@ubt:~$ go vet -n pkgtool /usr/local/go/pkg/tool/linux_386/vet golang/
命令go fix会把指定代码包的所有Go语言源码文件中的旧版本代码修正为新版本的代码。这里所说的版本即Go语言的版本。代码包的所有Go语言源码文件不包括其子代码包(如果有的话)中的文件。修正操作包括把对旧程序调用的代码更换为对新程序调用的代码、把旧的语法更换为新的语法,等等。 这个工具其实非常有用。在编程语言的升级和演进的过程中,难免会对过时的和不够优秀的语法及标准库进行改进。这样的改进对于编程语