eureka工程搭建(eureka已经停更)

Eureka介绍:eureka是一个服务注册中心,如图:

 

 之前项目之间接口调用是通过httpclient或者restTemplate(底层也是httpclient)进行调用,这样做有一个坏处:每一个项目的端口号和名字都要配置。所以,eureka就是把所有的项目都给注册到一个地方来,

然后用他们在yml文件中定义的名字:spring:application:name 来进行调用,再则,通过eureka的方式进行注册管理方便以后集成ribbon负载均衡或者openfeign,hystrix服务降级熔断等技术。

 

 

1.服务端搭建,pom文件

<dependencies>
<!--eureka-server-->
//服务端的jar包,相应的也有客户端的,两个不一样
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
//封装的实体类和返回格式
<dependency>
<groupId>cloud2020</groupId>
<artifactId>cloud-common-resources</artifactId>
<version>${project.version}</version>
</dependency>
<!--boot web acctuator-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

</dependencies>

2.yml文件

server:
port: 7001
eureka:
instance:
hostname: localhost
client:
# 下边这两行说明自己就是服务注册中心,其余所有的服务都要在服务注册中心注册才能互相调用,而自己不需要注册自己
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka

3.主启动

因为ereka包含两个组件:client和server,在pom文件中也做了区分,注意eureka的server可以有多个代表集群,配置多个server时只需要在yml文件中的defaultZone加上其余的eureka的地址即可(互相注册)

另外,在主启动的类上加@EnableEurekaServer注解开启服务端eureka功能。

4.启动:输入localhost:7001可以看到显示没有可以可用实例,因为只是配置了服务端,没有配置客户端。

 

 

 5.客户端修改

主启动加上  @EnableEurekaClient注解

 

pom文件添加新的jar:

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

yml文件添加,注意之前配置的spring-application-name就是注册进服务中心以后实例的名字:

eureka:
client:
# 表示将自己注册到eureka服务中心去
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://localhost:7001/eureka
如果eureka的服务是集群配置则defaultZone需要这么配置

defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka

最后再次打开eureka的服务中心,可以看到服务已经注册进去了

 6.集群的话需要建一个一样的项目,为了区分服务名如果在本地测试的话可以在windows操作系统的 C:\Windows\System32\drivers\etc下修改host文件,使127.0.0.1指向两个不同的服务名就可以

比如这里建了两个名字

eureka7001.com,
eureka7002.com

 

 


然后再yml文件的defaultZone中指向对方的地址,例如:
defaultZone: http://eureka7002.com:7002/eureka

这里的eureka7002.com就是在host文件中的127.0.0.1也就是localhost
最后启动,可以看到在7002下出现了7001的服务端,表示集群成功:

 

posted @ 2020-04-23 17:12  ~笑春风~  阅读(390)  评论(0编辑  收藏  举报