服务消费者有两种服务的调用方式ribbon+restTemplate另一种是feign,此处讲述第一种。
项目结构:
我们将在活动的服务里调用单点登录的服务,验证用户是否登录。
一:服务消费者rest + ribbon方式需要引入ribbon支持,我们交于dcb-lott-service进行公共管理
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
二:配置服务消费者(dcb-lott-activity) application.yml
spring:
application:
name: dcb-lott-activety
server:
port: 8083
eureka:
client:
#指定注册中中心地址
serviceUrl:
defaultZone: http://localhost:8080/eureka/
instance:
hostname: localhost
dcb :
# 通过服务名进行服务消费,ribbon会通过服务名选择具体的服务实例(此处只是单纯配置请求服务的url)
doLoginUrl : http://DCB-LOTT-SSO/dcb/login/doLogin
三:使用restTemplate进行服务调用
进行多次调用,ribbon会自动进行负载均衡。
当前服务架构流程图:
dcb-lott-eureka-server:注册中心
dcb-lott-sso:两个服务提供者实例,分别注册于注册中心
dcb-lott-activety:服务消费者,注册于注册中心
由于使用了ribbon做负载均衡,所有会轮流调用服务提供者多个实例