spring cloud (一)

146 阅读2分钟

学习记录

分布式和集群
集群:(物理层面)很多人干同一个事情来分摊压力
分布式:复杂问题拆分成若干个小问题,分别由不同的人来完成

spring cloud完全基于spring boot,服务调用基于rest api
整合了各种成熟的产品和架构,同时基于spring boot也使得整体的开发,部署都非常方便

spring cloud 微服务,其实就是分布式

spring cloud核心组件

  • 服务治理Eureka,提供服务注册和服务发现的功能
  • 服务通信 Ribbon
  • 服务通信 Feign
  • 服务网关Zuul
  • 服务容错Hystrix
  • 服务配置Config
  • 服务监控Actuator

服务治理有三部分:服务提供者,服务消费者,注册中心

服务注册:在分布式系统架构中,每个微服务在启动时,将自己的信息存储在注册中心
服务发现:服务消费者从注册中心获取服务提供者的网络信息,通过该信息调用服务

创建第一个spring cloud
pom.xml配置

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.7.RELEASE</version>
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>2.0.7.RELEASE</version>
    </dependency>
</dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.SR2</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

在父工程里 再创建一个工程 eurekaserver
pom.xml

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        <version>2.0.2.RELEASE</version>
    </dependency>
</dependencies>

创建配置文件 application.yml 添加Eureka server相关的配置文件

server:
  port: 8761
eureka:
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://localhost:8761/eureka/

属性说明
eureka. client. register-with-eureka: false 是否将当前的eureka.server服务作为客户端进行注册(一般false)
eureka. client. fetch-registry: false 是否获取其他eureka server服务的数据
eureka. client. service-url. defaultZone: 注册中心的访问地址

创建启动类 SpringBootApplication

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

注解说明
@org.springframework.boot.autoconfigure.SpringBootApplication:声明该类是spring boot服务的入口
@EnableEurekaServer 说明该类是一个eureka server微服务,提供服务注册和服务发现功能,即注册中心

访问 http://localhost:8761/ 结果如下