【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

VMware 的 CloudFoundry 服务获得对 PostgreSQL 支持

  • 2011-11-10
  • 本文字数:1602 字

    阅读完需:约 5 分钟

今年年初,VMware 宣布了CloudFoundry 项目,一款平台即服务(PAAS)开源解决方案,其预置提供对MongoDB、MySQL 及Redis 此类服务的支持。最近它将PostgreSQL 和RabbitMQ 加入到云服务列表中以便为各应用所使用,同时也提供了一个可运行在单个工作站上的 Micro 版CloudFoundry。

PostgreSQL 纳入 CloudFoundry 还是很有趣的,因为它是一个非常有特色的传统数据库,其受众较之 MySQL 或 MongoDB 的用户截然不同。为了更好使用 PostgreSQL,cloudfoundry 并没有直接使用其正常发布的版本而是在 vFabric 之上定制了一个版本,这在官方博客上有做解释。(译者注:针对云平台对PostgreSQL 做了一些优化。)

该博客上给了一个样例说明如何利用Spring Roo 在一个Java 项目中使用PostgreSQL。我们这里介绍另一种可选方案,针对的Java 应用是某个基于Spring 使用了JPA 的 WAR

假设你的应用已有的 Spring 上下文初始化内容如:

复制代码
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="myJpaManager" />
<property name="dataSource" ref="dataSource"/>
</bean>
<bean class="org.springframework.jdbc.datasource.DriverManagerDataSource" id="dataSource">
<property name="driverClassName" value="org.postgresql.Driver" />
<property name="url" value="jdbc:postgresql://localhost/postgres" />
<property name="username" value="postgres" />
<property name="password" value="postgres" />
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
<context:annotation-config />

META-INF/persistence.xml文件如:

复制代码
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="myJpaManager" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
<property name="hibernate.hbm2ddl.auto" value="update" />
</properties>
</persistence-unit>
</persistence>

多亏了 CloudFoundry 的自动配置功能,此应用可以被直接上传到 CloudFoundry,完全不用做任何修改。

PostgreSQL(包括 MySQL 和其他平台支持的服务)充分利用了 Cloudfoundry 提供的自动配置功能。在特定条件下,使用了 PostgreSQL 的某一本地 Java 应用可以上传到 Cloudfoundry 而 _ 无需修改任何一行代码 _。

自动配置利用了 Spring 核心容器的功能,当下面两个条件都满足的情况下可以生效

  1. 任一给定的服务类型有且只有一个服务实现。比如,你应该只给自己的应用绑定一个关系型数据库服务(MySQL 或 PostgreSQL)。
  2. 每个匹配类型对应有且只有一个 bean。比如,在你的应用上下文中应该只出现一个数据源 bean。

如果满足上述需求,那 Cloudfoundry 将会自动拦截你的本地数据源,并使用 Cloudfoundry 服务来代替那些设置在 Spring 上下文中的值。

剩下唯一要做的就是积极地回答当应用被上传到云上, vmc 是何时请求服务绑定的。

对于更加复杂的应用,Spring 3.1预计能增加一个特殊的_ 云_ 命名空间并提供运行时概要支持。

查看英文原文: VMware’s CloudFoundry Service Gains Support for PostgreSQL

2011-11-10 06:111648
用户头像

发布了 52 篇内容, 共 18.1 次阅读, 收获喜欢 3 次。

关注

评论

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

Kafka到底有多高可靠?(RNG NB)

敖丙

kafka Java EE 程序员‘

什么是哈希?趣投哈希幸运哈希竞猜游戏开发方案策划

开发微hkkf5566

英特尔加速创新,唤醒网络及边缘原力

科技之家

web前端培训如何解决模块依赖复杂度太高的问题

@零度

前端开发

架构实战营 7 期「模块二」如何抓住架构设计关键点

Steve_bot

畅聊安全生产,对话B站、唯品会一线专家!|TakinTalks大咖对谈

TakinTalks稳定性社区

2.5TinkerPop3 升级指南

Geek_古藤模根

图数据库实战

【架构训练营】模块二作业

知北游

作业

要自信的对客户说 “NO”

源字节1号

善事利器 - 我是如何在药师帮掌店易项目落地 Zadig 的

Zadig

DevOps 云原生 CI/CD

理“ Druid 元数据”之乱

vivo互联网技术

大数据 存储 Druid Apache Druid

企业知识管理难题,现在有了一个好的解决方案

小炮

通过集成腾讯IM来浅尝一下.net 6的MINI API

为自己带盐

.net core 5月月更 mini api

java培训动态上传jar包热部署实战分享

@零度

JAVA开发

架构实战-模块二

yuansteel

前端食堂技术周刊第 39 期:TypeScript 4.7、Layouts RFC、Lerna 复活后的大版本 v5.0.0 、TypeScript 错误翻译器

童欧巴

JavaScript typescript 前端

聊聊 Kafka:Kafka 如何保证可靠性

老周聊架构

kafka 5月月更

分析一下微信朋友圈的高性能复杂度

Geek_7a789a

直播预告丨 Hello HarmonyOS 进阶课程第五课——原子化服务

HarmonyOS开发者

HarmonyOS

在线下划线转驼峰,驼峰转下划线工具

入门小站

工具

在线HTML转ASP工具

入门小站

工具

CopyOnWriteArrayList 源码分析-基础和新增

zarmnosaj

5月月更

模块二 微信朋友圈高性能架构分析

挖了蘑菇哩斯

作业 架构实战营

Docker镜像制作实战:设置时区和系统编码

程序员欣宸

Docker 5月月更

国密在车联网安全认证场景中的应用|车联网系列专题07

EMQ映云科技

车联网 物联网 国密 emqx 5月月更

SAP UI5 自动化测试工具的 qunit-redirect.js

Jerry Wang

JavaScript 前端开发 SAP Fiori 5月月更

面试突击52:什么是三范式?它有什么用?

王磊

Java 面试

【愚公系列】2022年05月 二十三种设计模式(十八)-备忘录模式(Memento Pattern)

愚公搬代码

5月月更

[模块二作业]

wuli洋

网站建设导致网站失败的十个原因

源字节1号

微信小程序 前端开发 后端开发 网站开发

架构实战营-模块二作业

Roy

架构实战营

VMware的CloudFoundry服务获得对PostgreSQL支持_Java_Kostis Kapelonis_InfoQ精选文章