esb 和mq_使用保险丝结构管理MQ和ESB的大型部署,第一部分

esb 和mq

FuseSource最近发布了ActiveMQ和ServiceMix发行版的企业版。 其中的一些主要功能包括增量修补 , 自定义平台安装程序和第三方验证 。 新企业版附带的最酷的功能之一是Fuse Fabric和一些新工具 ,使您可以利用Fabric管理环境。 Fabric允许您通过一些命令行或在基于Web的漂亮应用程序中单击按钮来部署,配置和配置ESB容器和MQ容器 。 可以根据需要在远程位置或云中部署任意数量的容器,进行自定义配置,以及从中央位置安装或升级应用程序,骆驼路线或容器本身。 设置大型部署以进行集成和管理非常困难。 织物和随附的工具有助于减轻这种痛苦。 另外,使用Fabric可以使您感到舒适,因为其许可证与其他Apache项目所使用的开放,灵活的许可证相同: Apache License 2.0 。
部署头痛大
让我们简要回顾一下在整个企业中部署和维护集成容器的一些问题,无论是在数据中心还是在远程位置(例如移动平台或业务合作伙伴):
安装 :在一个盒子上,下载和安装(例如ActiveMQ)非常容易。 但是,举例来说,您有一个复杂的代理人网络和主从对网络配置。 您必须将ssh放入每个框中,解压发行版,相应地设置权限,在安装过程中设置所有目录或环境变量,然后在正确的端口上启动代理。
配置 :安装了代理后,您需要对其进行配置,以通过正确设置网络连接器将其加入代理网络,将代理指向共享存储,设置任何流控制或订阅策略详细信息或任何其他内容。代理配置调整是拓扑的一部分。 事实是,您的企业可能由不同的操作系统,具有不同资源可用性的计算机组成,并且针对不同的用例而设计,这可能会带来噩梦。
升级容器 :进行升级时,您必须遵循上面的两个步骤,并希望您不要搞砸任何东西。 如果出于任何原因需要回滚,则必须确保已采用自定义回滚策略。
Container Intropsection :您使用哪些工具查看OS /机器使用情况的基本统计信息? 还是基于ActiveMQ或Camel的解决方案的详细信息? 您可能需要登录到每个框,或找到每个框的JMX URL。 不用说,对于大型部署这样做将是令人望而却步的。
保险丝织物的创建旨在解决这些维护问题。 让我们看看如何。 首先,您可能有兴趣获得Fuse Fabric或Fuse管理控制台。 FuseSource建议通过管理控制台使用Fabric。 请注意以下两点:1)默认情况下, Fuse ESB Enterprise和Fuse MQ Enterprise附带了Fabric,但是2) 管理控制台 (由命令行外壳和Web应用程序组成)需要订阅webapp部分。 该网络应用需要订阅。 Shell控制台没有。

因此,请下载保险丝管理控制台 (FMC)并使用以下命令行启动外壳:

./bin/fmc

您会注意到,这是一个装有许多东西的Karaf容器。 Karaf是一个OSGI容器,内置了一些额外的东西。 让我们快速看一下FMC分发的一些内容:

在外壳中,键入以下内容,它将列出阈值> 0的所有捆绑包

FMC:karaf@FuseManagementConsole> list -t 0

一些有趣的东西:

  • 运行的Karaf实例所需的关键Karaf捆绑包
  • 保险丝面料Zookeeper服务
  • 保险丝芯
  • 码头捆绑
  • jclouds捆绑包
  • 保险丝应用套件
  • 保险丝管理控制台Web存档
需要注意几个关键事项:这个“动物园管理员”的想法? 服务,“? 保险丝应用套件 “? 和保险丝管理控制台Web存档。 如前所述,管理控制台需要订阅FuseSource,但是有很多机会可以在没有订阅密钥的情况下进行尝试。 有一些试用密钥可用于评估它。
Fuse Application Bundles是FuseSource的一个新项目,使您可以更轻松地将jar工件(或战争)作为OSGI捆绑包进行部署,而不必依赖于OSGI构建的知识(bnd)或清单的OSGI导入/导出详细信息。 它允许您部署工件,并让框架将其正确识别为OSGI捆绑软件,并自动配置所有正确的依赖项。
最后,Fuse Zookeeper服务在那里提供分布式注册表,用于存储配置和节点详细信息。 让我们进一步介绍一下。  

