Netflix项目
springcloud定义
Spring Cloud是一系列框架的集合,它包含多个子项目(针对分布式系统中涉及的多个不开源产品):
• Spring Cloud Config
• Spring Cloud Netflix
• Spring Cloud CloudFoundry
• Spring Cloud AWS
• Spring Cloud Security
• Spring Cloud Commons
• Spring Cloud Zookeeper
• Spring Cloud CLI
Cloud核心是服务治理,服务治理主要通过整合Spring Cloud Netflix项目,该项目包括:
• Eureka:用于服务注册和发现
• Hystrix:调用断路器
• Ribbon:调用端负载均衡
• Feign: Rest客户端
• Zuul:智能服务路由
• Spectator、Servo、Atlas:用于监控数据收集和展示
• Archaius:用于配置读取
• RxJava :提供Controller层Reactive封装
springcloud搭建
-
系统架构图及分析
搭建springcloud要构建三个角色:
角色 内容 Eureka Server(服务注册中心) 负责服务列表的注册、维护和查询等功能 Service Provider(服务提供方) 负责将所提供的服务向Eureka Server进行注册、续约和注销等操作 Service Consumer(服务消费方) 负责从Eureka Server中获取相应的服务列表 -
构建基础系统
-
搭建层级关系
-
创建maven主工程(ferao-spring-cloud)
• 模块创建
• 引入springboot依赖
-> 父工程中指定SpringCloud的版本
-> packaing修改为pom<?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>com.ferao</groupId> <artifactId>ferao-spring-cloud</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <name>ferao-spring-cloud Maven Webapp</name> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Edgware.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <modules> <module>consumer-ferao</module> <module>service-discovery</module> <module>provider-ferao</module> </modules> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
-
创建service-discovery模块((服务注册中心))
• 模块创建引入依赖:
• pom文件配置:<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.ferao</groupId> <artifactId>service-discovery</artifactId> <version>0.0.1-SNAPSHOT</version> <name>service-discovery</name> <description>Demo project for Spring Boot
-