首页 > 其他分享 >Eureka服务注册与发现

Eureka服务注册与发现

时间:2022-10-11 23:00:20浏览次数:44  
标签:false eureka 注册 7001 服务 Eureka

服务之间调用

  • 创建 cloud-provider-payment8001服务
  • 创建 cloud-consumer-order80服务

  • RestTemplate
    • RestTemplate提供了多种便携访问远程Http服务的方法,是一种简单便携的方法restful服务模板类,是Spring提供的用于访问Rest服务的客户端模板工具集

  • 注入RestTemplate
@Configuration
public class ApplicationContextConfig {
    @Bean
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }
}
  • cloud-consumer-order80服务使用restTemplate调用cloud-provider-payment8001提供的接口
@RestController
public class OrderController {

    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("/consumer/payment/create")
    public CommonResult<Payment> create(Payment payment){
        /***
         * 参数1: 请求地址
         * 参数2: 请求参数
         * 参数3: 响应转换的对象类型
         */
        return restTemplate.postForObject("http://localhost:8001/payment/create",payment,CommonResult.class);
    }
}

Eureka注册中心

  • Spring Cloud封装了Netflix公司开发的Eureka模块来实现服务治理
  • 在传统的rpc远程调用框架中,管理每个服务与服务之间已依赖关系比较复杂,所以需要使用服务治理,管理服务与服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。

  • Eureka采用了CS的设计架构,Eureka Server作为服务注册功能的服务器,它是服务注册中心。而系统的其他微服务,使用Eureka的客户端连接到Eureka的客户端连接到Eureka Server并维持心跳连续。这样系统的维护人员就可以通过Eureka Server来监控系统中各个微服务是否正常运行。
  • 在服务注册与发现中,有一个注册中心。当服务器启动的时候,会把当前自己服务器的洗洗注册到注册中心上。另一方面(消费者|服务提供者)去注册中心上获取到实际的服务通信地址,然后在实现本地RPC调用。RPC远程调用框架核心设计思想:在于注册中心,因为使用注册中心管理每个服务与服务之间的一个依赖关系(服务治理概念)。在任何rpc远程框架中,都会有一个注册中心(存放服务地址相关信息(接口地址))

EurekaServer服务端安装

  • pom.xml
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
  • application.yml
server:
  port: 7001
eureka:
  instance:
    hostname: eureka7001.com # eureka服务端的实例名称
  client:
    register-with-eureka: false # false 表示不向注册中心注册自己
    fetch-registry: false # false 表示自己就是注册中心
    service-url:
      defaultZone: http://127.0.0.1:7001/eureka
  server:
    enable-self-preservation: false # 关闭自我保护机制
    eviction-interval-timer-in-ms: 2000  # 清理无效服务的时间间隔
  • 启动类添加@EnableEurekaServer注解
@SpringBootApplication
@EnableEurekaServer  // 注册中心 Eureka Server
public class EurekaMain7001 {
    public static void main(String[] args) {
        SpringApplication.run(EurekaMain7001.class,args);
    }
}

EurekaServer客户端注册到注册中心

  • pom.xml
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
  • application.yml
eureka:
  client:
    register-with-eureka: true  # ture 自己注册到 Eureka Server
    fetch-registry: true  # 是否从Eureka Server 抓取已有的注册信息
    service-url:
      defaultZone: http://127.0.0.1:7001/eureka
  instance:
    instance-id: privider8001  # 修改服务名称
    prefer-ip-address: true # 访问信息ip地址
    lease-renewal-interval-in-seconds: 1 # Eureka客户端向服务端发送心跳的时间间隔 默认30s
    lease-expiration-duration-in-seconds: 2 # Eureka服务端在收到最后一次心跳后等待时间上限,默认90s,超时将剔除服务
  • 主启动类添加@EnableEurekaClient、@EnableDiscoveryClient注解
@SpringBootApplication
@EnableEurekaClient //Eureka Client
@EnableDiscoveryClient  //开启 Eureka 服务发现功能
public class PaymentMain8001 {
    public static void main(String[] args) {
        SpringApplication.run(PaymentMain8001.class,args);
    }
}

Eureka集群

  • Eureka服务端相互注册

  • 7001注册Eureka7002
server:
  port: 7001
