俗话说“好记性不如烂笔头”,编程的海洋如此的浩大,养成做笔记的习惯是成功的一步!
此笔记主要是使用自己的语言来描述常用的Spring Cloud的模块功能,笔记都是博主自己一字一字编写和记录,有错误的地方欢迎大家指正。
Spring Cloud常用模块的功能:
(1)Eureka:Netflix公司开发的框架,用于微服务的注册和发现,提供相似功能的还可以使用Zookeeper,但官方推荐使用Eureka。
<!--maven依赖配置-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
(2)Zookeeper:基于Apache Zookeeper的分布式调度框架,提供微服务的注册和发现,与Eureka提供相似的功能。
但是Zookeeper需要安装服务端,而Eureka无需安装。
<!--maven依赖配置-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-all</artifactId>
</dependency>
(2)Actuator:展示当前运用程序的运行情况,例如运行状态、数据库、jdk版本等信息。
<!--maven依赖配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
(3)Security:基于Spring Security的安全工具包,为应用程序增加安全认证。例如为Eureka增加认证机制方可注册和发现服务。
<!--maven依赖配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
(4)Ribbon:Netflix公司开发的框架,实现客户端侧负载均衡。Ribbon可以与Eureka无缝整合使用,也可以脱离Eureka来使用。
<!--maven依赖配置-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
(5)Feign:实现声明式RESTful调用。主要为请求时的多参数问题提供方便。
<!--maven依赖配置-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
(6)Hystrix:Netflix公司开发的框架,是个熔断器,实现微服务的容错处理,防止雪崩效应。
<!--maven依赖配置-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
</dependency>
(7)Turbine:Netflix公司开发的框架,聚合Hystrix的监控数据,使其整合到一起进行展示。
<!--maven依赖配置,注意turbine和turbine-stream不能同时使用-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-turbine</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-turbine-stream</artifactId>
</dependency>
(8)RabbitMQ:此MQ是用Erlang语言编写的高效率开源消息队列框架,Spring Cloud整合了此MQ,用于消息队列功能。
<!--maven依赖配置-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>
(9)Zuul:Netflix公司开发的框架,构建微服务网关,提供路由功能,聚合多个微服务方便一次调用。
<!--maven依赖配置-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>
(10)Sidecar:整合非JVM微服务,即整合由其他语言编写的服务,例如Node.js提供的服务。
<!--maven依赖配置-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-sidecar</artifactId>
</dependency>
(11)Config:统一管理微服务配置,包含有服务端和客户端。服务端的配置信息可以从git、svn、本地文件等读取,然后供客户端查询。
<!--maven依赖配置-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
(12)Bus:事件、消息总线,用于在集群中传播状态的变化,需要借助MQ。配合Config框架,可以实现项目自动刷新配置。
<!--maven依赖配置,依赖rabbitMQ-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
(13)Sleuth:日志收集工具包,实现微服务的跟踪,分析系统瓶颈,解决系统问题。
<!--maven依赖配置-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>