购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 注册中心

2.2.1 介绍注册中心

注册中心可以说是微服务架构中的“通讯录”,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到注册中心,当服务需要调用其他服务时,就会在注册中心找到服务的地址,进行调用。

如图 2.1 所示,服务端A,B,C注册到注册中心,当消费者中D,E,F需要服务端的数据时,从注册中心获取到服务地址进行调用。

图 2.1

1. 注册中心的主要作用

服务注册中心(称注册中心)是微服务架构非常重要的一个组件,在微服务架构里主要起到了协调者的一个作用。注册中心一般包含如下几个功能:

(1)服务发现

●服务注册/反注册:保存服务提供者和服务调用者的信息。

●服务订阅/取消订阅:服务调用者订阅服务提供者的信息,最好有实时推送的功能。

●服务路由(可选):具有筛选整合服务提供者的能力。

(2)服务配置

●配置订阅:服务提供者和服务调用者订阅微服务相关的配置。

●配置下发:主动将配置推送给服务提供者和服务调用者。

(3)服务健康检测

检测服务提供者的健康情况。

2. 常见的注册中心

●Zookeeper

zookeeper它是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。简单来说zookeeper=文件系统+监听通知机制。

●Eureka

Eureka是在Java语言上,基于Restful Api开发的服务注册与发现组件,Springcloud Netflix中的重要组件。

●Nacos

Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。简单来说 Nacos 就是注册中心 + 配置中心的组合,提供简单易用的特性集,帮助我们解决微服务开发必会涉及的服务注册与发现,服务配置,服务管理等问题。Nacos 还是Spring Cloud Alibaba 组件之一,负责服务注册与发现。

2.2.2 搭建注册中心

创建一个pom工程【cloud_maven】,作为整个微服务的父级工程模块,无须删除当前工程的任何包,如图 2.2 所示。

图 2.2

在当前【cloud_maven】工程配置pom.xml文件的坐标信息,配置代码如下所示。

如上述,pom文件中坐标描述如下所示:

●spring-cloud-dependencies SpringCloud核心坐标

●mysql-connector-java数据库驱动坐标

●druid数据库连接池坐标

●mybatis-spring-boot-starter mybatis的核心坐标

●junit test测试坐标

●log4j 日志坐标

●lombok 自动生成get set方法

然后再选择pom工程【cloud_maven】,右击选择“Module”按钮,创建注册中心模块并命名为【cloud_eureka】,如图 2.3 所示。

图 2.3

在进行配置【cloud_eureka】工程中的pom.xml文件中的坐标信息,具体的配置信息如下所示。

如上述pom.xml文件中的坐标描述:

●spring-cloud-starter-netflix-eureka-server eureka-server 服务端核心坐标

●spring-boot-starter-web web组件核心坐标

●spring-boot-starter-actuator监控核心坐标

●lombok自动生成get set 方法坐标

●spring-boot-starter-test springboot测试核心坐标

●junit test测试坐标

进行配置application.yml文件:

如上application.yml文件配置描述如下:

●server.port 配置端口

●eureka.instance.hostname: localhost eureka服务端的实例名字

●eureka.clien.register-with-eureka: false 表示不向注册中心注册自己

●eureka.clien.fetch-registry: false表示自己就是注册中心,职责是维护服务实例,并不需要去检索服务

●eureka.clien.service-url.defaultZone:http://${eureka.instance.ho stname}:${server.port}/eureka/设置与eureka server交互的地址查询服务和注册服务都需要依赖这个地址

主启动类:

在【cloud_eureka】工程中的com.cloud.maven包下创建一个主启动类,代码如下所示。

如上主启动注解描述:

●@SpringBootApplication SringBoot启动类入口

●@EnableEurekaServer 开启扫描Eureka

启动主启动类,在浏览器输入地址http://localhost:7001/,如图2.4所示。

图 2.4

如图 2.4所示,Instances currenty registered with Eureka是监控当前没有任何服务注册,当前是没有服务所示这里显示什么都没有。 hHiDdMSZ32V39Q1qVf4eAg6A9mEDihzjcGaGbFVjfdniASATr58aNa0K5wzjfbXt

点击中间区域
呼出菜单
上一章
目录
下一章
×