SpringCloud微服務實現生產者消費者以及ribbon負載均衡


一、SpringCloud_eureka_server

  1、導入依賴

 <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <!--eureka依賴-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <!--springCloud依賴-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
View Code

(注意!如果這里自動生成的不是這樣的,改成以下這樣就行了)

2、配置application.yml文件

##應用名稱
spring:
  application:
    name: eureka-server
    ##聲明當前eurekaserver的端口號
server:
  port: 8888
##配置eureka
eureka:
  client:
    ##代表是否將自己注冊到注冊中心去
    register-with-eureka: false
    ##表明自己是注冊中心
    fetch-registry: false
    ##配置地址
    service-url:
      defaultZone: http://localhost:8888/eureka

3.啟動類

 

 4.效果圖

 

二、生產者與消費者

  1、SpringCloud_eureka_provider(生產者項目)

    (1)導入依賴

<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <!--eureka依賴-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-feign</artifactId>
            <version>1.3.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <!--springCloud依賴-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
View Code

(注意!如果這里自動生成的不是這樣的,改成以下這樣就行了)

 (2)配置application.yml文件

 

 

 (3)啟動類

 

 (4)創建Service層

 

 

(5)創建ServiceImpl層

 

 

 

2、SpringCloud_eureka_consumer(生產者項目)

(1)導入依賴  

  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>springcloud_eureka_consumer</artifactId>

    <name>springcloud_eureka_consumer</name>
    <!-- FIXME change it to the project's website -->
    <url>http://www.example.com</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <!--eureka依賴-->
        <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-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-ribbon</artifactId>
        </dependency>

    </dependencies>
    <dependencyManagement>
        <dependencies>
            <!--springCloud依賴-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
View Code

(2)配置application.yml文件

 

 (3)創建Controller層

 

 (4)啟動類

 

 效果:

 

 

 

 

 三、實現負載均衡

1、更改Controller層的訪問地址

 

 2.啟動類

 

 

 3、實現效果如下

    勾選上此選項即可啟動多個端口

    

生產者啟動兩個或兩個以上端口訪問

 

 

 

 指定負載均衡策略

 

  四、Feign負載均衡策略

1、導入依賴

<!--導入feign依賴-->
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>

 2、創建Service層(生產者接口名稱不可有下划線)

    

   3、Controller層

 

 5、實現效果如下

同樣至少啟動兩個訪問端口

 

 

總共訪問3此次,第一個端口走兩次,第二個端口走一次(輪訓機制)

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM