写点什么

Spring Cloud 1.0 – 云平台抽象化

  • 2014-06-30
  • 本文字数:1562 字

    阅读完需:约 5 分钟

Pivotal 最近发布了 Spring Cloud 1.0 开放源码库,为基于 JVM 的云应用开发提供了一种简单的开发方式。他可使应用程序连接到不同的云服务并且在运行时获取云环境的信息。无论是否基于 Spring,应用程序都可以使用 Spring Cloud。Spring Cloud 1.0 目前支持 Cloud Foundry 和 Heroku 两种云平台,也可以通过扩展来支持更多的云平台。

Spring Cloud 引入了云平台连接器(Cloud Connector)和服务连接器(Service Connector)的概念。云平台连接器是一个接口,需要由云平台提供者进行实现,以便库中的其他模块可以与该云平台协同工作。Spring Cloud 1.0 自带了 Cloud Foundry 和 Heroku 两个平台的云平台连接器。服务连接器是一个对象,它代表着与服务的连接。Spring Cloud 1.0 中包含了连接到 javax.sql.DataSource 和各 Spring Data 项目的服务连接器。开发者也可以定制开发云平台连接器和服务连接器以支持其他的云平台和服务,只需要将连接器打包成 JAR 文件并添加到 classpath 中即可。

在基于 Spring 的应用中使用 Spring Cloud,需要添加对 _spring-cloud-spring-service-connector_ 的依赖。Maven 依赖的代码片段如下:

复制代码
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-spring-service-connector</artifactId>
<version>1.0.0.RELEASE</version>
</dependency>

在不基于 Spring 的应用中使用 Spring Cloud 则需要添加对 _spring-cloud-core_ 的依赖。

复制代码
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-core</artifactId>
<version>1.0.0.RELEASE</version>
</dependency>

如果希望应用程序既能部署在 Cloud Foundry 也能部署在 Heroku 上,则需要同时添加如下两个依赖。

复制代码
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-cloudfoundry-connector</artifactId>
<version>1.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-heroku-connector</artifactId>
<version>1.0.0.RELEASE</version>
</dependency>

下面是一个关于获取 DataSource 服务和 ApplicationInstanceInfo 的例子。ApplicationInstanceInfo 提供了这个实例中与云平台相关的信息。

复制代码
// MyController.java
@Controller
public class MyController {
@Autowired(required = false) DataSource dataSource;
@Autowired ApplicationInstanceInfo instanceInfo;
...
}
// CloudConfig.java
@Configuration
@ServiceScan
@Profile("cloud")
public class CloudConfig extends AbstractCloudConfig {
@Bean
public ApplicationInstanceInfo applicationInfo() {
return cloud().getApplicationInstanceInfo();
}
}

注解 _@Profile(“cloud”)表示我们希望这一配置只在云环境中加载。注解@ServiceScan_ 会扫描所有的服务并创建一个用于自动装配的 bean。@ServiceScan_ 类似于@ComponentScan_,不过与 _@ComponentScan_ 扫描组件和 bean 不同,_@ServiceScan_ 扫描绑定的服务。

关于如何将 Spring Cloud 部署到 Cloud Foundry 和 Heroku 的快速攻略,可以参考 Spring Cloud 简介的博客。这篇博文使用了一个 Spring Boot 的示例程序。对于不基于 Spring 的应用程序可以参考 Spring Cloud Core README 的使用说明。

查看原文链接: Spring Cloud 1.0 - Cloud Platform Abstraction


感谢马国耀对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-06-30 23:504802
用户头像

发布了 75 篇内容, 共 63.0 次阅读, 收获喜欢 6 次。

关注

评论

发布
暂无评论
发现更多内容

windows下Hive搭建踩坑汇总

北桥苏

hadoop hive hql

简单聊聊Java中线程安全有哪些实现思路?

做梦都在改BUG

Java 多线程

最简单的canal 1.1.6服务搭建方法

北桥苏

elasticsearch canal

n-Track Studio 9录音、音频编辑一站式完成!

真大的脸盆

Mac 音频制作 Mac 软件 音频处理 录音工具

阿里架构师总结的互联网面试必问Java八股文进阶手册,堪称面试前必看系列

开心学Java

Java 编程 面试 java面试 八股文

如何获得高并发经验?看这篇文章就够了

Java永远的神

程序员 系统设计 高并发 架构师 java面试

Windows下hadoop环境搭建之NameNode启动报错

北桥苏

大数据 hadoop

ElasticSearch中文分词和模糊查询

北桥苏

php elasticsearch

我通过 tensorflow 预测了博客的粉丝数

北桥苏

人工智能 深度学习 tensorflow

在Inteillj IDEA中使用Spark操作Hive

北桥苏

spark hive Big Data

如何在业务代码中使用 ThinkPHP5.1 封装的容器内反射方法

北桥苏

thinkphp 反射调用

SocketLog 的基本使用

北桥苏

php thinkphp SocketLog

京东内部疯传的Redis学习笔记,被阿里P7夸爆

小小怪下士

Java redis 程序员

我的网站中了马!

北桥苏

php thinkphp 网站开发

工赋开发者社区 | 何谓智能工厂?国内外智能工厂建设的现状分析

工赋开发者社区

由Elasticsearch7.8评分脚本引起的一个索引迁移解决方法

北桥苏

elasticsearch Logstash ELK Stack

深入解析Java适配器模式:将接口转换为你所需要的形式

做梦都在改BUG

Java 适配器

如何让ESP8266板子像APP开发一样方便

北桥苏

php 物联网 esp8266 mqtt

华为许超:伙伴成功,才有华为企业业务成功

脑极体

华为

独一份,15年经验汇聚而成的《SpringBoot“踩坑”手册》首次开源

做梦都在改BUG

Java spring Spring Boot 框架

PoseiSwap:合规、隐私与支持更广泛的资产

股市老人

BOSS直聘首发半小时被下架!300MB实战SpringBoot笔记爆赞过百万

做梦都在改BUG

Java spring Spring Boot 框架

用扩展的方式在 PHP 中使用 Kafka

北桥苏

php Kakfa

绝~ 阿里内部“Java进阶必备宝典”,理论到实战,一键通关

程序知音

Java java架构 Java进阶 后端技术

香港影视集团星光文化旗下 NFT 发售平台——StarNFT 上线

BlockChain先知

背废完虐面试官!字节架构师8年心血终成《图解设计模式》手册

做梦都在改BUG

Java 设计模式

平台工程 | 内部开发者门户权威指南

杨振涛

DevOps 平台 平台工程 内部开发者平台 内部开发门户

浅谈Kafka2.8+在Windows下的搭建与使用

北桥苏

php scala kafka

关于 PHP 启动 MongoDb 找不到指定模块问题

北桥苏

php mongodb

Github火到CSDN, 字节高级架构师亲码出 elasticsearch 实战手册

做梦都在改BUG

Java 搜索引擎 elasticsearch ES

Spring Cloud 1.0 – 云平台抽象化_Java_Bienvenido David_InfoQ精选文章