上一页 1 2 3 4 5 6 ··· 22 下一页
摘要: 首先重新改造一下我们之前的自定义错误处理函数 package AppLib import ( "fmt" "gopkg.in/go-playground/validator.v9" "reflect" "regexp" ) //封装一个通用的正则方法,省去每次都要写下面这段很长的代码 func AddRegexTag(tagName string, patte... 阅读全文
posted @ 2020-01-03 15:46 离地最远的星 阅读(372) 评论(0) 推荐(0) 编辑
摘要: 编写一个简单的例子来理解一下validator验证器 package main import ( "fmt" "gopkg.in/go-playground/validator.v9" "micro/AppLib" ) type Users struct { Username string `validate:"required"` Userpwd... 阅读全文
posted @ 2020-01-03 14:16 离地最远的星 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 编写数据库初始化函数 package AppInit import ( "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql" "log" ) var db *gorm.DB func init() { var err error db, err = gorm.Open("m... 阅读全文
posted @ 2020-01-03 13:48 离地最远的星 阅读(645) 评论(0) 推荐(0) 编辑
摘要: 编写Models.proto syntax = "proto3"; package services; import "google/protobuf/timestamp.proto"; //使用第三方proto支持时间类型的参数 message UserModel { int32 user_id = 1; string user_name = 2; string ... 阅读全文
posted @ 2020-01-03 00:43 离地最远的星 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 使用Postman去点对点调用我们之前写的service,header中设置Content-type是application/json,发送如下图的json数据即可。json指定了jsonrpc,指定了调用的endpoint 启动grpc server package main import (v "github.com/micro/go-micro" "github... 阅读全文
posted @ 2020-01-02 22:14 离地最远的星 阅读(1259) 评论(0) 推荐(0) 编辑
摘要: 首先创建grpc服务原来是micro.NewService还支持http等其他访问方式,但是grpc.NewService这种方法只支持grpc访问,所以需要创建网关让其支持http访问 package main import ( "github.com/micro/go-micro" "github.com/micro/go-micro/registry" "gith... 阅读全文
posted @ 2020-01-02 21:37 离地最远的星 阅读(1315) 评论(0) 推荐(0) 编辑
摘要: 因为新版Micro工具已经弃用了consul,加入了etcd的支持,所以我们把服务注册放入到etcd中 package main import ( "github.com/micro/go-micro" "github.com/micro/go-micro/registry" "github.com/micro/go-micro/registry/etcd" ... 阅读全文
posted @ 2020-01-02 19:44 离地最远的星 阅读(734) 评论(0) 推荐(0) 编辑
摘要: 如果熔断器只设置timeout参数,那么只是解决了报错后服务怎么处理的问题,但是每次请求都会两秒,但是如果请求的服务一直很慢,那么每次至少要等待timeout的时间才会调用降级方法返回结果,这是相当慢的,所以我们可以设置其他参数,让熔断器在服务请求超时或失败一定次数后,以后接受到请求直接走降级方法,这样就提高了响应的速度 代码如下 package Wrappers import ( ... 阅读全文
posted @ 2020-01-02 16:32 离地最远的星 阅读(729) 评论(0) 推荐(0) 编辑
摘要: 很多时候我们一个service有很多响应类型,当请求超时或者失败的时候熔断器会调用降级服务,并返回值,但是我们熔断器一个service只定义了一次,所以具体应该返回哪个类型的response我们不知道,所以可以使用下面的通用方法来解决这个问题 package Wrappers import ( "context" "github.com/afex/hystrix-go/hyst... 阅读全文
posted @ 2020-01-02 16:13 离地最远的星 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 首先定义proto文件 syntax = "proto3"; package Services; import "Models.proto"; message ProdsRequest { // @inject_tag: json:"size" form:"size" int32 size = 1; // @inject_tag: uri:"pid" int32 ... 阅读全文
posted @ 2020-01-02 15:51 离地最远的星 阅读(544) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 22 下一页