SpringCloud(第一天)

1.單體應用:全部資源都在一個應用,打包成一個war包,一個Tomcat運行,運行在一個進程.java

a)  解決方案:能夠作集羣,可是不方便局部擴展(對某一個模塊單獨集羣),維護,開發,升級麻煩,技術選型單一,數據庫選型單一web

2.微服務:一個系統多個微小服務,每一個服務專一一個業務.每一個服務都有各自的進程,微服務之間經過網絡通訊協議進行數據交互(一般是使用HTTP的restFul風格傳遞)spring

a)  優點:技術選型多元化,數據庫選型多元化,維護方便,方便作局部拓展,每一個服務都有單獨的進程數據庫

b)  Dubbo和SpringCloudapache

            i.     Dubbo的通訊協議RPC(基於TCP通訊)springboot

           ii.     SpringCloud的通訊協議HTTP對TCP進行了一次封裝,性能相對於Dubbo而言較低服務器

3.SpringCloud網絡

a)  微服務入門app

b)  Maven多模塊環境搭建.maven

  i.搭建父項目模塊

  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>
    
        <groupId>cn.itsource</groupId>
        <artifactId>springboot-parent</artifactId>
        <packaging>pom</packaging>
        <version>1.0-SNAPSHOT</version>
        <modules>
    //父項目的各個子模塊項目 <module>springboot-eureka</module> <module>springboot-userclient</module> <module>springboot-deptprovider</module> </modules> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud.version>Finchley.SR1</spring-cloud.version> <springboot.version>2.0.5.RELEASE</springboot.version> </properties> <!--版本依賴管理工具--> <dependencyManagement> <dependencies> <!--springboot版本控制--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!--springCloud版本控制--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${springboot.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> </project>

        ii.     註冊中心服務端環境搭建

  1. pom.xml導包
    <dependencies>
        <!--springboot支持-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--Eureka服務端支持-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    // spring-cloud-starter-netflix-eureka-server包含了spring-cloud-starter-netflix-eureka-client包
        </dependency>
    </dependencies>
  2. Application.yml配置文件配置
    spring:
      application:
        name: spring-cloud-eureka
    server:
      port: 7001
    eureka:
      instance:
        hostname: localhost
      client:
        #不向Eureka註冊本身 register-with-eureka: false #不檢查其餘的EurekaServer節點 fetch-registry: false
        service-url:
          #設置eureka服務器所在的地址,查詢服務和註冊服務程序都註冊到這個地址(服務暴露的地址)
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
  3. 註冊中心服務啓動類
    @SpringBootApplication
    @EnableEurekaServer
    public class SpringBootApplicationConfig_7001 {
        public static void main(String[] args) {
            SpringApplication.run(SpringBootApplicationConfig_7001.class,args);
        }
    }

    iii.     消費者和提供者客戶端環境搭建

  1. Pom.xml
<dependencies>
    <!--springboot支持-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!--Eureka服務端支持-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
</dependencies>

   2.Application.yml配置文件配置

spring:
  application:
    name: SPRING-CLOUD-USER
server:
  port: 8001
eureka:
  instance:
    hostname: localhost
  client:
    service-url:
      #設置eureka服務器所在的地址,查詢服務和註冊服務程序都註冊到這個地址(服務暴露的地址)
      #defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
      defaultZone: http://localhost:7001/eureka

 


       3.註冊到註冊中心:客戶端服務啓動類

@SpringBootApplication
@EnableEurekaClient
public class SpringbootApplication_8001 {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootApplication_8001.class,args);
    }
}

若是有多個服務,就在父模塊下面搭建多個子模塊,作相同的配置進行服務註冊到註冊中心.

相關文章
相關標籤/搜索