经过上篇文章(SpringCloud入门探索)的讲解相信大家对SpringCloud有了大概的认识,今天就为大家讲解SpringCloud中的一个关键组件Eureka,也是所有服务之间相互调用API的基础。

        Eureka:又分为Eureka客户端和Eureka服务器,Eureka服务器:服务注册中心,Eureka客户端:需要注册的服务。说的通俗易懂点Eureka服务器就好比CSDN网站,Eureka客户端就好比一个一个的用户

      很多人会有疑问问什么要使用Eureka 此处联想黑人问号?

        就拿上面的例子来说(前提:CSDN我们都在线,而且你也给了我你的住址信息),如果不使用CSDN我必须根据你提供的信息然后跋山涉水的才能找到你本人,而且如果突然哪天你搬家了然而并没有告诉我你的住址,然后就懵逼了...。有了CSDN不管你的信息怎么改变然后我就可以立马找到你和你进行发交流,询问你我想要的东西。

        用正式的语言解释:我们都在Eureka服务器注册服务一个名称,然后通过服务名称找到需要的服务,而不是通过固定的Ip地址进行访问调用服务。使用Ip地址缺点就是如果更换Ip岂不是到一个地方就要修改配置文件才能进行访问,如果一两个还好如果几十个呢?

        Ok,现在正式开始搭建Eureka服务

1、首先在pom.xml文件中导入依赖

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-eureka-server</artifactId>
	<version>1.4.4.RELEASE</version>
</dependency>
2、在Eureka服务服务启动类上加
@EnableEurekaServer

3、yml文件加入配置  注:

fetch-registry: false
register-with-eureka: false
必须设置否则会启动服务报错,fetch-registry 是否检索服务,register-with-eureka:将自己作为一个客户端
server:
  port: 8761
eureka:
  serviceUrl:
    #defaultZone: http://user:admin@localhost:8761/eureka
    defaultZone: http://localhost:8761/eureka
  client:
    fetch-registry: false
    register-with-eureka: false #eureka 既是服务者也是提供者 将自己作为一个客户端
spring:
  application:
    name: microservice-discovery-eureka

4、将微服务注册到Eureka注册中心,Eureka客户端(因为使用了parent Pom文件所以这里没有选择版本)

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
5、在Eureka服务服务启动类上加入注解
@EnableDiscoveryClient  //或者@EnableEurekaClient

6、微服务yml文件增加配置

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka
  instance:
    instance-id:  ${spring.application.name}:${spring.application.instance_id:${server.port}}}
    prefer-ip-address: true

defaultZone:默认注册EurekaServer地址

instance-id :Environment获取的默认应用程序名称(服务ID),虚拟主机和非安全端口分别为${spring.application.name}${spring.application.name}${server.port}

prefer-ip-address:显示ip地址

GitHub地址:https://github.com/mackjie/microservice-spring-cloud,请首先按照ReadMe步骤进行

因为里面已经结合了RabbitMQ,所以需要先安装RabbitMQ,数据库使用的是Mysql (否则回启动报错)

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