写点什么

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:505029
用户头像

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

关注

评论

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

【YashanDB知识库】使用select * 创建的物化视图无法进行查询重写

YashanDB

yashandb 崖山数据库 崖山DB

智胜未来:国内大模型+Agent应用案例精选,以及主流Agent框架开源项目推荐

不在线第一只蜗牛

人工智能 AI

HAProxy 可观测性最佳实践

观测云

HAProxy

澳鹏Appen入选大模型产业链基础层图谱及案例研究

澳鹏Appen

大模型训练 大模型 百模大战

如数据血缘探究数据管理的“自治理”

Aloudata

Data 数据管理 数据血缘 Data Fabric

天工一刻 | 一文看懂3D大模型

新消费日报

使用IPIDEA海外代理助力宠物跨境电商

热爱编程的小白白

如何借助逻辑数据编织平台实现“数据优先堆栈( DFS )”

Aloudata

数据仓库 数据虚拟化 数据编织

从焦虑症到AI「网红」:这名程序员是如何让AI「助他一臂之力」

新程序员编辑部

ChatGPT Prompt

管理能力达到国际认可水平 智谱获得国内首批ISO/IEC 42001:2023人工智能管理体系认证证书

技术研究院

性能提升20%,字节跳动HTTPDNS从中心下沉到边缘

火山引擎边缘云

边缘计算 HTTP DNS #DNS 边缘计算平台

用Python来DIY一个AI面部情绪识别API的简单方案

幂简集成

API

AWS 弹性伸缩特性介绍

AutoMQ

云计算 kafka 云原生 AWS

大咖公开课 | 大模型场景讲解以及测试方法

霍格沃兹测试开发学社

火山引擎VeDI数据技术分享:两个步骤,为Parquet降本提效

字节跳动数据平台

云服务 数据平台 火山引擎 数据飞轮

写报告 进图谱 做演讲,可信数据库大会上亚信科技AntDB可太忙了

亚信AntDB数据库

MySQL 备库可以设置 sync_binlog 非 1 吗?

爱可生开源社区

MySQL 数据库 MySQL主从复制

《饿殍:明末千里行》PC+手机版分享,高达97%的好评率。

你的猪会飞吗

单机游戏

全面解析:抖音商品列表数据接口的使用与集成技巧

tbapi

抖音 抖音商品列表数据接口 抖音商品列表数据采集 抖音API接口

商品图片与详情描述:1688 API返回值的重要部分

技术冰糖葫芦

API 文档 API 测试 API 优先 API Hub

Kubernetes集群的ETCD分布式数据库高可用原理解析

inBuilder低代码平台

开源 云原生 Kubernetes, 云原生, eBPF

汽车辐射大?技术来救它:整车辐射抗扰发射天线仿真建模及性能预测

Altair RapidMiner

人工智能 汽车 仿真 altair 辐射

一文剖析高可用向量数据库的本质

Zilliz

人工智能 大数据 AI Zilliz 向量数据库

程序员,到底要懂多少业务?

秃头小帅oi

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