openshift学习_在OpenShift上将JMS与JBoss A-MQ结合使用。 学习了有关远程客户端和加密的经验。...

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

创建后,该齿轮会提供三个重要的信息:

  1. 您将用于登录JBoss Fuse的管理密码,用于管理A-MQ。
  2. 客户与A-MQ进行通信所必须具有的新公钥。 该信息如下所示:

    ––BEGIN证书-

    -结束证书-

  3. 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文件并配置客户端。

在客户端上管理加密

  1. 将密钥文本复制到名为amqpublic.cer的文件中。 复制每一行,包括BEGIN和END行。
  2. 将公共证书导入到客户将使用的信任库中。
    keytool -importcert -alias openshiftamq -file openshiftamq.cer openshiftamq.jks
  3. 将openshiftamq.jks文件作为应用程序的类路径资源或令人难忘的地方。 您不再需要.cer文件,但仍可以保留它。
  4. 在客户端代码中,将此信任库配置为与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连接。

翻译自: https://www.javacodegeeks.com/2014/11/jms-with-jboss-a-mq-on-openshift-lessons-learned-about-remote-clients-and-encryption.html

openshift学习

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/338847.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mathtype运行时错误48_在office中无法使用MathType该怎么办?

想必大家都遇到过在office中无法使用MathType的情况&#xff0c;那么遇到这种情况的话大家应该怎么来解决呢&#xff1f;首先这样的现象一般为&#xff1a;word或者ppt中没有mathtype选项&#xff0c;或者选项打开提示文件未找到&#xff1a;MathPage.WLL。错误提示或者甚至运行…

谈谈C语言中的杂项运算符

在C语言中&#xff0c;还有一些重要的运算符&#xff0c;例如&#xff1a;sizeof()、&、* 、 ?: 。我们把上述的这些运算符归为杂项运算符&#xff0c;下面我将详细介绍这些杂项运算符。下面的表格列出了 C 语言支持的所有杂项运算符&#xff1a;运算符解释例子sizeof()返…

java集合的添加方法_深入理解java集合框架之---------Arraylist集合 -----添加方法

