- 授权协议: Apache-2.0
- 开发语言: Google Go
- 操作系统: 跨平台
- 软件首页: https://github.com/xiaoenai/tp-micro
- 软件文档: https://github.com/xiaoenai/tp-micro/blob/master/README_ZH.md
- 官方下载: https://github.com/xiaoenai/tp-micro/releases
软件介绍
TP-Micro 是一个基于 Teleport 定制的、简约而强大的微服务框架。
安装
go version > 1.9
go get -u -f -d github.com/xiaoenai/tp-micro/... cd $GOPATH/src/github.com/xiaoenai/tp-micro/cmd/micro go install
特性
支持服务自动发现
支持自定义服务链接选择器
支持负载均衡
支持多路复用IO及其连接池
支持自定义协议
支持自定义Body的编解码类型
支持插件扩展
支持心跳机制
日志信息详尽,支持打印输入、输出消息的详细信息(状态码、消息头、消息体)
支持设置慢操作报警阈值
支持自定义日志
支持平滑关闭与更新
支持推送
支持的网络类型:
tcp、tcp4、tcp6、unix、unixpacket等客户端支持断线后自动重连
支持过载保护(断路器)
代码示例
服务端
package main
import (
micro "github.com/xiaoenai/tp-micro"
tp "github.com/henrylee2cn/teleport"
)
// Arg arg
type Arg struct {
A int
B int `param:""`
}
// P handler
type P struct {
tp.PullCtx
}
// Divide divide API
func (p *P) Divide(arg *Arg) (int, *tp.Rerror) {
return arg.A / arg.B, nil
}
func main() {
srv := micro.NewServer(micro.SrvConfig{
ListenAddress: ":9090",
})
srv.RoutePull(new(P))
srv.ListenAndServe()
}客户端
package main
import (
micro "github.com/xiaoenai/tp-micro"
tp "github.com/henrylee2cn/teleport"
)
func main() {
cli := micro.NewClient(
micro.CliConfig{},
micro.NewStaticLinker(":9090"),
)
defer cli.Close()
type Arg struct {
A int
B int
}
var result int
rerr := cli.Pull("/p/divide", &Arg{
A: 10,
B: 2,
}, &result).Rerror()
if rerr != nil {
tp.Fatalf("%v", rerr)
}
tp.Infof("10/2=%d", result)
rerr = cli.Pull("/p/divide", &Arg{
A: 10,
B: 0,
}, &result).Rerror()
if rerr == nil {
tp.Fatalf("%v", rerr)
}
tp.Infof("test binding error: ok: %v", rerr)
}开源协议
Micro 项目采用商业应用友好的 Apache2.0 协议发布
算法(英文版•第4版)
[美] Robert Sedgewick、[美] Kevin Wayne / 人民邮电出版社 / 2016-3 / 129.00元
本书作为算法领域经典的参考书,全面介绍了关于算法和数据结构的必备知识,并特别针对排序、搜索、图处理和字符串处理进行了论述。第4 版具体给出了每位程序员应知应会的50 个算法,提供了实际代码,而且这些Java 代码实现采用了模块化的编程风格,读者可以方便地加以改造。本书配套网站提供了本书内容的摘要及更多的代码实现、测试数据、练习、教学课件等资源。一起来看看 《算法(英文版•第4版)》 这本书的介绍吧!