保险丝注册表

Apache Zookeeper通过提供分布式“协调”来支持Fuse Fabric的实施? 注册服务。 这意味着Zookeeper提供了一个注册表,其目的是存储有关可能在企业中部署的远程容器的信息。 Fuse Fabric注册表存储有关特定集成容器,这些容器的配置,这些容器所在的位置以及如何访问它们的信息。 您可以在一个群集( ensemble )中运行多个复制的注册表,以在某些注册表节点出现故障时提供高可用性。 建议使用奇数个注册表服务器来形成一个整体 。 启动FMC Shell之后,让我们使用以下命令创建结构,该结构将创建注册表:

FMC:karaf@FuseManagementConsole> fabric:create

让我们快速退后一步。 我们在说什么容器?  

货柜

Fuse Fabric的目的是管理,配置和配置容器。 容器是Karaf容器。 是的,Karaf容器是OSGI容器。 管理,配置和供应机制围绕Karaf,安装了哪些捆绑包,启用了哪些功能,对于功能/捆绑包可用的配置等。Karaf是Apache ServiceMix和Fuse Enterprise ESB当前使用的核心容器。 如果您想稍微了解一下Karaf,请参阅Apache站点上的文档 。

因此,通过Fabric部署的所有东西都是Karaf容器,这些容器的位置,配置和可访问性都保留在注册表中(由Zookeeper实现)。 到目前为止,一切都很好? 让我们开始研究如何指定这些容器的配置。  

个人资料

Fuse Fabric有一个称为配置文件的属性 ,它允许您指定容器的配置。 配置可能太笼统,无法准确传达配置文件的功能。 个人资料“呼吸生命”? 放入原本毫无趣味的Karaf容器中。 让我们快速进入外壳。 输入以下内容:

FMC:karaf@FuseManagementConsole> profile-list

你应该看到的配置文件中包含“?骆驼”?“?ESB”?“?MQ”?“例如,MQ”?和其他几个人的名字。 这些是开箱即用的配置文件。 骆驼配置文件将一个容器变成了一个能够运行骆驼路线的容器。 mq配置文件将容器变成ActiveMQ代理。 esb配置文件转变为一个容器,您可以在其中构建骆驼路线,activemq客户端并使用NMR。 换句话说,配置文件是“?包”? 可以应用于容器的功能 如果您熟悉OSGI和Karaf功能,则可以使用功能和捆绑包来实现这些配置文件 。 配置文件指定了容器应安装的功能,保险丝应用程序捆绑包,OSGI捆绑包,maven存储库,配置服务属性和系统属性应可用并将其安装到容器中。 这是对“配置”进行分组的一种非常有效的方法,只需单击一下按钮即可将其应用,从而将Karaf容器变成功能更强大的集成容器。 可以将多个概要文件应用于一个容器,并且可以将单个概要文件部署到多个容器(多对多关系)。

FMC中默认情况下可用的配置文件可以用作创建自己的配置文件的起点。 可以从配置文件继承配置文件,子配置文件可以覆盖父配置。 您可以使用从多个“父配置文件”继承吗? 也一样 假设您有一组容器,所有这些容器都应部署相同的骆驼路线,但是每个容器针对该路线将具有不同的配置。 您可以从父配置文件开始,并从其继承其他指定更具体配置的配置文件。

概要文件也可以进行版本控制。 例如,开箱即用,您将看到所有配置文件均被视为“ 1.0版”的一部分。 一个版本指定“一组配置文件”。 如果要创建新版本,则可以为1.1或2.0版本或您指定的编号创建一组新的配置文件。 使用版本,您可以快速部署新版本的容器,应用程序,代理,配置等,以选择容器或所有容器。 版本控制机制是Fuse Fabric允许您支持将部署滚动升级到容器的方式。  

保险丝座
所有版本的所有配置文件都存储在保险丝注册表(zookeeper)中。 使用Fuse Fabric创建新容器时,它是通过代理服务创建的。 代理或资源调配代理位于远程容器中,并连接到注册表以找出对其应用了哪些配置文件。 当看到配置文件或对配置文件进行更改时,该代理负责配置和安装所需的功能,捆绑软件和配置。
对与Fuse Fabric一起部署的容器的隐含限制是,您无需登录到容器并在本地进行更改。 所有更改都应由注册表和Fuse Fabric管理。
回顾
分布式注册表用于对有关已部署哪些容器,它们在哪里以及如何到达它们的信息进行分类。 注册表还包含配置文件和所有版本的配置文件形式的所有配置。 一个容器(仅是Karaf容器)与Fuse Fabric一起部署并连接到注册表以查看对其应用了哪些配置文件。 容器的供应代理负责下载,安装和配置概要文件指定的所有功能和捆绑包。 可以应用的配置文件包括添加代理功能,ESB功能,骆驼路线,保险丝应用程序捆绑包,CXF Web服务,OSGI服务以及可以部署到OSGI容器中的任何其他配置文件。
在这篇文章中,我们对Fuse Fabric是一个广泛的概述。 在第2部分中,我们将更仔细地研究Fabric的功能,并展示一些凉爽之处,使我们能够解决与部署和管理大量容器或代理有关的难题。

参考:通过Christian Posta软件博客的JCG合作伙伴 Christian Posta, 使用Fuse Fabric管理MQ和ESB的大型部署,第一部分 。


翻译自: https://www.javacodegeeks.com/2012/07/managing-large-deployments-of-mq-and.html

esb 和mq

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

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

相关文章

centOS 阿里云yum地址配置

引用:http://mirrors.aliyun.com/help/centos?spm5176.bbsr150321.0.0.d6ykiD 1、备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/ CentOS 5 wget -O /etc/yum.repos.d/Cen…

简单的事件驱动设计

总览 开发人员经常询问系统或其代码的性能或效率。 这到底是什么意思? 我的代码是如此高效,只有编码神能理解它的工作原理。 我的代码确实很聪明,但是却难以维护。 下一位开发人员将继续重写它。 我的代码对机器确实很有效,但对…

51Nod 1105 第K大的数 二分答案

很典型的二分答案的题目 码着 #include<iostream> #include<algorithm> #include<string> #include<string.h> typedef long long ll; using namespace std; const int MAX 5e4 5; ll n, k, a[MAX], b[MAX]; bool C(ll mid) {ll j n, cnt 0;for …

带有JWT示例的​​Spring Oauth2

有时以前&#xff0c;我们发表了一篇文章&#xff0c;分享了一种在云环境中实现无状态会话的自定义方法。 今天&#xff0c;让我们探讨为Spring Boot应用程序设置Oauth2身份验证的另一个流行用例。 在此示例中&#xff0c;我们将使用JSON Web令牌&#xff08;JWT&#xff09;作…

Spring源码解析-实例化bean对象

spring加载配置文件&#xff0c;AbstractApplicationContext类中的refresh方法起着重要的作用。 Overridepublic void refresh() throws BeansException, IllegalStateException {synchronized (this.startupShutdownMonitor) {// Prepare this context for refreshing.准备刷新…

java docx文档解析_带有docx4j的Java Word(.docx)文档

java docx文档解析几个月前&#xff0c;我需要创建一个包含许多表和段落的动态Word文档。 过去&#xff0c;我曾使用POI来实现此目的&#xff0c;但是我发现它很难使用&#xff0c;并且在创建更复杂的文档时对我来说效果不佳。 因此&#xff0c;对于这个项目&#xff0c;经过一…

Win8.1部署 .NET Framework 3.5 安装方式

Windows 8.1中包含.NET Framework&#xff0c;操作系统安装过程中默认安装 .NET Framework 4.5.1。如果程序需要.NET Framework 3.5支持&#xff0c;将自动启用相关功能。 注意&#xff1a; 1. .NET Framework 3.5同时支持基于 .NET Framework 2.0/3.0/3.5构建应用程序。 2. 在…

@Autowired所有的东西!

最近&#xff0c;我写了Autowired注释 &#xff0c;它使我们可以编写更少的代码&#xff0c;从而使我们的生活更轻松 。 但是&#xff0c;使用它通常会使您的设计更加复杂。 尤其是当我们谈论在类的属性上使用它时。 它更容易违反 单一责任原则 。 这样可以更容易地注意到这一…

Python基础-闭包

