• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • SpringCloud學習-Spring Cloud Eureka

    標簽: SpringBoot

    SpringCloud學習-Spring Cloud Eureka

    一、搭建服務注冊中心

    1.使用idea創建springboot項目

    添加依賴

    1591237205496

    1591237215166

    1591237271280

    2.修改pom.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.3.0.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.example</groupId>
        <artifactId>eureka</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>eureka</name>
        <description>Demo project for Spring Boot</description>
    
        <properties>
            <java.version>1.8</java.version>
            <spring-cloud.version>Hoxton.SR5</spring-cloud.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
            <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-test</artifactId>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.junit.vintage</groupId>
                        <artifactId>junit-vintage-engine</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
        </dependencies>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>${spring-cloud.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>
    

    3.主類添加@EnableEurekaServer注解

    通過@EnableEurekaServer注解啟動一個服務注冊中心提供給其他的應用進行對話

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

    4.配置application.properties文件,添加一下內容

    server.port=8761
    
    eureka.client.hostname=localhost
    # eureka.client.register-with-eureka=false不向注冊中心注冊自己
    eureka.client.register-with-eureka=false
    # eureka.client.fetch-registry=false注冊中心的職責是維護服務實例,不需要檢索服務,所以設置為false
    eureka.client.fetch-registry=false
    eureka.client.serviceUrl.defaultZone=http://${eureka.client.hostname}:${server.port}/eureka/
    
    

    5.驗證

    http://localhost:8761/
    

    1591254308137

    二、服務提供搭建

    1.創建springboot項目,添加依賴

    pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.3.0.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.example</groupId>
        <artifactId>eureka-client</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>eureka-client</name>
        <description>Demo project for Spring Boot</description>
    
        <properties>
            <java.version>1.8</java.version>
            <spring-cloud.version>Hoxton.SR5</spring-cloud.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.junit.vintage</groupId>
                        <artifactId>junit-vintage-engine</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- 引入log4j2依賴 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-log4j2</artifactId>
            </dependency>
        </dependencies>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>${spring-cloud.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>
    
    

    2.修改application.properties文文件

    server.port=8081
    spring.application.name=hello-server
    eureka.client.service-url.defaultZone=http://localhost:8761/eureka
    
    

    3.主類添加@EnableDiscoveryClient注解

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

    4.通過注入DiscoveryClient對象打印相關內容

    @RestController
    public class HelloControl {
    
        private final Logger logger = Logger.getLogger(String.valueOf(getClass()));
    
        @Autowired
        private DiscoveryClient client; // 服務發現客戶端
    
        @RequestMapping(value = "/hello", method = RequestMethod.GET)
        public String test() {
            System.out.println(client.getServices().get(0));
            return "hello";
        }
    }
    

    5.查看注冊情況

    1591327411556

    6.訪問接口查看服務信息

    http://localhost:8081/hello
    

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-cGlAQq7O-1591351635451)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1591350776205.png)]

    三、服務發現與消費

    1.創建springboot項目

    1591345164310

    2. 添加@EnableDiscoveryClient注解讓該應用注冊為Eureka的客戶端應用,以獲得服務發現的能力。同時,在主類中創建RestTemplate的SpringBean實例,通過@LoadBalanced注解開啟客戶端負載均衡。

    @EnableDiscoveryClient
    @SpringBootApplication
    public class RibbonConsumerApplication {
        @Bean
        // @LoadBalanced 開啟客戶端負載均衡
        @LoadBalanced
        RestTemplate restTemplate(){
            return new RestTemplate();
        }
        public static void main(String[] args) {
            SpringApplication.run(RibbonConsumerApplication.class, args);
        }
    
    }
    

    3.創建ConsumerController類實現/ribbon-consumer接口、通過創建RestTemplate來實現對HELLO-SERVER服務提供的test接口進行調用。訪問地址是服務名,符合服務治理的要求。

    @RestController
    public class CustomerController {
    
        @Autowired
        RestTemplate restTemplate;
    
        @RequestMapping(value="/ribbon-consumer",method = RequestMethod.GET)
        public String helloConsumer(){
            return restTemplate.getForEntity("http://HELLO-SERVER/hello",String.class).getBody();
    
        }
    }
    

    4.在application.properties配置Eureka服務注冊中心的位置,同時設置消費者的端口為9000,

    spring.application.name=ribbon-consumer
    server.port=9000
    
    eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
    
    

    5.啟動服務后查看eureka,可以看到服務提供方的服務和消費方的服務

    1591348895614

    6.訪問消費者接口測試

    http://localhost:9000/ribbon-consumer
    

    1591350859822

    版權聲明:本文為weixin_39836585原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/weixin_39836585/article/details/106575857

    智能推薦

    spring cloud Eureka 實戰

    構建一個簡單的spring cloud Eureka應用實例,話不所說,上項目 一、使用構建三個簡單的maven項目 二、eureka項目: 1、pom.xml 2、application.properties 3、代碼三、ceshi項目:1、pom.xml 2、application.properties # spring bo 3、代碼 四、client項目:pom.xml<?xml v...

    spring cloud Eureka

    目錄標題 1 服務搭建 1.1 搭建服務治理中心 1.2 搭建生產者(下游服務) 1.3 搭建消費者(上游服務) 1.4 服務搭建過程中遇到的問題 1 服務搭建 springboot版本2.0.2.RELEASE springcloud版本Finchley.SR1 springcloud依賴版本管理,引入這個后當前pom或者子pom都不需要再顯示的使用版本號。 1.1 搭建服務治理中心 說明:不同...

    Spring-cloud-eureka

    eureka概述 eureka架構 eureka和zookeeper的對比 創建eureka工程 Eureka 的自我保護機制 自我保護機制 自我保護默認值修改 自我保護啟動閾值 eurekaserver集群 以8000為例修改pom文件 修改yml文件...

    spring cloud (三)Eureka

    一、什么是Eureka Eureka 是Netflix開源的服務發現組件,本身是一個基于REST的服務。它包含Server和Client兩部分。Spring cloud將它集成在子項目Spring cloud Netflix中,從而實現微服務的注冊與發現。 二、Eureka原理 注:上圖來源于網絡,非lz所畫 如圖,可以看出服務的生產端將服務注冊到Eureka中,當客戶端需要消費的時候,...

    Spring Cloud之Eureka

    1. 項目結構 2. parent中pom.xml依賴 3. Eureka注冊中心Server引入依賴 4. Eureka注冊中心配置 5.注冊中心代碼 @EnableEurekaServer  // 表示是注冊中心服務 6. 啟動訪問 http://127.0.0.1:8761/   7. Eureka中Client,向注冊中心注冊服務,引入依賴 8.配置文件 9.注冊服務代...

    猜你喜歡

    spring-cloud-eureka

    spring-cloud-eureka spring-cloud-eureka 服務注冊 服務發現 服務同步 啟動時同步 運行時同步 服務續約 服務下線 獲取服務 失效剔除 判斷是否滿足服務剔除的條件 找出過期的服務 剔除服務 自我保護 源碼分析 Eureka Client啟動過程 Eureka Server啟動過程 配置解釋 問題 數據存儲結構 Nacos spring-cloud-eureka...

    初探Spring Cloud Eureka

    既然用到微服務,服務的注冊和發現應該可以算作是微服務的核心了吧。使用過dubbo的人,應該都知道dubbo的服務注冊和發現中心是通過zookeeper來提供的。Eureka 是 Netflix 開源的服務注冊發現組件,當然也可以提供類似的功能。 啟動類:EurekaServerApplication 配置文件:application.yml 服務啟動成功,訪問http://localhost:80...

    Spring Cloud Eureka介紹

    Spring Cloud Eureka是什么? Spring Cloud Eureka是Spring Cloud提供的服務治理組件,用來實現各個微服務實例的自動化注冊和發現。 Spring Cloud Eureka是Spring Cloud Netflix微服務套件中的一部分,基于Netflix Eureka做了二次封裝,并且增加了Spring Boot風格的自動化配置,我們只需要通過簡單引入依賴...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    精品国产乱码久久久久久蜜桃不卡