spring cloud笔记

微服务之间的通信

2018-07-14  本文已影响3人  HmilyMing

阿里的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分支

上一篇下一篇

猜你喜欢

热点阅读