一)什么是服务注册中心
1.什么是服务中心
服务注册中心是服务实现服务化管理的核心组件,类似于目录服务的作用,主要用来 存储服务信息,譬如提供者 url 串、路由信息等。服务注册中心是 SOA 架构中最基础的设 施之一。
我们可以将服务注册中心理解成一个的qq群,qq群里的人就就是已经注册在中心内服务,我们可以查看列表查看群内的成员,当有成员要加入的时候,只要管理员同意就能再加入到群内,把这些映射到注册中心上,注解中心就能很好的理解了
![在这里插入图片描述![](https://img-blog.csdnimg.cn/20190831222057234.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDEyNDMwNw==,size_16,color_FFFFFF,t_70)
2.服务的注册中心是SOA架构的核心,我们通过服务注册中心管理我们的服务。在实际的开发中每个服务可能有不同的IP和端口,如果靠人为的去记忆那无非是一个的很让人蛋疼的事情。更重要的是服务和服务之间依赖关系我们要怎么去理清,在复杂的服务下,服务的依赖关系是网状的,如果靠人为的管理那也是一个的大工程。。。。
3.服务注解中心解决的问题
根据上面的描述服务注册中心可以帮我解决服务治理,和依赖关系,将服务发布到服务注册中心中,由服务注册中心帮我们管理我们发布的服务
4.常见的注册中心
1.zookeeper
2.Eureka
5.Eureka 注册中心三种角色
5.1Eureka Server 通过 Register、Get、Renew 等接口提供服务的注册和发现。
5.2Application Service (Service Provider) 服务提供方 把自身的服务实例注册到 Eureka Server 中
5.3Application Client (Service Consumer) 服务调用方 通过 Eureka Server 获取服务列表,消费服务。
Eureka-Eureka服务器搭建
一)使用IDEA快速搭建环境
1.添加基本的web启动器
2.添加test测试
3.添加Eureka-server
pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.sxt</groupId>
<artifactId>10-eurlka-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>10-eurlka-server</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR2</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
1.修改全局配置文件
因为当前的Eureka是一个服务端,在启动的时候它将自身注册到服务端,但是作为服务端不需要将自身注册到Eureka-Server上所以要添加如下的配置
spring.application.name=Eureka-server
server.port=8761
#当前服务的地址
eureka.instance.hostname=localhost
#关闭将自身注册到Eureka-server
eureka.client.register-with-eureka=false
#是否从Eureka-server获取注册信息
eureka.client.fetch-registry=false
2.修改启动类
添加注解@EnableEurekaServer 注解表示当前的服务为一个的Eureka服务端
package com.sxt;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
@EnableEurekaServer //表示当前的服务为一个的Eureka的服务端
public class Application
{
public static void main(String[] args)
{
SpringApplication.run(Application.class, args);
}
}
启动服务
能看到这个页面就是搭建成功了