(本教程的原地址发布在本人的简书上:http://www.jianshu.com/p/947d57d042e7,若各位看官有什么问题或不一样见解请在这里或简书留言,谢谢!)git
本人也是前段时间才开始接触Spring Boot、Spring Cloud,进而经过Spring Cloud才知道“微服务”这一律念。以后单位的一个项目使用了Spring Cloud来实现,如今想把如何使用Spring Cloud搭建一个简单的微服务框架写下来,方便之后查阅,同时本人也但愿本教程能起到抛砖引玉的做用,欢迎各位大神一块儿讨论学习。web
本入门教程会介绍微服务架构,而后使用Spring Boot、Spring Cloud框架搭建基于微服务架构的应用,这些应用能部署到公司的私有云或者诸如Amazon、Google等公有云。spring
在微服务概念出现前,web应用程序大都采用一体化应用架构,即将全部功能模块都集中在一块儿,包括UI、业务逻辑、数据库操做逻辑等,而后打包成一个庞大的可部署的软件构件,如war包,最后部署到应用服务器上。这种架构有不少弊端。当有新的需求,应用程序就必须作出修改,而后测试、部署;当应用愈来愈庞大,维护成本愈来愈高,维护也愈来愈困难,最后只能重构整个应用,重构后,又是一个恶性循环。数据库
“微服务”这个概念是2014年才逐渐进入开发者的视野。能够用一句话来归纳微服务:微服务应用是由多个分布式的、松耦合的小应用聚合在一块儿,而这些小应用只实现了少许的定义明确的功能。换句话说,就是:搭建一个大型应用时,使用微服务架构能将这个应用分解成多个易于管理的、功能明确的小应用。这些小应用实现的功能都是从大应用中的特定功能抽取出来的,因此它们是彻底独立的,不依赖于其它小应用,可以独立运行。而这些小应用之间的“交流”都是经过接口调用(同步)、消息队列(异步)等完成的。因此虽然大应用被拆分红小应用,但它们仍是能够很好的协调合做,实现各类功能。编程
微服务架构有以下特征:tomcat
一体化应用架构有不少弊端,Spring开发团队发现有不少开发团队逐渐摒弃这种架构,转而向分布式应用方向研究。为应付这种转变,Spring开发团队启动了两个项目:Spring Boot和Spring Cloud。服务器
Spring Boot是一个从新构想的Spring框架。Spring Boot基于Spring,但去掉了不少企业级的特性,并提供了一个基于Java、面向REST风格的微服务框架。使用一些简单的注解,就能搭建一个RESTful微服务应用,而后打包并部署,并且不须要应用程序容器(微服务中内置一个tomcat容器)。架构
微服务架构已成为目前搭建基于云的应用程序最流行的架构。为方便咱们开发基于云的微服务应用,Spring开发社区启动了Spring Cloud项目。Spring Cloud框架使操做和发布微服务应用到私有或公有云变得更简便。Spring Cloud包装了多个主流的云管理方面的微服务框架,开发团队经过简单的注解就能将这些优秀的微服务框架整合到咱们本身应用中来。这些微服务框架包括:Netflix Eureka(服务注册与发现)、Netflix Ribbon(客户端负载均衡)、Netflix Hysteria(熔断器)、Netflix Zuul(服务网关)、Spring Cloud Config(分布式配置)等。负载均衡
https://gitee.com/rain7564/spring_microservices_study框架
注: