第 171 章 JClouds Component
从 Camel 版本 2.9 开始提供
此组件允许与云供应商键值引擎(blobstores)和计算服务交互。组件使用 jclouds,即
为 blobstores 和 compute 服务提供抽象的库。
ComputeService 简化在云中管理机器的任务。例如,您可以使用 ComputeService 启动 5 机器并在其上安装软件。
BlobStore 简化了处理键值提供程序(如 Amazon S3)的过程。例如,BlobStore 可以为您提供容器的简单映射视图。
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>
171.1. 配置组件
camel jclouds 组件将使用多个 jclouds blobstores 和 compute 服务,只要它们在初始化过程中传递给组件。组件接受列表 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"/>
您可以看到组件能够处理多个 blobstores 和 compute 服务。每个端点使用的实际实施是通过传递 URI 中的提供程序来指定。