当前位置: 萬仟网 > IT编程>软件设计>架构 > spring cloud微服务快速教程之(二)服务注册与发现 eureka

spring cloud微服务快速教程之(二)服务注册与发现 eureka

2020年01月07日  | 萬仟网IT编程  | 我要评论
0、为什么需要eureka 当我们从当体系统拆分为多个独立服务项目之后,如果aaa.com/uer、aaa.com/order;;相互之间调用,如果只是一个服务一个实例,那还可以直接通过固定地址(如http://111.111.11.1:7119/user/getuser/1)直接访问; 但是,我们 ...

0、为什么需要eureka

  当我们从当体系统拆分为多个独立服务项目之后,如果aaa.com/uer、aaa.com/order;;相互之间调用,如果只是一个服务一个实例,那还可以直接通过固定地址(如http://111.111.11.1:7119/user/getuser/1)直接访问;

  但是,我们一个服务有很多个实例,这样你就不能写死地址了吧,多个之间你得挑出一个来调用吧(负载均衡),还有多个实例有的停止了,有的新加入了,这你得心跳检测健康监测吧等等;这些,都是从单体系统拆分后面临的实际问题,你可以自己一个一个去克服和实现;当遇到了spring cloud,哈哈,你有福了,spring cloud eureka正是为你解决以上问题而来;

  eureka服务发现组件包含eureka server(服务注册中心)和eureka client(服务注册与发现);本身通过心跳检测(默认30s)进行服务的注册与发现与健康检查

一、eureka集成

1、eureka server

1.1、添加依赖:

        <dependency>
            <groupid>org.springframework.cloud</groupid>
            <artifactid>spring-cloud-starter-netflix-eureka-server</artifactid>
        </dependency>

1.2、配置文件增加配置

eureka:
  instance:
    hostname: localhost
    prefer-ip-address: true
  client:
    registerwitheureka: false
    fetchregistry: false
    serviceurl:
      defaultzone: http://${eureka.instance.hostname}:${server.port}/eureka/
  server:
    enable-self-preservation: false


spring:
  application:
    name: eurka-server

1.3、启动类增加 @enableeurekaserver 注解

@springbootapplication
@enableeurekaserver
public class application
{
    public static void main(string[] args)
    {
        springapplication.run(application.class);
    }
}

一个eureka server就完成了,启动运行

 

 

还没有服务实例,因为我们还没添加,好,下面我们来添加eureka client

2、eureka client

2.1、添加依赖

        <dependency>
            <groupid>org.springframework.cloud</groupid>
            <artifactid>spring-cloud-starter-netflix-eureka-client</artifactid>
        </dependency>

2.2、修改配置文件

server:
  port: 8763

spring:
  application:
    name: user

eureka:
  client:
    serviceurl:
      defaultzone: http://localhost:8761/eureka/
  instance:
    prefer-ip-address: true

2.3、启动类中增加 @enableeurekaclient 注解

@springbootapplication
@enableeurekaclient
@enablehystrixdashboard
public class application
{
    public  static void main(string[] args)
    {
        springapplication.run(application.class);
    }
}

完成

我们在controller里面添加一个方法进行测试

@restcontroller
@requestmapping("/user")
public class usercontroller
{
    @autowired
    private serviceutil serviceutil;

    @requestmapping("/hello")
    public  string hello()
    {
        return  ("hello world" +serviceutil.getport());
    }
}

3、测试

先启动eureka server 项目,再启动client项目,我们可以看到,client的服务实例已经注册进来了

 

 再切换端口增加一个实例,可以看到,也注册进来了,这样就可以通过eureka管理多个服务的多个实例以及相互之间调用的问题了

 

 

git源码后面再放出

 

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
Copyright © 2017-2020  萬仟网 保留所有权利. 粤ICP备17035492号