springcloud和springboot是什么關系?


 

【學習筆記】


4)springcloud和springboot是什么關系?

馬克-to-win@馬克java社區:springboot可以快速開發單個微服務。springcloud是一個基於springboot實現的一系列框架的集合,用來提供全局的服務治理方案。springcloud要基於springboot來實現,離不開springboot。


5)Eureca Server的工作原理:

馬克-to-win@馬克java社區:Eureka包含Server和Client兩部分,從而實現微服務的注冊與發現。Eureka Server目標是提供服務發現的能力。各個微服務啟動時,會向Eureka Server注冊自己的信息(例如端口、微服務名等),Eureka Server會存儲這些信息。提供服務或消費微服務都是Eureka Client,通常都只是個springboot的jar項目。Eureka Server本身也是。微服務啟動后,會周期性(默認30s)向Eureka Server發送心跳證明自己還活着。如果Eureka Server在一定時間內沒有接收到某個微服務實例的心跳,Eureka Server將會注銷這個實例(默認90s)。多個Eureka Server實例,互相復制,實現服務注冊表數據同步,達到高可用,簡單說,即一台機器壞了,另一台接替它,繼續工作。用戶體會不到你這機器壞了。Eureka Client會緩存服務注冊表中的信息。這樣就沒必要總查詢Eureka Server,即使Eureka Server都死掉,Eureka Client都能相互找到且完成任務。

6)為什么Eureca Client要分成服務提供者和服務消費者呢?

通常來講,服務提供方是重量的耗時的,所以可能在n台機器上。而服務消費方是輕量的,通過配置ribbon和@LoadBalanced達到負載均衡的效果。消費方通過template.getForEntity("http://provider/acquire"。。。來找到服務提供方。消費方和提供方和Eureka Server三者協同,才能完美工作。如果Consumer沒用Eureka Server這種技術,如何能用@LoadBalanced和ribbon這種負載均衡的功能呢?



1.Eureca Server的Helloworld例子:

做個普通的maven project,quickstart archetype。改成jdk.8。下面Camden.SR1是版本名,springcloud的版本名稱很奇特,它是按照倫敦地鐵站的名稱命名的。

馬克-to-win@馬克java社區:maven當中避免重復發明輪子的方法,一種是繼承,一種是引用(參考我參考目錄下的文章)。maven中配置引用關系的方法是,<type>pom</type>和<scope>import</scope>,很簡單,這樣就引入一個pom文件,這樣<dependencies>里面的<groupId>org.springframework.cloud</groupId>和<artifactId>spring-cloud-starter-eureka-server</artifactId>,由於沒有版本信息,就可以參考引入的pom文件的<dependencyManagement>里面的版本信息。就像maven繼承方法似的,在父pom的<dependencyManagement>里,放入版本信息,在若干子pom里都省去版本信息了。馬克-to-win@馬克java社區:子pom只需到父pom的<dependencyManagement>里,找到相應的artifactId和groupId的版本信息即可。引用和繼承原理是類似的。我機器里面的引入文件就在: E:\m2\repository\org\springframework\cloud\spring-cloud-netflix-dependencies\1.3.1.RELEASE里面有個spring-cloud-netflix-dependencies-1.3.1.RELEASE.pom,里面<dependencyManagement>里面有句話:        
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-eureka-server</artifactId>
                <version>${project.version}</version>
            </dependency>




pom.xml:

<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com</groupId>
    <artifactId>EurecaServer3</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>EurecaServer3</name>
    <url>http://maven.apache.org</url>
    
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.1.RELEASE</version>
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

   
      

版權保護本文轉載自原文:https://blog.csdn.net/mark_to_win/article/details/88735976


免責聲明!

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



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