Spring Cloud简介

2019-08-29  本文已影响0人  zhglance

1.什么是Spring Cloud

Spring Cloud是基于Spring Boot实现的微服务架构开发工具,是一系列框架的有序集合,主要提供了配置中心,服务治理,断路器,消息总线,负载均衡,集群状态监控,全局锁,分布式会话等。

2. Spring Cloud 包含的子项目

2.1 Spring Cloud Netfix 是Spring Cloud的核心组件,主要包含以下功能:

a.Eureka 服务治理:服务注册,注册中心和服务发现 ;
b.Hystrix 容错管理:为服务的延迟和故障提供容错能力饿断路器 ;
c.Ribbon 实现基于客户端的负载均衡;
d.Feign 基于Hystrix和Ribbon的声明式服务调用组件;
e.Zuul 网关组件,提供智能路由,访问过滤功能;
f.Archaius 提供外部化配置;

2.2 Spring Cloud Bus 事件和消息总线,用于传播集群的状态变化或事件,进而触发后续操作;
2.3 Spring Cloud Cluster 提供选主服务;
2.4 Spring Cloud Consul 服务发现及配置管理工具;
2.5 Spring Cloud Sleuth 服务跟踪
2.5 Spring Cloud Stream 提供消息驱动的应用框架,针对MQ消息队列的;
2.6 Spring Cloud Security 基于Spring Boot和Spring安全性OAuth2,实现如单点登录,令牌中继和令牌交换等;
2.7 Spring Cloud Config 分布式配置管理,支持git存储,Client的配置信息刷新等

3.spring boot多环境的支持:

序号 文件名字 环境
1 application.properties 通用配置,不区分具体环境
2 application-dev.properties 开发环境
3 application-test.properties 测试环境
4 application-prod.properties 生产环境

可以通过spring.profiles.active来区分不同的环境,主要方法有application.properties文件中的spring.profiles.active=dev值来指定不同环境,或者启动的时候java -jar *.jar --spring.profiles.active=dev指定

4.开发热部署工具:

<dependency>
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-devtools</artifactId> 
</dependency>

5.监控工具:

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-actuator</artifactId> 
</dependency>

6.异步执行

只需要在方法上注解@Async即可,举例:

@Async
public void log(String message) {
      System.out.println(message);
}

7.编译打包工具:

  <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <executable>true</executable>
                    <mainClass>com.lance.spring.boot.demo.controller.SpringBootDemoMain</mainClass>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>


        </plugins>
    </build>

8.starter 常用包

a.spring-boot-starter-web: 构建基于Spring MVC的Web项目;
b.spring-boot-starter-data-redis: 使用redis;
c.spring-boot-starter-data-jpa: 使用MySql(依赖Hibernate);
d.spring-boot-starter-data-elasticsearch:使用Elastic Search;
e.spring-boot-starter-aop: 使用Spring的Aop、AspectJ切面;
f.spring-boot-starter-data-mongodb:使用MongoDB数据库;
g.spring-boot-starter-jdbc:使用JDBC;
h.spring-boot-starter-test:使用JUnit、Hamcrest和Mockito作为测试框架。
i.spring-boot-starter:包括 自动配置支持、 logging and YAML.

上一篇 下一篇

猜你喜欢

热点阅读