学习记录
分布式和集群
集群:(物理层面)很多人干同一个事情来分摊压力
分布式:复杂问题拆分成若干个小问题,分别由不同的人来完成
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/ 结果如下