1.1什么是微服务?
微服务是系统架构上的一种设计风格,它是将传统ssh,ssm架构的项目按照功能拆分成若干个可以独立的服务,服务与服务之间基于http的restful api进行通信协作,完成拆分之前同等的工作任务
原则上拆分的若干个小的服务都是围绕着系统中某一项或者一些耦合度较高的业务功能进行构建,因为是独立的服务,它们只需要维护自身业务需求数据存储;业务开发;自动化测试以及独立部署机制.基于http的restful api进行通讯协作,微服务可以使用不同的语言进行编写
1.2Spring Cloud简介
Spring Cloud是一个基于Spring Boot实现的围绕服务架构开发工具,它为微服务架构中的设计的配置管理;服务治理;断路器;智能路由;微代理;控制总线;全局锁;决策竞选;分布式回话和集群状态管理等操作提供了一种简单的开发方式.
Spring Cloud包含了多个子项目,覆盖分布式系统中涉及的多个不同开源产品

  • Spring Cloud Config:配置管理工具,支持使用Git存储配置内容,可以实现应用配置的外部化存储,并支持客户端配置信息刷新、加密\解密配置内容等
  • Spring Cloud Netflix:核心组件,对多个Netflix OSS开源套件进行整合:
  • Eureka:服务治理组件,包括服务注册中心、服务注册与发现机制的实现
  • Hystrix:容错管理组建,实现断路器模式,帮助服务依赖中出现的延迟和为故障提供强大的容错能力
  • Ribbon:客户端负载均衡的服务调用组件
  • Feign:基于Ribbon和Hystrix的声明式服务调用组件
  • Zuul:网关组件提供智能路由、访问过滤等功能
  • Archaius:外部化配置组件
  • Spring Cloud Bus:事件、消息总线,用于传播集群中的状态变化或事件,以触发后面的处理,比如用来动态刷新配置等
  • Spring Cloud Cluster: 针对ZooKeeper、Redis、Hazelcast、Consul的选举算法和通用状态模式的实现
  • Srping Cloud Cloudfoundry: 与Pivotal Cloudfoundry的整体支持
  • Spring Cloud Consul:服务发现和配置管理工具
  • Spring Cloud Stream:通过Redis、Rabbit或者Kafka实现的消费微服务,可以通过简单的声明式模型来发送和接受消息
  • Spring Cloud AWS:用于简化整合Amazon Web Service的组件
  • Spring Cloud Secutity:安全工具包,提供在Zuul代理中对OAuth2客户端请求的中继器
  • Spring Cloud Sleuth: Spring Cloud应用的分布式跟踪实现,可以完美整合Zipkin
  • Spring Cloud ZooKeeper:基于ZooKeeper的服务发现与配置管理组件
  • Spring Cloud Starters:Spring Cloud的基础组件,它是基于Spring Boot风格的基础依赖模块
  • Spring Cloud CLI:用于在Groovy中快速创建Spring Cloud应用的Spring Boot CLI插件

1.3创建简单SpringBoot项目过程

idea创建maven项目

SpringCloud微服务项目实战 微服务 springcloud_Cloud


选择maven选项,不选择任何直接点击next;创建父项目,管理jar包使用

SpringCloud微服务项目实战 微服务 springcloud_Cloud_02


创建出来的项目,可以删除src目录(无用)

SpringCloud微服务项目实战 微服务 springcloud_Cloud_03


创建module模块,最简单的springboot web项目

SpringCloud微服务项目实战 微服务 springcloud_微服务_04


按照图文操作

SpringCloud微服务项目实战 微服务 springcloud_客户端_05


SpringCloud微服务项目实战 微服务 springcloud_Cloud_06


SpringCloud微服务项目实战 微服务 springcloud_Cloud_07


创建完成后的目录结构,新建自定义的HelloController

SpringCloud微服务项目实战 微服务 springcloud_Cloud_08


配置文件指定微服务端口号,添加自定义的参数,一会作为调用测试

SpringCloud微服务项目实战 微服务 springcloud_微服务_09


配置完成后启动boot项目

SpringCloud微服务项目实战 微服务 springcloud_Cloud_10


启动完成后,打开浏览器输入localhost:8080/hello,见下图启动成功;字符串"version-1.0.1"从配置文件中读取

SpringCloud微服务项目实战 微服务 springcloud_Cloud_11