Spring Cloud服务注册发现ZooKeeper

服务端

引入依赖

pom.xml增加zookeeper依赖:

<!-- 使用zookeeper进行服务注册发现. -->
<dependency>
   <
groupId>org.springframework.cloud</groupId>
   <
artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
</
dependency>

配置文件

增加当前应用注册的服务名及zookeeper配置信息。

spring:
    application:
        name: media
############## Service Discovery ##############
spring:
cloud:
        zookeeper:
        # ZooKeeper的连接字符串,如果是集群,逗号分隔节点,格式:ip:port[,ip2:port2,.....]
            connectString: 192.168.2.226:2181

启用服务注册发现

在Spring Boot项目的启动类增加注解

@EnableDiscoveryClient

消费端

引入依赖

pom.xml增加zookeeper和feign依赖:

<!-- 使用zookeeper进行服务注册发现. -->
<dependency>
   <
groupId>org.springframework.cloud</groupId>
   <
artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
</
dependency>

<!-- Feign -->
<dependency>
   <
groupId>org.springframework.cloud</groupId>
   <
artifactId>spring-cloud-starter-feign</artifactId>
</
dependency>

Feign使用http协议进行请求。

配置文件

增加zookeeper配置信息及是否注册当前应用到zookeeper(默认注册)。

############## Service Discovery ##############
spring:
cloud:
        zookeeper:
        # ZooKeeper的连接字符串,如果是集群,逗号分隔节点,格式:ip:port[,ip2:port2,.....]
            connectString: 192.168.2.226:2181
    #消费端不向zookeeper注册,如果当前服务同时对外提供服务,不用写以下配置!
    discovery:
        register: false

启用服务注册发现

在Spring Boot项目的启动类增加注解

@EnableDiscoveryClient
@EnableFeignClients

编写消费端类

示例:

/**
 * Feign文件上传客户端.
 */
@Component
@FeignClient(value = "sso")
public interface UserClient {

    /**
     * 根据用户Id获取用户详情.
     *
     * @param userIds 用户id列表.
     * @return 用户详情列表.
     * @author chengyuebin
     */
    @PostMapping("/itsm/system/sso/user/queryUserById")
    Map<String, Object> userDetail(@RequestParam("userIds") List<String> userIds);

}

@FeignClientvalue值对应服务端的spring.application.name值。请求的路径为服务端端口号之后的路径。

使用Feign发起请求

示例:

首先注入消费端的类。

@Autowired
private UserClient userClient;

发起请求。

Map<String, Object> userInterfaceMap = userClient.userDetail(userIds);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值