服务调用:
指的是注册到服务端上的客户端之间数据的相互调用问题:服务与服务的通讯是基于http restful的
服务直接调用主要有两种实现:ribbon 和 feign
ribbon是实现负载均衡的客户端,feign是集成ribbon的,后期会介绍源码:
ribbon的实现架构原理:
ribbon搭建:
实际搭建一下:步骤如下
第一步:创建一个服务端,两个客户端,不会的参考我上节介绍创建: 端口server-9000 client1 -- 9001 client 2---9002
第二步:创建ribbon客户端:创建步骤与创建客户端基本一种:
区别是多加一个ribbon的pom文件:
· 第三步:创建helloServer 目的是调server-huhy下的服务接口:
1> 修改启动类:
2>编写service
第四步:启动服务和各实例:
访问 http://localhost:9003/hello?name=huhy 接口进行测试:
到这,ribbon的简单用法我已经演示完毕,后面会介绍feign的使用
feign搭建:
Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合,默 认实现了负载均衡的效果。
简而言之:
- Feign 采用的是基于接口的注解
- Feign 整合了ribbon,具有负载均衡的能力
- 整合了Hystrix,具有熔断的能力
第一步:与ribbon的搭建一样,创建一个服务端两个服务端:server-9000 client--9001 client2--9002
第二步:创建feign项目:
note:上面的包结构后面介绍,主要看pom,我先粘出来,后面就不再重复粘贴了
第三步:server包和controller 包配置:
server
controller
这些代码搭建大致都能看到,我就不单独解释了,