首页 > 其他分享 >Eureka注册中心搭建

Eureka注册中心搭建

时间:2023-02-17 10:36:56浏览次数:46  
标签:服务 service eureka EurekaServer user 注册 Eureka cloud 搭建

Eureka注册中心

消费者该如何获取服务提供者具体信息?
服务提供者启动时向eureka注册自己的信息
eureka保存这些信息
消费者根据服务名称向eureka拉取提供者信息
如果有多个服务提供者,消费者该如何选择?
服务消费者利用负载均衡算法,从服务列表中挑选一个
消费者如何感知服务提供者健康状态?
服务提供者会每隔30秒向EurekaServer发送心跳请求,报告健康状态
eureka会更新记录服务列表信息,心跳不正常会被剔除
消费者就可以拉取到最新的信息

在Eureka架构中,微服务角色有两类:
EurekaServer:服务端,注册中心
记录服务信息
心跳监控
EurekaClient:客户端
Provider:服务提供者,例如案例中的 user-service
注册自己的信息到EurekaServer
每隔30秒向EurekaServer发送心跳
consumer:服务消费者,例如案例中的 order-service
根据服务名称从EurekaServer拉取服务列表
基于服务列表做负载均衡,选中一个微服务后发起远程调用

搭建EurekaServer

搭建EurekaServer服务步骤如下:
创建项目,引入spring-cloud-starter-netflix-eureka-server的依赖

<dependencies>
    <!--eureka服务端-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
</dependencies>

编写启动类,添加@EnableEurekaServer注解

package com.po.eureka;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

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

添加application.yml文件,编写下面的配置:

server:
  port: 8866 # 服务端口
spring:
  application:
    name: eureka # eureka的服务名称
eureka:
  client:
    service-url:  # eureka的地址信息
      defaultZone: http://127.0.0.1:8866/eureka
    # 在默认设置下,Eureka服务注册中心也会将自己作为客户端来尝试注册它自己,所以我们需要禁用它的客户端注册行为。
    register-with-eureka: false
    fetch-registry: false
启动服务
访问:http://localhost:8866/

注册user-service

将user-service服务注册到EurekaServer步骤如下:
在user-service项目引入spring-cloud-starter-netflix-eureka-client的依赖

        <!--eureka客户端依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

在application.yml文件,编写下面的配置:

eureka:
  client:
    service-url:  # eureka的地址信息
      defaultZone: http://localhost:8866/eureka
spring:
  application:
    name: user-service

启动 user 服务

另外,我们可以将user-service多次启动, 模拟多实例部署,但为了避免端口冲突,需要修改端口设置:

在order-service完成服务拉取

服务拉取是基于服务名称获取服务列表,然后在对服务列表做负载均衡
修改OrderService的代码,修改访问的url路径,用服务名代替ip、端口:

String url = "http://userservice/user/" + order.getUserId();

在order-service项目的启动类OrderApplication中的RestTemplate添加负载均衡注解:

    @Bean
    public IRule randomRule() {
        return new RandomRule();
    }

 

 

 


 

标签:服务,service,eureka,EurekaServer,user,注册,Eureka,cloud,搭建
From: https://www.cnblogs.com/popopopopo/p/17129060.html

相关文章

  • CUDAbyExample环境搭建
    gitclonehttps://github.com/CodedK/CUDA-by-Example-source-code-for-the-book-s-examples-.git首先是报错nvcc-orayray.cuInfileincludedfrom../common/cp......
  • 阿里云 cloud linux 2 搭建LNMP环境
    2023年2月16日15:38:38官方说明: https://www.alibabacloud.com/help/zh/elastic-compute-service/latest/manually-deploy-an-lnmp-environment-on-an-ecs-instance-tha......
  • 【IMX6ULL】一、Linux开发环境搭建
    注:参考【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.6一、Ubuntu和Windows文件互传在开发的过程中会频繁的在Windows和Ubuntu下进行文件传输,比如在Windwos下进......
  • 直播app开发搭建,js对时间日期判断今天昨天明天
    直播app开发搭建,js对时间日期判断今天昨天明天lettime=function(date){lettime_str="";if(newDate(date).getDate()===newDate().getDate()){time_str="......
  • docker-compose搭建redis-Cluster集群
    环境选择三台机器创建相同目录级:/database/redis/在目录里创建文件:viredis-cluster.tmpl查看防火墙--如果防火墙的状态是打开的记得开端口文件配置redis-clust......
  • hadoop+hive+mysql+sqoop+spark完全分布式集群搭建
    hadoop+hive+mysql+sqoop+spark完全分布式集群搭建零、配置网络(固定ip)(可以不做,但是后面关闭后ip会重复变动,后面步骤中有再次提到,后面操作在做)1.固定ip因centos 7 ip......
  • BOA服务器的搭建以及移植到开发板
    一、概述硬件资源:IAC-335X-Kit开发板宿主机:ubuntu16.04交叉编译工具:arm-arago-linux-gnueabi二、BOA搭建先确定交叉编译工具是否安装正确。安装需要工具bison,flexsudo......
  • redis搭建集群
    ##################    添加从库点给指定主库:[[email protected]_7001]$./bin/redis-cli-a'jJAV0kTokNb8iZvwfqniCxmFZEsbOH5n'--clusterad......
  • Kubeadm搭建K8S
    一、kubeadm部署K8S集群架构主机名IP地址安装组件master(2C/4G,cpu核心数要求大于2)192.168.160.20docker、kubeadm、kubelet、kubectl、flannelnode01(2C/2G......
  • 快速搭建一个网关服务,动态路由、鉴权,一网打尽!(含流程图)
    作者:热黄油啤酒链接:https://juejin.cn/post/7004756545741258765前言本文记录一下我是如何使用Gateway搭建网关服务及实现动态路由的,帮助大家学习如何快速搭建一个网......