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


    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源码后面再放出

  • 相关阅读:
    DOS批量递归删除文件夹
    根据关键词kill进程
    docker创建镜像的几个命令
    OpenSSL命令---passwd
    A configuration with this name already exists
    查看Linux版本
    ubuntu初次安装后设置root用户密码
    [转载]气象数据集下载网站(包括中国700多个站)
    将界面从屏幕外拖回来方法
    使用GitHub分享代码
  • 原文地址:https://www.cnblogs.com/yanghj/p/12160103.html
Copyright © 2020-2023  润新知