软件开发定制定制微服务小结1----Eureka的基本能力与配置及负载均衡

软件开发定制定制本博客根据所作笔记
什么是Eureka
软件开发定制定制是一个基于REST (Representational State Transfer)的服务,主要用于AWS软件开发定制定制云中的服务定位,软件开发定制定制以实现中间层服务器的负载平衡和故障转移。也就是说Eureka在微服务中是一个服务发现注册的组件

为什么需要Eureka
通过注册服务,注册发现解决不同微服务之间的问题

远程调用问题

  1. 消费者如何获取服务者提供的信息
  2. 如何获取服务者的健康信息是否可用
  3. 在多个服务者之间如何选择服务

    Eureka的作用
    1 消费者如何获取服务者提供的信息
    服务提供者通过向Eureka注册自己的信息,在Eureka中进行保存,服务消费者根据服务名称向Eureka拉去服务
    2 多个服务者如何进行选择
    负载均衡从Eureka返回服务列表,根据相应的算法从服务列表中选择
    3 如何获取服务提供者的健康信息
    服务提供者每隔30s向Eureka进行一次心跳续约,保证‘我’还在,如果没有心跳则更新Eureka服务列表
    如何搭建一个Eureka注册中心
    1 引入Eureka依赖
    <dependency>        <groupId>org.springframework.cloud</groupId>        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>    </dependency>
  • 1
  • 2
  • 3
  • 4
2 编写启动类 引入@EnableEurekaServer注解
  • 1
@EnableEurekaServer@SpringBootApplicationpublic class EurekaApplication {    public static void main(String[] args) {        SpringApplication.run(EurekaApplication.class,args);    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3 在配置文件中注册一个服务(Eureka服务端也是一个服务)

server:  port: 8080 # 服务端口spring:  application:    name: eurekaserver # eureka的服务名称eureka:  client:    service-url:  # eureka的地址信息      defaultZone: http://127.0.0.1:8080/eureka
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

如何将不同模块的服务向服务端注册
1 添加Eureka客户端依赖

        <!--eureka客户端依赖-->        <dependency>            <groupId>org.springframework.cloud</groupId>            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>        </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

2 修改配置文件

spring: application:  name: xxx-server  #自定义的服务模块名称eureka: client:  service-url:   default-url: http://127.0.0.1:8080/eureka/ #eureka服务端地址
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

服务拉取(服务发现)
服务拉取是在基于服务名称获取服务列表(多个服务提供者)后进行负载均衡(选择合适的一个服务提供者并进行远程调用)
在了解服务拉取之前我们首先需要了解RestTemplate是一个基于Restful格式用于远程调用的服务类。
1 添加一个RestTemplate(可以是全局的(在启动类中添加)或者是局域的 添加一个配置类@Configuration并进行注入) 我们这里使用全局作用

    /**     * 创建RestTemplate并注入Spring容器     */    @Bean    @LoadBalanced  //实现负载均衡    public RestTemplate restTemplate() {        return new RestTemplate();    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

负载均衡


修改负载均衡规则
方式1 定义配置类 并实现

@beanpublic IRule randomRule(){   return new RandomRule();}
  • 1
  • 2
  • 3
  • 4
  • 5

方式2 配置文件中定义

userservice:  ribbon:    NFLoadBalancerRuleClassName: com.netflix.loadBalance.RandomRule
  • 1
  • 2
  • 3

默认是懒加载只有在第一次使用是才会加载,时间较长,可以在配置文件中将懒加载修改为饥饿加载

ribbon: eager-load:  enabled: true #开启饥饿加载  clients: #服务名称
  • 1
  • 2
  • 3
  • 4
网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发