eureka:
  instance:
    hostname: eureka7001.com # eureka服务端的实例名称
  client:
    register-with-eureka: false # false 表示不向注册中心注册自己
    fetch-registry: false # false 表示自己就是注册中心
    service-url:
      defaultZone: http://127.0.0.1:7002/eureka  # 注册到 EurekaServer 7002
  server:
    enable-self-preservation: false # 关闭自我保护机制
    eviction-interval-timer-in-ms: 2000  # 清理无效服务的时间间隔
  • 7002注册Eureka7001
server:
  port: 7002
eureka:
  instance:
    hostname:  eureka7002.com # eureka服务端的实例名称
  client:
    register-with-eureka: false # false 表示不向注册中心注册自己
    fetch-registry: false # false 表示自己就是注册中心
    service-url:
      defaultZone: http://127.0.0.1:7001/eureka  # 注册到 EurekaServer 7001
  • 服务注册到Eureka集群(同时注册到7001、7002)
eureka:
  client:
    register-with-eureka: true  # ture 自己注册到 Eureka Server
    fetch-registry: true  # 是否从Eureka Server 抓取已有的注册信息
    service-url:
      defaultZone: http://127.0.0.1:7001/eureka,http://127.0.0.1:7002/eureka
  instance:
    instance-id: consumer80
    prefer-ip-address: true

标签:false,eureka,注册,7001,服务,Eureka
From: https://www.cnblogs.com/blackyoumo/p/16570588.html

相关文章

  • 花生壳服务器内网穿透
    1.创建账号官网:https://hsk.oray.com/2.下载软件PC端手机端在应用商店内搜索“花生壳管理”3.查看本机内网地址win+R打开命令行,输入ipconfig4.登录花生壳软件点......
  • 为什么选择 Kotlin 重写后端服务?
    目录​​1.确定适用的技术栈​​​​2.选择适合的编程语言​​​​Kotlin优点:​​​​软件库生态系统强大​​​​对gRPC、HTTP、Kafka、Cassandr和SQL提供一等支持​​......
  • Flask 框架:运用WTForms实现用户注册
    WTForms是用于web开发的灵活的表单验证和呈现库,它可以与您选择的任何web框架和模板引擎一起工作,并支持数据验证、CSRF保护、国际化等,运用WTForms框架并配合Flask可实现一个......
  • 什么是缓存雪崩?服务器雪崩的场景与解决方案
    什么是应用服务雪崩雪崩问题分布式系统都存在这样一个问题,由于网络的不稳定性,决定了任何一个服务的可用性都不是100%的。当网络不稳定的时候,作为服务的提供者,自身可能会被......
  • 首届三维光学传感及应用国际在线研讨会免费开放注册!
    首届三维光学传感及应用国际在线研讨会免费开放注册!TheFirstInternationalForumon3DOpticalSensingandApplications(iFOSA2020)Beijing,China2020年10月17-......
  • 各大运营商的邮件服务器配置方法
    常见错误:501badaddresssyntax收件地址错误,在系统设置里面配置收件人501badsyntax基本上属于邮件参数错误451Error:queuefilewriteerror网络错误吧,重试......
  • 服务器租用过程中网站被黑,怎么解决这种情况?
    ​服务器租用过程中网站被黑,怎么解决这种情况?这种情况每天都发生在许多网站上。70%的网站存在严重的安全漏洞。您可能总是有黑客访问您的网站,所以需要寻找漏洞来破解......
  • 源码角度了解Skywalking之服务端OAP对Trace的处理
    源码角度了解Skywalking之服务端OAP对Trace的处理从前几篇的文章我们知道Skywalking对Trace信息进行生成收集后,将TraceSegment对象转换为UpstreamSegment对象,通过GRPC发送......
  • 简单的tcp服务端
    1#!/usr/bin/python2#-*-coding:UTF-8-*-3#文件名:tcpserver.py45importsocket6importtime7MaxBytes=1024*102489server=socket.soc......
  • 【数据库】MongoDB服务启动失败的问题。
    1.确保MongoDB所在文件夹拥有所有权限2.确保打开CMD窗口是以管理员身份运行的3.配置文件中的路径应该为完整路径,且不包含空格和特殊字符(不建议包含)systemLog:destin......