SpringCloud - 第一天
简介:
spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。它运行环境简单,可以在开发人员的电脑上跑。另外说明spring cloud是基于springboot的,所以需要开发中对springboot有一定的了解,如果不了解的话可以看这篇文章:2小时学会springboot。另外对于“微服务架构” 不了解的话,可以通过搜索引擎搜索“微服务架构”了解下
一、微服务架构概述
1. 单体架构
一个归档包(例如war格式)包含所有的应用程序,通常称为单体应用,以一个电影购票系统为例:
2. 微服务
用中文的表述就是,微服务架构风格就是一种将一个单个应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级的通信机制。就像这样:
3. 技术选型
- 开发框架: Spring Cloud
- 运行平台: PC Server,阿里云,云计算平台,Docker
- 常用架构:
二、Spring Cloud开发框架
- Spring Cloud是在SpringBoot的基础上构建的,用于快速构建分布式系统的通用模式的工具集,特点:
- 约定优于配置
- 隐藏了组件的复杂性
- 开箱即用,快速启动
- 轻量级的组件、
- 组件丰富,功能齐全
- 灵活
- Spring Cloud组件
- 开发环境:
- JDK 1.8
- Spring Boot 1.5.9.RELEASE
- Spring Cloud
- 代码IDE : IDEA
- Meavn 3.9
学习是有时间的成本的,这个成本就是时间和精力,降低学习成本的重要方法之一就是少踩坑!因此,建议与本教程使用相同的版本进行学习!
三、微服务注册与发现
微服务构建的系统是分布式系统,微服务之间通过网络进行通信。我们使用服务消费者和服务调用者表示这种关系,关系如图:
此处用到Eureka组件,本节不做概述,如果不知道,请看:网址
1. 编写Eureka Server
- 首先创建一个maven工程:
右键工程->创建moder->选择spring initialir
- 下一步选择cloud discovery->eureka server,然后一直点击下一步
- 编写启动类
@SpringBootApplication
@EnableEurekaServer
public class MicroserviceDiscoveryEurekaApplication {
public static void main(String[] args) {
SpringApplication.run(MicroserviceDiscoveryEurekaApplication.class, args);
}
}
- 配置文件application.yml中添加一下内容:
server:
port: 8761
eureka:
client:
registerWithEureka: false #表示将自己注册Eureka Server
fetchRegistry: false #表示是否从EurekaServer获取注册信息
serviceUrl:
defaultZone: http://localhost:${server.port}/eureka/ #设置与Eureka Service交互的地址
- 启动Eureka Server
访问http://localhost:8761/,然后看到这个画面
2. 将消费者注册到Eureka Server
- 复制上一个工程,将ArtifactId改为: microservice-provider-user
- 在配置文件application.yml中添加以下配置:
server:
port: 8000
spring:
application:
name: microservice-provider-user
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/ #设置与Eureka Service地址
- 编写启动类
@SpringBootApplication
@EnableEurekaClient
public class ProviderUserApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderUserApplication.class, args);
}
}
3. 将服务调用者注册到Eureka Server
- 复制上一个工程,将ArtifactId改为: microservice-consumer-movie
- 在配置文件application.yml中添加以下配置:
server:
port: 8000
spring:
application:
name: microservice-consumer-movie
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/ #设置与Eureka Service地址
- 编写启动类
@SpringBootApplication
@EnableEurekaServer
public class ConsumerMovieApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerMovieApplication.class, args);
}
}
4. 启动测试
- 启动microservice-discovery-eureka
- 启动microservice-provider-user
- 启动microservice-consumer-movie
- 访问http://localhost:8761
看到下面的界面,代表成功!