zoukankan      html  css  js  c++  java
  • SpringCloud搭建注册中心与服务注册

    上一篇文章《微服务注册中心原理,看这篇就够了!》介绍了注册中心的概念和原理,本文将介绍下利用Eureka搭建中心并注册服务到注册中心的过程。

    本文目录

    一、Eureka介绍二、搭建注册中心三:注册服务

    一、Eureka介绍

    Eureka是Netflix开发的服务发现框架,SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。

    Eureka包含两个组件:Eureka Server和Eureka Client

    • Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。
    • Eureka Client是一个java客户端,用于简化与Eureka Server的交互,客户端同时也就是一个内置的、使用轮询(round-robin)负载算法的负载均衡器。

    二、搭建注册中心

    首先新建一个SpringBoot项目,命名spring-cloud-eureka,然后按照下面步骤编写代码即可。

    1. pom.xml代码
      添加eureka-server的依赖,代码如下:
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>

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

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>

        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>Finchley.RELEASE</version><!-- eureka版本 -->
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    1. 启动类代码
      启动类添加注解@EnableEurekaServer即可,代码如下:
    @EnableEurekaServer
    @SpringBootApplication
    public class SpringCloudEurekaApplication {
        public static void main(String[] args) {
            SpringApplication.run(SpringCloudEurekaApplication.class, args);
        }
    }
    1. 配置文件
      使用yml的配置文件,application.yml配置如下:
    server:
      port: 9001 #服务端口
    eureka:
      instance:
        hostname: localhost
      client:
        register-with-eureka: false #是否将eureka自身作为应用注册到eureka注册中心
        fetch-registry: false #为true时,可以启动,但报异常:Cannot execute request on any known server
        serviceUrl:
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

    配置项说明:

    1. server.port=9001表示设置该服务注册中心的端口号 

    2. eureka.instance.hostname=localhost表示设置该服务注册中心的hostname 

    3. eureka.client.register-with-eureka=false,由于我们目前创建的应用是一个服务注册中心,而不是普通的应用。默认情况下,这个应用会向注册中心(也是它自己)注册它自己,设置为false表示禁止这种默认行为 

    4. eureka.client.fetch-registry=false,表示不去检索其他的服务,因为服务注册中心本身的职责就是维护服务实例,它也不需要去检索其他服务
    1. 运行截图
      打开浏览器访问http://localhost:9001/,可以看到注册中心以及启动,运行截图如下:

    注册中心运行截图

    三:注册服务

    服务注册中心有了之后,我们可以向这个服务注册中心注册一个服务提供者,新建一个SpringBoot项目,命名spring-cloud-user-service,提供用户服务,然后按照下面步骤编写代码即可。

    1. pom.xml代码
      添加eureka-server的依赖,代码如下:
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

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


    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.RELEASE</version><!-- eureka版本 -->
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    1. 启动类代码
      启动类添加注解@EnableEurekaClient即可,代码如下:
    @EnableEurekaClient
    @SpringBootApplication
    public class UserServiceDemoApplication {

        public static void main(String[] args) {
            SpringApplication.run(UserServiceDemoApplication.class, args);
        }
    }
    1. 配置文件
      使用yml的配置文件,application.yml配置如下:
    server:
      port: 8081 #服务端口
    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:9001/eureka/
    spring:
      application:
        name: user-service
    1. 运行截图

    打开浏览器访问http://localhost:9001/,与上图相比可以看到注册中心中已经注册好了用户服务,截图如下:


    注册服务后注册中心截图

    到此SpringCloud搭建服务注册中心与服务注册已经全部实现,有问题欢迎留言沟通哦!

    完整源码地址: https://github.com/suisui2019/springboot-study

    推荐阅读
    1.SpringBoot整合ActiveMQ,看这篇就够了!
    2.别在 Java 代码里乱打日志了,这才是正确的打日志姿势!
    3.编码神器Lombok,学会后开发效率至少提高一倍!
    4.利用Spring Boot+zxing,生成二维码还能这么简单
    5.Spring Boot之Profile--快速搞定多环境使用与切换


    限时领取免费Java相关资料,涵盖了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo/Kafka、Hadoop、Hbase、Flink等高并发分布式、大数据、机器学习等技术。
    关注下方公众号即可免费领取:

    Java碎碎念公众号Java碎碎念公众号

     

  • 相关阅读:
    Crazypony四轴飞行器代码框架
    Python中 sys.argv[]的用法简明解释
    详解STM32的PWM输出及频率和脉宽(占空比)的计算——寄存器配置六步曲!(转)
    jquery——所有版本下载
    jsop跨域请求方式--及中文乱码解决方案
    js ---任何浏览器关闭当前网页的代码
    jquery ajax跨域请求 IE9及以下不支持---调试
    poi---Excel导入数据-ClassNotFoundException
    ajax获取json数据为undefined--原因解析
    可变参数 / 枚举--详解
  • 原文地址:https://www.cnblogs.com/haha12/p/11607276.html
Copyright © 2011-2022 走看看