Arraylist集合 -----添加方法1、add(E e) 向集合中添加元素/*** 检查数组容量是否够用* param minCapacity*/public void ensureCapacity(int minCapacity){modCount;int oldCapacity elementData.length;if(minCapacity > oldCapacity){Object oldData[] elementData;int…

jenkins java_具有WildFly,Arquillian,Jenkins和OpenShift的Java EE 7部署管道

jenkins java技术提示&#xff03;54展示了如何Arquillianate&#xff08;Arquillianize&#xff1f;&#xff09;一个现有的Java EE项目并在WildFly在已知主机和端口上运行的远程模式下运行这些测试。 技术提示&#xff03;55展示了当WildFly在OpenShift中运行时如何运行这些测…

matplotlib 折线图_漂亮图表也可信手拈来,一文学会用Python绘制堆积折线图

今天咱们还是接着上次的话题&#xff0c;继续和大家聊聊关于Python绘图相关的东东哦&#xff0c;上次已经和大家讨论完了如何给自己所绘制的图表中添加装饰线以及修改装饰线密度的方法&#xff0c;今天呢&#xff0c;咱们再聊点的新的东东哦&#xff0c;还是和大家继续深耕Pyth…

C语言 | 赋值与运算符

本章以鸡兔同笼为例&#xff0c;讲解赋值语句和一些简单的运算符。相关知识点&#xff1a;scanf(" %d " , &i ); 输入函数&#xff0c;表示输入一个整数&#xff08;%d&#xff09;&#xff0c;赋值给 i&#xff08;&i&#xff09;C语言中加法运算符为 减法…

菜鸟学java要多久_菜鸟学java,根本停不下来!

位运算符&: 两个2进制的操作数,同一位数的两个数如果有一个为0结果就为0,两个都为1才是1.| : 两个2进制的操作数,同一位数的两个数如果有一个为1,两个都为0才是0.^ : 两个2进制的操作数,同一位数的两个数如果相同为0,不同为1.位移运算符<< 左移:把第一个二进制的操作…

响应式多级菜单 侧边菜单栏_使用纯HTML和OmniFaces构建动态响应的多级菜单

响应式多级菜单 侧边菜单栏最近&#xff0c;我不得不使用JSF 2.2创建一个响应式多级菜单。 要求&#xff1a;菜单应&#xff1a; 从后端使用动态结构创建 React灵敏&#xff0c;例如对桌面和移动设备友好 有带有导航链接的子菜单项 支持触摸事件 支持键盘辅助功能 PrimeF…

python列表中随机两个_随机化两个列表并在python中维护顺序

随机化两个列表并在python中维护顺序说我有两个简单的清单&#xff0c;a [Spears, "Adele", "NDubz", "Nicole", "Cristina"]b [1,2,3,4,5]len(a) len(b)我想做的是将a和a随机化&#xff0c;但要保持顺序。 因此&#xff0c;类似&a…

C语言中的头文件

头文件是扩展名为 .h 的文件&#xff0c;包含了 C 函数声明和宏定义&#xff0c;被多个源文件中引用共享。有两种类型的头文件&#xff1a;程序员编写的头文件和编译器自带的头文件。在程序中要使用头文件&#xff0c;需要使用 C 预处理指令 #include 来引用它。前面我们已经看…

ceph-rest-api_快速检查REST API是否有效的方法-从清单文件中获取详细信息

ceph-rest-api在某些情况下&#xff0c;您可能想快速验证部署在开发&#xff0c;测试或生产环境中的REST API是否完全可以访问。 一种常见的实现方法是构建通用资源&#xff0c;该资源可提供例如已部署API的版本。 您可以手动触发对此资源的请求&#xff0c;或者更好的是&#…

set trans 必须是事务处理的第一个语句_MySQL中特别实用的几种SQL语句送给大家

在写SQL时&#xff0c;经常灵活运用一些SQL语句编写的技巧&#xff0c;可以大大简化程序逻辑。减少程序与数据库的交互次数&#xff0c;有利于数据库高可用性&#xff0c;同时也能显得你的SQL很牛B&#xff0c;让同事们眼前一亮。实用的SQL1.插入或替换如果我们想插入一条新记录…

C语言预处理命令总结

预处理指令是以#号开头的代码行&#xff0c;# 号必须是该行除了任何空白字符外的第一个字符。# 后是指令关键字&#xff0c;在关键字和 # 号之间允许存在任意个数的空白字符&#xff0c;整行语句构成了一条预处理指令&#xff0c;该指令将在编译器进行编译之前对源代码做某些转…

突破极限–如何使用AeroGear Unified Push for Java EE和Node.js

在2014年底的AeroGear队宣布红帽的JBoss统一推送服务器的可用性xPaaS 。 让我们仔细看看&#xff01; 总览 统一推送服务器允许开发人员将本地推送消息发送到Apple的推送通知服务&#xff08;APNS&#xff09;和Google的云消息传递&#xff08;GCM&#xff09;。 它具有内置的…

java 运行os文件路径_Java获取文件路径的几种方式

关于绝对路径和相对路径&#xff1a; 绝对路径就是你的主页上的文件或目录在硬盘上真正的路径&#xff0c;(URL和物理路径)例如&#xff1a;C:xyz est.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。相 对路径&#xff1a;相对与某…

mysql 分词搜索_实战 | canal 实现Mysql到Elasticsearch实时增量同步

题记关系型数据库Mysql/Oracle增量同步Elasticsearch是持续关注的问题&#xff0c;也是社区、QQ群等讨论最多的问题之一。 问题包含但不限于&#xff1a; 1、Mysql如何同步到Elasticsearch? 2、Logstash、kafka_connector、canal选型有什么不同&#xff0c;如何取舍&#xff1…

C memset 踩坑

一、前言memset 作为对内存初始化的函数&#xff0c;还是有不少坑和误区的&#xff0c;今天就来对这个函数作一个总结。二、函数作用最简单的调用就是将一个数组清零&#xff0c;代码如下&#xff1a;const int maxn 1024; int a[maxn]; memset(a, 0, sizeof(a)); // a[0]a[1…

eap和psk_针对WildFly和EAP运行Java Mission Control和Flight Recorder

eap和pskJava Mission Control &#xff08;JMC&#xff09;使您可以监视和管理Java应用程序&#xff0c;而无需引入通常与这些类型的工具相关的性能开销。 它使用为正常的JVM动态优化而收集的数据&#xff0c;从而形成了一种非常轻量级的方法来观察和分析应用程序代码中的问题…

java与html关联_java-如何在HTML文件中搜索某些标签?

我在Java中有一个小问题.操作方法&#xff1a;我想在HTML文件中搜索标签href和src,然后获取与该标签关联的URL.最好的方法是什么&#xff1f;谢谢您的帮助.最好的祝福.解决方法:这是我用来完全完成您想要做的事情的代码,但首先让我给您一些提示.如果您在Java Swing环境中,请确保…

python中history()_keras中的History对象用法

keras中的fit_generator和fit函数均返回History对象&#xff0c;那么History怎么用呢&#xff1f;事实上History对象已经记录了运行输出。在了解之前&#xff0c;我们甚至自己定义回调函数记录损失和准确率等。相关keras源码位于网址&#xff1a;class History(Callback):"…