一、SpringCloud簡介
SpringCloud是Spring旗下的一個頂級項目。
SpringCloud是一個服務治理平台,提供一些服務架構,包含了:服務注冊與發現、配置中心、消息中心、負載均衡、資料監控等等。
SpringCloud是微服務架構,提供了全套的分布式系統解決方案。
單體架構—SSM
RPC–理論—提供方 消費方 中間沒注冊中心
SOA–面向服務開發方式 — 提供方—> ESB企業服務總線 <----(訂閱)消費方
微服務(dubbo,springcloud)—提供方—> 三方技術或三方服務如zookeeper等 <----(訂閱)消費方
1.springCloud和dubbo的比較
dubbo–開發簡單效率高 基于tcp釋出
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.啟動虛拟機配置域名解析
6.啟動服務—
java -jar -Dspring.profiles.active=eureka2 cloudeureka-1.0-SNAPSHOT.jar
java -jar -Dspring.profiles.active=eureka1 cloudeureka-1.0-SNAPSHOT.jar
7.通路