闭包&#xff1a;闭包内部函数定义函数时的环境 def outer():x 10def inner(): # 条件一 inner就是内部函数print(x) # 条件二 外部环境的一个变量return inner # 结论 内部函数inner就是一个闭包 outer()() 转载于:https://www.cnblogs.com/fansik/p/7676231.html

jit即时编译_热点中的即时编译器(JIT)

jit即时编译即时编译器&#xff08;JIT&#xff09;的概念以及更广泛的自适应优化是除Java&#xff08;.Net&#xff0c;Lua&#xff0c;JRuby&#xff09;之外的许多语言中众所周知的概念。 为了解释什么是JIT编译器&#xff0c;我想先定义一个编译器概念。 根据维基百科&…

每天十分钟系列:JS数据操作之神奇的map()

Array.prototype.map() map()方法可以创建一个新数组&#xff0c;其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。 demo1 上面的例子&#xff0c;在控制台中打印的结果是&#xff1a; 1 2 3 4 5 demo2 javascript学习交流群&#xff1a;453833554 上面的例子…

JSON格式数据与数据组件

1.将JSON格式数据转化为wex5data数据组件中的数据&#xff0c;且数据列数不必一 一对应&#xff0c;但转化的列数据的列名与数据表字段相同。 Model.prototype.goodsDataCustomRefresh function(event){var url require.toUrl("./json/goodsData.json");$.ajaxSett…

作业十三

<!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <title>GZCC</title> </head> <body> <h1>MIS问答平台</h1> <h2 id"2015">2015</h2> <div id&quo…

openshift_通过OpenShift超越云炒作

openshift您是否厌倦了为应用程序请求新的开发机器&#xff1f; 您是否为必须为应用程序设置新的测试环境感到烦恼&#xff1f; 您是否只想专注于和平开发应用程序而不会一直“沉迷于堆栈”&#xff1f; 我们听到你的声音。 我们也去过那里。 不用担心&#xff0c;OpenShift就在…

初级程序员需要接触好的架构代码

最近感触最深的就是一个项目需要好的架构设计&#xff0c;不会因为后面不断延伸业务需求造成业务代码的不断堆砌&#xff0c;破坏整个项目的层次结构&#xff0c;也让新来的团队成员更好的上手项目&#xff0c;从清晰的结构就能很快的了解整个业务的流程。一个好的架构设计&…

行动中的反思实践

在上一篇文章中 &#xff0c;我解释了最基本的敏捷实践是反思。 在本文中&#xff0c;我概述了组织&#xff0c;团队和人员如何在行动中运用反思的示例。 通过回顾反思 回顾是强大的工具&#xff0c;整个团队都可以使用它们来反思其当前的工作实践&#xff0c;以了解他们为持续…

python基本语法1.2--数的移位及与或抑或相关计算

#便于中文的显示# -*- coding: utf-8 -*- #指数表示 # a ** b <> power(a, b) print(10 ** 2) #100 print(10 ** 2.5) #316.22776601683796 #做除法 # //: 返回商的整数部分 print(23 // 5) #4 print(28.7 // 4.4) #6.0#<<向左移位做乘法#>>向右移位做除法 …

fabric canvas 清空并重置画布

fabric.js是一个强大而简约的依赖HTML5上的 canvas的javascript库&#xff0c;Fabric在canvas元素顶部提供了交互式对象模型&#xff0c;它还具有SVG到画布&#xff08;和画布到SVG&#xff09;解析器&#xff0c;官网上提供了丰富的案例&#xff0c;可照葫芦画瓢&#xff0c;足…

使用vue-axios请求geoJson数据报错的问题

最近的项目用到了echarts一个带有散点地图的图表,按照正常jquery写法应该使用ajax请求geojson的数据动态去切换地图,就像下面这样 $.get(Js/map/ cityData.name .json, function(geoJson) {map(gr-map, cityData, geoJson, geoCoordMap);//调用地图方法}); 页面显示(成功) bu…

前端工业物联网开发(Electron + Typescript + Vue)

从SpaceX公司的带来的Javascript上天新闻开始&#xff0c;以及近几年js语言在整个互联网的广泛应用&#xff0c;注定未来js语言有着不平凡的使命&#xff0c;跨端&#xff08;一套代码多端运行&#xff09;、易UI&#xff08;前端开发UI的便利&#xff09;、丰富的生态&#xf…