使用Spring Cloud和Docker构建微服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Spring Cloud和Docker构建微服务相关的知识,希望对你有一定的参考价值。

什么是Spring Cloud?
Spring Cloud 是Pivotal提 供的用于简化分布式系统构建的工具集。Spring Cloud引入了云平台连接器(Cloud Connector)和服务连接器(Service Connector)的概念。云平台连接器是一个接口,需要由云平台提供者进行实现,以便库中的其他模块可以与该云平台协同工作。(更多介绍,可以阅读 InfoQ的这篇文章:http://www.infoq.com/cn/news/2014/06/spring-cloud-platform-abstract。)

在Spring Cloud提供的解决方案中,你将会发现如下的内容:

Configuration Service(http://12factor.net/config)

Discovery Service(https://en.wikipedia.org/wiki/Service_discovery)

Circuit breakers(http://martinfowler.com/bliki/CircuitBreaker.html

Distributed sessions(https://en.wikipedia.org/wiki/Distributed_cache)

Spring Boot
Spring Cloud最重要的一点是它可以和Spring Boot一起工作,Spring Boot可以帮助开发者更容易地创建基于Spring的应用程序和服务。

从Spring Boot项目名称中的Boot就可以看出来,Spring Boot的作用在于创建和启动新的基于Spring框架的项目(入门教程qkxue.net)。Spring Boot会选择最适合的Spring子项目和第三方开源库进行整合。大部分Spring Boot应用只需要非常少的配置就可以快速运行起来。Spring Boot包含的特性如下:

创建可以独立运行的Spring应用。

直接嵌入Tomcat或Jetty服务器,不需要部署WAR文件。

提供推荐的基础POM文件来简化Apache Maven配置。

尽可能的根据项目依赖来自动配置Spring框架。

提供可以直接在生产环境中使用的功能,如性能指标、应用信息和应用健康检查。

没有代码生成,也没有XML配置文件。

服务发现和智能路由
每一个服务都含有一个特定意义的微服务架构(腾云科技ty300.com)。当你在Spring Cloud上构建微服务架构时,这里有几个基本概念需要首先澄清下。首先,你需要要先创建Configuration Service和Discovery Service两个基础服务。如下图所示:

使用Spring Cloud和Docker构建微服务

上面的图片说明了四个微服务以及各个服务之间的依赖关系。

Configuration service处于最顶端,黄色标识,而且被其它微服务所依赖。

Discovery service处于最低端,蓝色标识,同时也被其它服务所依赖。

绿色标识的两个微服务是我们本系列博文中用到的两个应用案例:电影和观影建议。

Configuration Service

Configuration Service在微服务架构中是一个非常重要的组件。如12要素理论所说, 微服务应用的配置应该存储在环境中,而不是本地项目中。

Configuration service(配置服务)是一个必不可少的基础组件的原因是因为它可以对所有通过点对点和检索的基础服务进行服务管理。

假 设我们有多个部署环境。比如我们有一个临时环境和一个生产环境,针对每个环境的配置将会是不同的。每一个configuration service 将会由一个独立的Git仓库来存放环境配置。没有其它环境能够访问到这个配置仓库,它只是提供该环境中运行的配置服务罢了。

稿源:勤快学QKXue.NET

阅读图文完整版使用Spring Cloud和Docker构建微服务

以上是关于使用Spring Cloud和Docker构建微服务的主要内容,如果未能解决你的问题,请参考以下文章

Spring Cloud微服务实战-服务治理(Spring Cloud Eureka)

Spring Cloud 微服务实战

前辈给的Spring Cloud与Docker微服务实战,挽救了濒临辞退的我!

Spring cloud实战微服——服务提供者

spring cloud构建b2b2c分布式微服务社交电子商务平台

如何使用 AWS Beanstalk 和 Spring Cloud Netflix 在 Docker 容器之间建立连接