第 170 章 JClouds Component
作为 Camel 版本 2.9 提供。
此组件允许与云供应商键-值引擎(blobstore)和计算服务交互。组件使用 jclouds,即
一个为 blob 存储和计算服务提供抽象的库。
ComputeService 简化了在云中管理机器的任务。例如,您可以使用 ComputeService 启动 5 机器并在其中安装软件。
BlobStore 简化了处理键值提供程序(如 Amazon S3)的过程。例如,BlobStore 可以提供容器的简单 map 视图。
camel jclouds 组件允许您同时使用抽象,因为它将 JcloudsBlobStoreEndpoint 和 JcloudsComputeEndpoint 指定了两种类型的端点。您可以在 blobstore 端点上拥有制作者和使用者,但您只能在计算端点上具有制作者。
Maven 用户需要将以下依赖项添加到其 pom.xml 中:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-jclouds</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>170.1. 配置组件
camel jclouds 组件将使用多个 jclouds blob 存储和计算服务,只要它们在初始化期间传递给组件。组件接受一个 list blobstores 和 compute 服务。以下是如何配置它的:
<bean id="jclouds" class="org.apache.camel.component.jclouds.JcloudsComponent">
<property name="computeServices">
<list>
<ref bean="computeService"/>
</list>
</property>
<property name="blobStores">
<list>
<ref bean="blobStore"/>
</list>
</property>
</bean>
<!-- Creating a blobstore from spring / blueprint xml -->
<bean id="blobStoreContextFactory" class="org.jclouds.blobstore.BlobStoreContextFactory"/>
<bean id="blobStoreContext" factory-bean="blobStoreContextFactory" factory-method="createContext">
<constructor-arg name="provider" value="PROVIDER_NAME"/>
<constructor-arg name="identity" value="IDENTITY"/>
<constructor-arg name="credential" value="CREDENTIAL"/>
</bean>
<bean id="blobStore" factory-bean="blobStoreContext" factory-method="getBlobStore"/>
<!-- Creating a compute service from spring / blueprint xml -->
<bean id="computeServiceContextFactory" class="org.jclouds.compute.ComputeServiceContextFactory"/>
<bean id="computeServiceContext" factory-bean="computeServiceContextFactory" factory-method="createContext">
<constructor-arg name="provider" value="PROVIDER_NAME"/>
<constructor-arg name="identity" value="IDENTITY"/>
<constructor-arg name="credential" value="CREDENTIAL"/>
</bean>
<bean id="computeService" factory-bean="computeServiceContext" factory-method="getComputeService"/>如您所见,该组件能够处理多个 blob 存储和计算服务。每个端点将使用的实际实现是通过在 URI 中传递提供程序来指定的。