vlambda博客
学习文章列表

一起学微服务(服务注册中心Eureka服务搭建)

1 单机Eureka搭建

1.引入依赖

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

2.yml文件

server:
  port: 7001

eureka:
  instance:
    #eureka服务端的实例名称
    hostname: localhost
  client:
    #false表示不向注册中心注册自己
    register-with-eureka: false
    #false表示自己端就是注册中心,职责是维护实例,并不需要检索服务
    fetch-registry: false
    service-url:
      #设置与Eureka Server 交互的地址查询服务和注册服务都需要依赖这个地址
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

3.主启动类

@SpringBootApplication
@EnableEurekaServer //表明这是服务注册中心
public class EurekaMain7001 {
    public static void main(String[] args) {
        SpringApplication.run(EurekaMain7001.class,args);
    }
}

4.启动项目,浏览器访问localhost:7001 出现下图表示注册注册中心配置成功。

上面的结果显示,No instances available,因为没有服务注册进来,当然不可能有服务被发现。

5.下面将上一期中的8001(微服务的支付服务提供者入驻服务注册中心)进行改造
5.1 pom文件中引入依赖

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

5.2 yml文件

server:
  port: 8001
spring:
  application:
    name: cloud-payment-service
eureka:
  client:
    #是否将自己注册到注册中心, 默认true
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://localhost:7001/eureka 

5.3 主启动类

@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient
public class PaymentMain8001 {
    public static void main(String[] args) {
        SpringApplication.run(PaymentMain8001.class,args);
    }
}

6.启动8001,在eureka界面查看,出现如下界面,8001成功入驻7001

一起学微服务(服务注册中心Eureka服务搭建)

注意,80也可以入驻进7001,方法和8001完全相同,不再赘述 启动服务的时候,一定先启动eureka服务端,再启动客户端。

一起学微服务(服务注册中心Eureka服务搭建)

当80和8001都成功入驻7001后,直接访问80就可以调用8001的。

2 Eureka集群搭建

原理:互相注册,守望相助
目的:高可用,实现负载均衡和故障容错

因为是集群部署,为了便于区分主机,因此需要对映射文件hosts做简单的修改。一起学微服务(服务注册中心Eureka服务搭建)在文件末尾添加

127.0.0.1 eureka7001.com
127.0.0.1 eureka7002.com

上面已经配置好了7001,请小伙伴们自己创建7002,除了端口号不一样,其他的完全copy即可。

7001 yml文件改写成集群版的配置

server:
  port: 7001

eureka:
  instance:
    hostname: eureka7001.com
  client:
    #false表示不向注册中心注册自己
    register-with-eureka: false
    #false表示自己端就是注册中心,职责是维护实例,并不需要检索服务
    fetch-registry: false
    service-url:
       defaultZone: http://eureka7002.com:7002/eureka/

7002 yml文件改写成集群版的配置

server:
  port: 7002

eureka:
  instance:
    hostname: eureka7002.com
  client:
    #false表示不向注册中心注册自己
    register-with-eureka: false
    #false表示自己端就是注册中心,职责是维护实例,并不需要检索服务
    fetch-registry: false
    service-url:
       defaultZone: http://eureka7001.com:7001/eureka/

分别启动7001和7002,浏览器查看,出现如下结果,eureka集群搭建完毕。
7001注册到7002,7002注册到7001,相互注册,互相守望。

以上就是今天的所有内容了。如果觉得有用的话,麻烦求点赞、求转发,你们的支持就是我不断分享的动力。