天天看點

SpringCloud學習一之springcloud介紹及的叢集搭建一、SpringCloud簡介

一、SpringCloud簡介

SpringCloud是Spring旗下的一個頂級項目。

SpringCloud是一個服務治理平台,提供一些服務架構,包含了:服務注冊與發現、配置中心、消息中心、負載均衡、資料監控等等。

SpringCloud是微服務架構,提供了全套的分布式系統解決方案。

單體架構—SSM

RPC–理論—提供方 消費方 中間沒注冊中心

SOA–面向服務開發方式 — 提供方—> ESB企業服務總線 <----(訂閱)消費方

微服務(dubbo,springcloud)—提供方—> 三方技術或三方服務如zookeeper等 <----(訂閱)消費方

1.springCloud和dubbo的比較

dubbo–開發簡單效率高 基于tcp釋出

springcloud–功能全面切可靠性高

SpringCloud學習一之springcloud介紹及的叢集搭建一、SpringCloud簡介

性能對比資料

二、Eureka注冊中心

1.Eureka簡介

Eureka是Netflix開發的服務發現架構,本身是一個基于REST的服務,主要用于定位運作在AWS域中的中間層服務,以達到負載均衡和中間層服務故障轉移的目的。SpringCloud将它內建在其子項目spring-cloud-netflix中,以實作SpringCloud的服務發現功能。

2.Eurekad的兩大元件

Eureka Server

Eureka Client

Eureka特性:

無主叢集

有延遲

保證最終一緻性

3.叢集版Eureka 的環境搭建

1.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 http://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.1.10.RELEASE</version>
    </parent>

    <groupId>com.bjsxt</groupId>
    <artifactId>cloudeureka</artifactId>
    <version>1.0-SNAPSHOT</version>


    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.SR4</version>
                <type>pom</type>
                <scope>import</scope><!-- 隻導入, 導入依賴基本資訊。 -->
            </dependency>

        </dependencies>
    </dependencyManagement>

    <dependencies>
        <!-- 從G版本的cloud開始,所有netflix公司的開源項目,其artifactId都增加了netflix字首。 -->
        <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>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
           

2.建立啟動類

package com.bjsxt;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

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

}

           

3.配置檔案application.properties 修改hosts檔案 打包

①配置

#是否将自己注冊到Eureka-Server中,預設的為true
#eureka.client.registerWithEureka=false
#是否從Eureka-Server中擷取服務注冊資訊,預設為true
#eureka.client.fetchRegistry=false
# eureka預設的服務注冊和訂閱端口号是8761
server.port=8761
# 同名服務自動搭建叢集
spring.application.name=eureka-server

eureka.instance.hostname=eureka1

eureka.client.service-url.default-zone=http://eureka2:8761/eureka/
           

② 配置

#是否将自己注冊到Eureka-Server中,預設的為true
#eureka.client.registerWithEureka=false
#是否從Eureka-Server中擷取服務注冊資訊,預設為true
#eureka.client.fetchRegistry=false
# eureka預設的服務注冊和訂閱端口号是8761
server.port=8762
# 同名服務自動搭建叢集
spring.application.name=eureka-server

eureka.instance.hostname=eureka2

eureka.client.service-url.default-zone=http://eureka1:8762/eureka/
           

4.打jar包,将jar包上傳到eureka1的虛拟機上

5.啟動虛拟機配置域名解析

SpringCloud學習一之springcloud介紹及的叢集搭建一、SpringCloud簡介

6.啟動服務—

java -jar -Dspring.profiles.active=eureka2 cloudeureka-1.0-SNAPSHOT.jar

java -jar -Dspring.profiles.active=eureka1 cloudeureka-1.0-SNAPSHOT.jar

7.通路

SpringCloud學習一之springcloud介紹及的叢集搭建一、SpringCloud簡介
SpringCloud學習一之springcloud介紹及的叢集搭建一、SpringCloud簡介

繼續閱讀