源码地址:SpringCloud学习源码
Eureka包含了服务器端和客户端组件。
服务器端,也被称作是服务注册中心,用于提供服务的注册与发现。
客户端组件包含服务消费者与服务生产者。在应用程序运行时,Eureka客户端向注册中心注册自身提供的服务并周期性的发送心跳来更新它的服务租约。同时也可以从服务端查询当前注册的服务信息并把他们缓存到本地并周期性的刷新服务状态。
1、服务器端搭建
@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
}
}
使用注解@EnableEurekaServer,启动Eureka服务器端。
服务器端配置文件,有两种配置方式properties文件和yml文件,这两种文件语法有所不同:
在properties文件中,用属性spring.application.name = eureka-register来定义Eureka Server服务器的名称,但是用yml文件的话是:
spring:
application:
name: eureka-register
需要注意的是:yml属性间用:换行隔开,行与行之间不能是tab间隔,是两个空格。
security属性为Eureka注册中心提供简单的用户认证
security:
basic:
enabled: true
user:
name: user
password: password123
security.basic.enabled = true 表示是否开启基于Http basic的认证
security.user表示访问Eureka服务器的账户和密码
security.basic.enabled = true
security.user.name = user
security.user.password = password123
server.port = 8761 表示访问Eureka的端口号
eureka.client.register-with-eureka = false 表示Eureka是否注册自身到Eureka服务器。如果只有一个Eureka节点的话,就不需要了。对于Eureka集群管理,就有必要了。
eureka.client.fetch-register表示是否从eureka上获取注册信息。
eureka.client.service-url 表示将Eureka自身注册到哪台Eureka服务器上。
比如我们有两个Eureka节点的集群,我们可以把Eureka server1注册到Eureka Server2 ,同样地,我们可以把Eureka Server2注册到Eureka Server1上,以此完成两个server服务间的相互注册。
其实Eureka server也可以看做是一个Eureka Client,通过register-with-eureka :false;fetch-registry: false 表明自己是一个Eureka Server。
好了,现在我们启动这个简单的Eureka Server服务器:
spring:
application:
name: eureka-register
security:
basic:
enabled: true
user:
name: user
password: password123
server:
port: 8761
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://user:password123@localhost:8761/eureka
2、Eureka服务器访问
启动EurekaApplication,访问http://localhost:8761/ ,需要输入Eureka账户名和密码,完成http basic认证。
登录之后,就可以看到Eureka注册中心的情况:
可以看出来,EUREKA-REGISTER (Eureka配置的名称),已经注册到自身上
我在微信订阅号等你!