一个开源的强类型客户端(.NET 中的 Open Fegin)— Rabbit Go

小说:常夏石竹种子几月播种最好?作者:侯顺邓更新时间:2019-04-21字数:37272

然后,他明白了,当上帝关上一扇门的时候,他还会顺带着关上窗户,这样空调开起来的时候,就能冻死个人了。

2017年丛生紫薇多少钱一棵

瑶池中,仙肴盛宴预备齐当,玉帝王母见老君前来,强自拂去面上忧色,笑容可掬将老君迎到座上。
两名侍卫上前,用匕首撬开了木匣子,将盖子打开,揭开一层油纸,忽然两人‘啊’的一声大叫,吓得脸色惨白,一起后退两步,盯着匣子里的东西,一名侍卫喊了起来,“陛下,是哈曼将军”

小舞是背对着高大青年出现在对方背后的,蝎子辫甩出,那高大青年还在吃惊的时候,只觉得脖子上一紧。

在做RabbitCloud(之前是一个RPC,现在是一个微服务框架)的时候往往避不开客户端代理,之前把这些客户端代理都算作服务框架不可缺少的一部分,随着后期的深入发现这些客户端代理其实可以互通,类似spring cloud 的 open fegin。

因为它们最终的行为就是构建一个message进行编码,发送,然后解码服务端的返回信息。在阅读open fegin的源码之后写了Rabbit Go。

一个简单的客户端

image

image

调用示例

image

最新的样本:https://github.com/RabbitTeam/go/tree/master/samples

发生了什么?

我们使用fiddler来监听请求信息。

GetAsync

image

DeleteAsync

image

PostAsync

imageimage

PutAsync

imageimage

特性

  1. 丰富的拦截器(IAsyncRequestInterceptor、IAsyncExceptionInterceptor)
  2. 可替换的编解码器(默认为json,使用 Newtonsoft.Json)
  3. 全局拦截器
  4. 全局模型公约
  5. 良好的抽象与实现拆分(易扩展)
  6. url支持模板
  7. 可扩展的请求程序(目前只有HttpGoClient)
  8. 不只为HTTP(未来会添加对Grpc、dubbo等服务提供者的实现)

项目信息

源码地址:https://github.com/RabbitTeam/go

NuGet:https://www.nuget.org/packages/Rabbit.Go.Core

基于 Rabbit Go 的客户端

源码地址:DingTalk(钉钉开放平台)

用在生产的GoClient定义

书籍评论服务

image

image

image

账号服务

image

image

ps:生产项目集成了RabbitCloud,实现了服务发现、重试、负载均衡。每次调用过程中的 comment,user 会根据一定的策略自动解析成对应服务的真实ip地址和端口进行调用。

RabbitCloud还是一个实验性项目,目前只放出了源码,并没有任何集成文档。

开源地址:https://github.com/rabbitteam/rabbitcloud/tree/dev

接下来

  1. 在不使用DI的情况下使用
  2. 提供服务发现、重试、限流、断路器的支持(集成 Rabbit Cloud)
  3. 提供对Grpc的调用支持
  4. 提供对dubbo的调用支持

写在最后

.NET技术栈QQ群:384413261(点击加入 .NET Group

编辑:道文

发布:2019-04-21 00:58:50

当前文章:http://www.leetaemin.cn/house/j6jvcf1a6z.html

紫玉兰哪里有卖? 13公分紫薇树什么价格? 米径8公分乌桕树什么价格能买到? 凌霄花攀爬需要搭架子吗? 黄秋葵是什么东西啊 2015枫杨 14公分红叶李价格多少钱 1350元一棵 16年下半年流苏树价格走势怎么样,现价格在是多少?

57811 41620 61158 11004 84264 91578 69128 63700 73487 74871 51625 97986 58615 50195 97517 61110 60762 45419 35725 61227

我要说两句: (0人参与)

发布