z.cn/wangzhan/weihu/"> 网站运营维护
  • 案例

  • 方案

  • 电商网站开发

  • 微信小程序

  • 我们

  • 联系

  • 资讯

    精准传达 • 有效沟通

    从品牌网站建设到网络营销策划,从策略到执行的一站式服务

    如何将HttpClientFactory与Steeltoe结合来完成服务发现

    这篇文章主要为大家分析了如何将HttpClientFactory与Steeltoe结合来完成服务发现的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“如何将HttpClientFactory与Steeltoe结合来完成服务发现”的知识吧。

    公司主营业务:成都网站设计、成都网站建设、外贸网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出金城江免费做网站回馈大家。

    前言

    用HttpClientFactory实现了简单的熔断降级。

    下面就来简单说说用HttpClientFactory来实现服务发现。由于标题已经好明显的说了Steeltoe

    因此这里会要求有Spring Clound的相关环境,也默认各位对这里有些许了解,所以不会涉及搭建过程的。

    下面就开始正文了。

    定义Service

    这里的Service,其实可以比较简单的理解成对注册到Eureka的服务进行调用,然后进行后续处理。

    如何将HttpClientFactory与Steeltoe结合来完成服务发现

    在上面的Service中,都是常规的不能再常规的HttpClient的用法!似乎也没有看到任何和服务发现相关的东西呀。

    确实,就上面的代码,完成不了服务发现,因为我们的主角,HttpClientFactory还没有出场!

    先定义好这个Service,是因为我们这里要用另一种client方式(Typed Client)。

    下面就去Startup进行相关的配置了。

    在Startup进行配置

    在进行配置之前,我们要先添加Steeltoe.Discovery.ClientCore的引用。

    再按照Steeltoe的配置说明,在appsettings.json中添加下面的配置

    如何将HttpClientFactory与Steeltoe结合来完成服务发现

    最后就是在ConfigureServices方法里面进行操作了。

    如何将HttpClientFactory与Steeltoe结合来完成服务发现

    这里注册HttpClient,涉及到了两个点。一个是Typed Client,另一个是outgoing request middleware

    Typed Client 主要是AddTypedClient(),表明注册的这个HttpClient是给这个类型用的。

    DiscoveryHttpMessageHandler表明,使用这个HttpClient的时候,会使用这个Handler.

    另外,这里指定的BaseAddress是http://bservicetest/api/values/。

    这个是已经注册到Eureka的另外一个测试服务,我们就是要发现它,然后从这个服务里面取到结果。

    然后,自然就是控制器了。

    Controller和日志使用

    Controller就是很简单的了,不需要多说。

    如何将HttpClientFactory与Steeltoe结合来完成服务发现

    这里还加了一个日志,是为了方便发布后查看日志,所以添加了NLog来输出日志。

    添加一个nlog.config,内容大致如下。

    如何将HttpClientFactory与Steeltoe结合来完成服务发现

    然后在Program添一行使用NLog的代码。

    如何将HttpClientFactory与Steeltoe结合来完成服务发现

    运行效果

    发布之后,可以看到Eureka上面已经成功注册了我们的这个ClientTest服务

    如何将HttpClientFactory与Steeltoe结合来完成服务发现

    其中,上图两个箭头的地方就是我们用到的服务,CLIENTTEST就是我们刚才发布的。BSERVICETEST是另一个测试服务。

    CLIENTTEST就是会调用BSERVICETEST这个测试服务拿数据。

    下面请求看看效果。

    如何将HttpClientFactory与Steeltoe结合来完成服务发现

    从动图来看,是已经达到预期了,由于BSERVICETEST有两个实例,所以也可以看到上面的结果是,两个实例在随机返回结果。

    最后看看日志

    如何将HttpClientFactory与Steeltoe结合来完成服务发现

    请求也确实是到了我们的BSERVICETEST,而不是直接通过这个service的直接地址去访问的。

    关于“如何将HttpClientFactory与Steeltoe结合来完成服务发现”就介绍到这了,更多相关内容可以搜索创新互联以前的文章,希望能够帮助大家答疑解惑,请多多支持创新互联网站!


    当前文章:如何将HttpClientFactory与Steeltoe结合来完成服务发现
    标题URL:http://cdkjz.cn/article/pijdhj.html
    多年建站经验

    多一份参考,总有益处

    联系快上网,免费获得专属《策划方案》及报价

    咨询相关问题或预约面谈,可以通过以下方式与我们联系

    大客户专线   成都:13518219792   座机:028-86922220