openshift学习
OpenShift是“红帽开发的开放式混合云应用程序平台”。 它具有不同的风格,对于大多数您想做的事情,最有趣的部分是公共云应用程序开发和托管平台“ OpenShift Online ”。 您可以轻松地尝试一下,因为在云中使用OpenShift Online是免费的,而且很容易。 它所需要的只是一个电子邮件地址 。 该免费产品最多允许三个基本的小型设备,并可以托管来自多种不同语言和框架的三个应用程序。 如果您需要更多,可以将您的计划升级到付费版本。 有关更多详细信息,请访问在线功能比较网站 。
OpenShift上的JBoss A-MQ
Java消息服务是跨系统通信的有效方法,即使在非Java应用程序之间也是如此。 通过基于开放源代码技术和强大的标准,RedHat OpenShift使开发人员可以轻松地将其JMS应用程序移动到云中,或编写利用JMS消息和加密的Internet连接的新系统。
这篇文章将介绍使用两个主要应用程序的方法:用于托管Web应用程序的WildFly 8和用于异步消息传递的JBoss A-MQ 。 这两个应用程序都可以在OpenShift的免费层中运行。
创建一个A-MQ装备
通过将A-MQ部署到OpenShift云,您的设备将收到几个可公开访问的端口。 然后,客户端系统可以使用这些远程端口连接到您的A-MQ服务。 端点需要加密,因此不会在Internet上以纯文本形式发送JMS消息。
创建A-MQ装备的第一步是克隆现有的JBoss Fuse A-MQ墨盒。 对于那些对墨盒管理感兴趣的人,可以查看有关该墨盒的完整详细信息 。 (注意:如果您正在寻找带有ActiveMQ的上游墨盒, 请查看此博客。 )
rhc create-app amq http://is.gd/Q5ihum
创建后,该齿轮会提供三个重要的信息:
- 您将用于登录JBoss Fuse的管理密码,用于管理A-MQ。
- 客户与A-MQ进行通信所必须具有的新公钥。 该信息如下所示:
––BEGIN证书-
…
-结束证书-
- A-MQ用于远程连接的公共端口列表。
在OpenShift上管理加密
客户端和您的OpenShift设备之间的区别在于OpenShift需要私钥。 如果需要更改密钥,则密钥库文件为FILENAME。 如果更改密钥,则客户端必须具有公共密钥才能信任它。 如果更改键,则必须重新启动齿轮。 如果您在创建齿轮时忘记了复制证书,并且更改了密钥库并需要提取密钥,请使用以下命令:
keytool -list -keystore ~/jboss-amq/jboss-a-mq-6.1.0.redhat-378/etc/keystore.jks
keytool -exportcert -alias (whatever it says) -keystore -file openshiftamq.cer
使用SFTP客户端下载openshiftamq.cer文件并配置客户端。
在客户端上管理加密
- 将密钥文本复制到名为amqpublic.cer的文件中。 复制每一行,包括BEGIN和END行。
- 将公共证书导入到客户将使用的信任库中。
keytool -importcert -alias openshiftamq -file openshiftamq.cer openshiftamq.jks
- 将openshiftamq.jks文件作为应用程序的类路径资源或令人难忘的地方。 您不再需要.cer文件,但仍可以保留它。
- 在客户端代码中,将此信任库配置为与A-MQ连接一起使用。 如果不执行此步骤,则客户端将不信任服务器。
private ConnectionFactory connection(String url) { ActiveMQSslConnectionFactory connectionFactory = new ActiveMQSslConnectionFactory(url); try { connectionFactory.setTrustStore("openshiftamq.jks"); //or file if not in classpath root } catch (Exception ex) { Logger.getLogger(getClass().getName()).log(Level.SEVERE, "Unable to load trust store.", ex); } connectionFactory.setTrustStorePassword("put your password here"); return connectionFactory; }
客户远程通讯
使用OpenShift保险丝A-MQ装置的好处之一是可以暴露多个外部端口。 因此,您的A-MQ服务可用,而无需rhc port-forward命令。 A-MQ客户的URL如下所示:
ssl://gearname-YourDomain.rhcloud.com:PORT
- 齿轮名–管理控制台中齿轮的名称。
- YourDomain –您的标准OpenShift域。
- PORT –创建盒带时提供的数字端口号。
使用上面的ConnectionFactory代码配置客户端。
OpenShift Gear中的其他ActiveMQ配置
您的OpenShift实例中提供了标准A-MQ实例的许多配置选项。 为此的配置文件是:
~/jboss-amq/jboss-a-mq-6.1.0.redhat-78/etc/activemq.xml
有一些警告。 即,您可以更改<transportConnector />的协议,但不能更改IP或端口。 这些端口由您的OpenShift Gear控制,并且实际上是外部区域唯一允许的端口。
防止齿轮空转
OpenShift被设计为资源共享系统,空闲资源实际上将进入睡眠状态直到被访问。 JMS在OpenShift上造成了一个特殊的问题,即如果JMS处于空闲状态,则连接将不起作用,新客户端也将无法连接。
为防止这种情况,请自动执行一个脚本,该脚本会定期与JBoss Fuse Web控制台进行交互,或者始终保持至少一个客户端与您的A-MQ连接。
openshift学习