一、Zookeeper(服务发现组件)
一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,能够实现Zookeeper分布式锁、Zookeeper Leader选举、数据同步流程等功能。
在Java 微服务架构中的代码实现
1、引入pom.xml
<!--注册远程服务器Zk服务 Service Discovery with Zookeeper -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
</dependency>
<!--注册本机Zk服务 引入zookeeper-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-all</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.12</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
2、添加注解,在启动类中添加注解@EnableDiscoveryClient
@SpringBootApplication
@MapperScan("com.cloud.microprovider.mapper")
@EnableDiscoveryClient
public class MicroProviderApplication {
public static void main(String[] args) {
SpringApplication.run(MicroProviderApplication.class, args);
}
}
3、在application.yml添加配置
spring:
cloud:
zookeeper:
connect-string: localhost:2181
application:
name: provider
spring:
cloud:
zookeeper:
connect-string: localhost:2181
discovery:
register: false
4、Zookeeper安装、启动以及查看服务命令
5、Zookeeper需要使用3.5x+版本以上,不然有兼容性问题
二、Feign(客户端通信框架)
Feign是Netflix开发的声明式、模板化的HTTP客户端整合了Spring Cloud Ribbon和Spring Cloud Histrix,除了提供这两者的强大功能外,还提供了一种声明式的Web服务客户端定义的方式。
1、引入pom.xml
2、添加注解
三、Ribbon(负载均衡)