美文网首页spring cloud笔记
微服务之间的通信

微服务之间的通信

作者: HmilyMing | 来源:发表于2018-07-14 17:15 被阅读3次

    阿里的dubbo是RPC的代表。dubbo本身的定位就是一个RPC框架,基于dubbo开发的应用还是要依赖周边的生态服务。相比于其他RPC框架,dubbo的服务治理可谓相当的完善,提供了服务发现、负载均衡、路由等基本分布式系统能力以及服务治理的可视化平台。所以在spring cloud出来之前,dubbo应用得相当广泛。

    spring cloud是HTTP的代表。dubbo的定位始终是RPC框架,而spring cloud是微服务下的一站式的解决方案。基于http方式很容易解决跨语言跨平台的调用问题。

    1.对外提供服务

    实现:order服务调用product服务的接口

    首先在product提供这个接口

    直接浏览器访问这个接口看看是否能行

    直接访问成功

    2.三种resttemplate访问方式

        1.第一种方式(直接使用restTemplate, url写死)

    调用方的代码如下:

    第一种方式的代码 调用成功

        2.第二种方式(利用loadBalancerClient通过应用名获取url, 然后再使用restTemplate)

    调用成功

        3.第三种方式(利用@LoadBalanced, 可在restTemplate里使用应用名字)

    product 代码地址: https://github.com/hmilyos/springCloud-product.git      restTemplateTest分支

    order代码地址:https://github.com/hmilyos/springCloud-order.git    restTemplateTest分支

    eureka服务发现代码: https://github.com/hmilyos/springCloud-eureka.git   master分支

    3.feign

    feign是声明式REST客户端,伪RPC,采用了基于接口的注解,它内部也是使用了Ribbon做负载均衡

    添加feign的依赖: spring-cloud-starter-openfeign

    在启动类加上EnableFeignClients注解

    feign方式调用成功

    feign代码: https://github.com/hmilyos/springCloud-order.git      feignTest分支

    相关文章

      网友评论

        本文标题:微服务之间的通信

        本文链接:https://www.haomeiwen.com/subject/pysspftx.html