java后端微服务中间件快速使用

本文档详细介绍了Java后端微服务中间件的使用,包括Eureka服务注册与发现,Nacos配置中心,Feign客户端,以及Ribbon的负载均衡策略。内容涵盖中间件的搭建、配置以及优化,如自定义负载策略、Nacos集群配置和配置热更新等。同时,文中还提到了使用Nginx进行流量分发和网关过滤器的配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

笔记记录了分布式架构中广泛使用的微服务中间件的使用文档

一 架构认识

微服务技术对比

 spring官方地址:Spring | Home

boot与cloud兼容性:

二 中间件使用

eureka

 一 搭建EurekaServe

1 创建springboot工程,引入依赖

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

2 开启服务:主应用加注解@EnableEurekaServer

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

3 配置文件 application.yml

server:
  port: 10086
spring:
  application:
    name: eurekaserver
eureka:
  client:
    service-url:
      defaultZone: http://localhost:10086/eureka

 搭建eurekaClient(服务注册与发现)

1 加入依赖

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

 2 配置yml

spring:
  application:
    name: eurekaClient
eureka:
  client:
    service-url:
      defaultZone: http://localhost:10086/eureka

3 可以启动多个实例应用(非必要):虚拟机参数配置-Dserver.port=8081

 特别地,服务发现:负载均衡远程调用容器加注解@LoadBalanced

Ribbon负载均衡

 IRule负载策略

自定义IRule

1 代码方式(全局配置)

@Bean

public IRule randomRule(){

        return new RandomRule();

}

 配置文件方式(作用于)

userservice:

        ribbon:

                NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #均衡策略

 饥饿加载配置(默认懒加载)

ribbon:

        eager-load:

                enabled: true

                clients:

                -userservice

              # -xxx

  总结Ribbon

 Nacos

下载:https://github.com/alibaba/nacos/releases/tag/2.0.3

 安装后bin目录启动或windows命令行

startup.cmd -m standalone

一 idea使用注册中心

1 引入cloud alibaba依赖

<dependency>
   <groupId>com.alibaba.cloud</groupId>
   <artifactId>spring-cloud-alibaba-dependencies</artifactId>
   <version>2021.1</version>
</dependency>

 修改配置文件

     spring: