专业正规安全的配资公司炒股平台门户网
关键词不能为空

股票配资

导航

「用BBI指标炒期货」多空bbi指标适合期货吗

未知
admin

用BBI指标炒期货:多空bbi指标适合期货吗

不同的期货品种波动规律是不一样的,专心研究把握走势规律,做好几个品种就够了!想做好期货:要学会等待机会,不能频繁操作,手勤的人肯定亏钱! 不需要看太多复杂的指标,大繁至简,顺势而为;只需看日线定趋势,利用分时线区间突破,再结合一分钟K线里的布林带进行短线操作,等待机会再出手,止损点要严格设置在支撑和阻力位,止盈可以先不设:这样就可以锁定风险,让利润奔跑!止损点一定一定要设好:他可以克服人性的弱点,你舍不得止损,让系统来帮你!我们是个团队,指导操作,利润分成! 做久了才知道,期货大起大落,我们不求大赚,只求每天稳定赚钱!

要知道:在想到利润之前首先要想到的是风险!期货里爆赚爆亏的人太多,比爆赚爆亏更重要的是长久而稳定的盈利

顺便提醒一下:我知道有一家公司他们的手续费是所有期货公司里面最最低的:比如甲醇是1.423, 豆粕1.528,玉米1.223,白银2.9,螺纹钢2.02,线材1.59,沥青2.02等等,所有品种都是最低的,交易所的基础上加2分

用BBI指标炒期货:股市中BBI指标如何使用?

BBI指标(多空指标)这个指标想必有人知道,也使用过,它是用来判断股票多空状态的一个指标。多空的判断有很多方法,股市中不少人喜欢用移动平均线来判断,通过设定不同周期的移动平均线来寻找多空转换的迹象,但是,这种方法并不能有效解决不同周期移动平均线互相协调的问题。而BBI多空指标的设计原理是综合多个移动平均线的数值后,将它们进行平均处理,这样得到的数值更客观、更形象,因为它如同一个议会,是在综合了大家的意见后得出结论,而不是单独作出评判,所以,用“多空指标”来判断多空的效果是比较理想,特别是在判断中长期走势的时候。BBI指标的使用方法很简单,它只有一条参考线,当股价站在BBI指标线的上方,就说明这只股票正处于多头趋势,股价如果跌到了BBI指标的下方,就说明这只股票进入了空头趋势。由于BBI指标判断多空的特性,对一些成长性较好的股票有特殊的指导意义,如果将该指标用在周线图中会收到意想不到的效果。 实例:沈阳机床(000410以周线为例)该股从上市以来的周线BBI指标的信号一直都能把握该股脉动,尤其近段时间来,该股在沈阳板块整体走强的同时,表现也是非常的好,从2003年5月23日那一周股价正式站在BBI多空指标之上后,展开了长达5个多月的多头趋势,而且,到目前为止,该股仍处在多头趋势当中。

用BBI指标炒期货:外汇买卖中怎样使用BBI多空指标

BBI最大的优点就是使用起来方便简单。 由于多空指标是在移动平均线的基础上发展而来,所以它的运用法则如下: 1、当汇价处于低位区,一旦收盘价突破多空指标为买入信号。 2、当汇价(或指数)处于高位区,一旦收盘价(或收盘指数)跌破多空指标为卖出信号。 3、当汇价运行于多空指标上方,且多空指标逐渐上升,将起到助涨的作用,表明多头控制局势,可继续持股;如果股价回落,但仍能获得多空指标的支撑,则意味着调整即将结束,有望展开新的上升行情。 4、当汇价运行于多空指标下方,且多空指标逐步下滑,将起到助跌的作用,表明空头控制局面,一般不宜买入;如果出现反弹走势,但不能有效突破多空指标,则操作上应逢高减磅。 由于多空指标在图表上以一条均线的形式出现,且买卖信号也以其作为界定标准,在某种意义上已成为多空分水岭。很明显,在BBI指标中,近期数据较多,远期数据利用次数较少,因而是一种变相的加权计算。

用BBI指标炒期货:如何运用BBI指标

 BBI指标(多空指标)这个指标想必有人知道,也使用过,它是用来判断股票多空状态的一个指标。多空的判断有很多方法,股市中不少人喜欢用移动平均线来判断,通过设定不同周期的移动平均线来寻找多空转换的迹象,但是,这种方法并不能有效解决不同周期移动平均线互相协调的问题。而BBI多空指标的设计原理是综合多个移动平均线的数值后,将它们进行平均处理,这样得到的数值更客观、更形象,因为它如同一个议会,是在综合了大家的意见后得出结论,而不是单独作出评判,所以,用“多空指标”来判断多空的效果是比较理想,特别是在判断中长期走势的时候。BBI指标的使用方法很简单,它只有一条参考线,当股价站在BBI指标线的上方,就说明这只股票正处于多头趋势,股价如果跌到了BBI指标的下方,就说明这只股票进入了空头趋势。由于BBI指标判断多空的特性,对一些成长性较好的股票有特殊的指导意义,如果将该指标用在周线图中会收到意想不到的效果。

用BBI指标炒期货:如何利用BBI指标选股

BBI又叫多空指数,多数炒股软件都自带该指标。BBI是通过将几条不同天数移动平均线用加权平均方法计算出的一条移动平均线的综合指标,BBI指标本身就是针对普通移动平均线MA指标的一种改进,任何事物都需要在不断推陈出新的改进中才能进步发展,技术指标也不例外。 BBI计算公式为:BBI=(3日平均价+6日平均价+12日平均价+24日平均价)÷4 从多空指数的计算公式可以看出,多空指数的数值分别包含了不同日数移动平均线的部分权值,这是一种将不同日数的移动平均值再平均的数值,从而分别代表了各条平均线的“利益”。事实上,多空指数是移动平均原理的特殊产物,起到了多空分水岭的作用。 一,简单的操作方法: 当股价从BBI指标之下向上穿越BBI指标线的时候,往往就是股价启动的征兆,我们就可一在它向下回抽该BBI指标线的时候介入。 二,寻找最佳之买点: 当股价突破BBI指标线后快速放量拉升,必然会在几天后出现回调,只有在回调的时候成交量初步减少,在它第一次回靠BBI指标的时候,就可以逢低入场,失误的概率大大减低。 股价突破指标线后快速拉升,没有买入的机会,当股价出现调整时,我们认为第一次回靠指标线的时候是最安全的,因为主力在拉升过程中时不可能顺利撤退的,必须有2此拉升出现,再结合MACD指标反身向上的技巧则成功率更高。 三,根据股票操作周期的特点: 一般在周期越小的情况下判断错误的机会也更多,我们若将该指标运用到月线中,那么主力做出骗人的机会越小,从而发现大黑马。 简单概述,具体的可参阅有关方面的书籍系统的了解一下,同时结合个模拟炒股去练练,这样理论加以实践可快速有效的掌握技巧,目前的牛股宝模拟炒股还不错,里面许多的功能足够分析大盘与个股,使用起来有一定的帮助,希望可以帮助到您,祝投资愉快!

用BBI指标炒期货:怎样设置BBI指标

多空指标英文全名为"BullAndBearlndex",简称BBI,是一种将不同日数移动平均线加权平均之后的综合指标,属于均线型指标,一般选用3日、6日、12日、24日等4条平均线。在使用移动平均线时,投资者往往对参数值选择有不同的偏好,而多空指标恰好解决了中短期移动平均线的期间长短合理性问题。很明显,在BBI指标中,近期数据较多,远期数据利用次数较少,因而是一种变相的加权计算。由于多空指标是一条混合平均线,所以既有短期移动平均线的灵敏,又有明显的中期趋势特征,适于稳健的投资者。 bbi指标设置: 英文全名:Bull And Bear Index 中文全名:多空指标 指标热键:BBI 参数值(指标设置):3 、6 、12、24 指标应用法则: 1.股价位于BBI 上方,视为多头市场。 2.股价位于BBI 下方,视为空头市场。

用BBI指标炒期货:为什么同花顺炒软件没有BBI指标?

公式---用户---新建---确定----在显示的公式编辑器内输入:(MA(CLOSE,3)+MA(CLOSE,6)+MA(CLOSE,12)+MA(CLOSE,24))/4; 输入---名称(如:BBII)/描述(如:多空指标)测试成功后点击:显示图形,在出现的对话框中点击“是”,最后确认。

用BBI指标炒期货:如何在通达信交易软件上怎么设置BBI多空指标? 如何在系统里 设置 30 和120日的均线

1. BBI多空指标调用: 依次点击:工具-系统设置-设置2 -右框内找到BBI-点击BBI-点击中间→,按“确定”即可。 2. 增加 30日 和120日均线: 依次点击:功能-专家系统-公式管理-指标公式-均线-新建-引入指标公式-是否覆盖(是)-MA-确定; a、出现原均线公式: MA1:MA(CLOSE,M1); MA2:MA(CLOSE,M2); MA3:MA(CLOSE,M3); MA4:MA(CLOSE,M4); b、自己增加2条: MA5:MA(CLOSE,M5); MA6:MA(CLOSE,M6); 再点(参数5-8),依照参数1-4的样本,在框内填入:M5,缺省填30; M6,缺省填120。 然后在公式名称一栏的“MA”后加一任意数字。 最后点“测试公式”,通过后按右上角的“确定”,即可完成。 3.按照调用BBI多空指标的方式,把此公式调用出来就可以了。 若还有不明处再问,祝顺利!

用BBI指标炒期货:我来告诉你期货高手是怎么判断趋势的

到底什么是趋势?树立正确判断趋势价值观

我们每个人对趋势的理解其实都是不同的,所以你要问期货高手怎么判断趋势,那些高手可能会告诉你非常多不同的看法,所以你根本不需要知道那些期货高手的判断方式。那道氏理论哪里来的?那指标哪里来的?波浪理论哪里来的?缠论哪里来的?都是那些期货高手自己想出来的!所以你才是趋势的界定者。

你为什么会想知道怎么判断趋势?根本原因是你想盈利!这也是为啥散户做期货死是必然的原因所在!因为个个都想着盈利!但是判断趋势并不能帮助你盈利,因为判断趋势的意义在意帮助你判断,在当前行情下,你是做多单还是做空单。它的本质是辅助你做单,并且是从客观角度去辅助你做单!哪怕你判断趋势方向是对的,它也未必最后会让你盈利。

介绍期货高手们2种主流的趋势判断方式

在期货交易中,真的通过基本面做交易的真心非常少,因为通过基本面的都是做大趋势的。假如一个短线交易者和你说是做基本面的,那一般也就不怎么可能盈利,甚至亏损。所以现在的期货高手判断趋势的方式主要还是2类。
第一类:指标类判断趋势

很多小白交易者常常不知道怎么判断趋势,或许一个原因就是指标太多,导致大家蒙圈了。虽然指标有一个滞后性,但是不得不说,它是一个交易利器!他可以从客观角度纠正你对趋势的主观看法。



比如你单看一个k线下跌的很厉害,可能会做一个空单,但是如果你看了指标,指标显示的是多头,那你的空单可能就不会止损了。

所以找到一个你喜欢的指标,然后了解这个指标是如何判断趋势的,就够了!并且如果你不是做指标共振的话,建议:只要选择一个指标就可以了!期货高手们常用判断趋势的指标有:布林轨、均线、MACD、BBI多空指标、KDJ、SAR止损点等。

第二类:技术型判断趋势

这类常常都是通过所谓的裸K来进行交易的,通过技术方式去判断行情的结构,比如头肩底、头肩顶、双重顶等技术形态来判断趋势,进行交易。这类需要对交易有一定把握,有一定的交易经验,不然还是很难入门的,因此在对交易还没完全了解前,还是应该以指标类作为首先依据来判断趋势。



在技术形态中,也错综复杂,在网上的一些教学也未必可以很好的帮助我们,因为毕竟在期货交易中能盈利的人太少太少了,难免有一些不太懂得交易者在网上胡编乱造,误导一些新手交易员,使其产生错误的技术形态分析,比如在《正确的头肩顶k线形态图解分析,你可能一直在犯错!》,就被很少交易者知道了解其中的道理,所以也就导致技术形态交易很难把控。所以如果你想尝试用技术形态交易,必须先对交易有一个深刻的认识,那么指标入门,技术形态进阶,就是你最好的选择。

用BBI指标炒期货:炒期货的人最后都变成什么样了?

今天说的有一些名望的期货人士,其中部分还是很牛、有影响力的期货人,大G哥带你来看看他们的结局,来思考,我们能悟出什么?值得深思!

上海战斗队的“糖王”---在08年时从3800重仓多糖一直到3279止损,亏得无事浑身冒出汗,见糖就怕,谈甜色变,誓不碰糖。一碰糖就要去马路上裸奔。悲惨吧,这都是期货害的。

和大爷---自称“玉米王中王”。901玉米从2040做满仓多,加5次保证金。一直做到1708止损,刚止损马上就反弹,气得卧床三日,从此玉米不敢做多,呆呆的看着玉米天天涨升。又一个国家一级人才就这样被期货整傻了。

吴发发---号称"期货基本面的特级大师".走遍大江南北,从大豆到小麦,从玉米到棉花,从伧铜到上锌,说得头头是道,摸得清清楚楚,然而基本面研究再透也没有用,因为有时市场是非理性的,在08年初的时候他分析基本面时认为豆油过份上涨了,便重仓以10036做空一直空到13800止损,输得连队裤衩都不留,现流浪他乡,杳无音信.而后2008年3月份开始,豆油一路暴跌,最低下跌到5900附近。

长线是金---和讯第一个孔乙已式的人物(有小说为证),在位时狂叫------我只要一手玉米,就可拥有整个世界,在08年7月份从玉米05合约的最高价1980重仓(就一手)做多,中间用自己的工资加了13次保证金,一直多到08年12月份的1470止损,后眼睁睁的看着玉米越涨越高,实盘没钱,只有嘴盘做多,现在连嘴盘也无力叫了,悲者长金,痛者长金。

五万变千万---真正的期货怪才,做铜娄创佳绩,日赢五万,家常便饭,夺金目标----五万一年做到千万,狂称自已从闪电图上探索到期货赢利真蒂,于是天天满仓进出,日均发贴50次以上,导至整个和讯红眼病爆发,但终因败在资金管理上,后来在铜的大起大落中,小五满仓操作上下来回吃巴撑暴了,从此再也没他的消息了。

多空俊秀---曾自称“我做多的品种,这品种只能涨”。此言何等的嚣张,不过以他在期市混十几年来看的确有点本事。07年底的那一场轰轰烈烈的大豆涨势他也多进去了,太容易用得来的大财使他飘飘然,在08年3月14号,他认为大豆回调到位了,便以4500的高价重仓追多,之后四个连续的爆跌,使这位期货王子十几年的心血毁于一旦。从此这个期货牛人就慢慢转型炒股去了,现在仍是以炒股为主。

在人间---虽不是元老级国宝,但和讯一贴“我完全不懂很多人为什么会亏钱”,在和讯家喻户晓。他最特别的就是研究了一套“幽灵操作法,”,一时间为他带来了丰厚的回报,所以他奇怪别人为啥会亏钱?。无限的自信给这位灵王带来了一失足成千古恨下场,在08年9月份时以21000的价格重仓做多天胶,一不小心两天留夜。来了两个大跌,但灵王自信还能大涨,后来的金融危机爆发便足足出现连续五天的跌停,把他打回人类原形,从此不碰期货。回到工薪人间去了。

期货神经质---期货界国宝元老,自称从上世纪90年代500元开始炒绿豆期货发家。一时家财万贯,从此相信一个消防队还不如自己一泡尿,后来沪铜大涨,“期货国宝”一路追杀。梦想创造第二次绿豆奇迹。06年6 月在沪铜84000的珠峰价上依然全仓做多。外出青岛旅游。一周后期货公司先后300个电话摧保证金。此时“期货国宝”倘在海滩椅上已起不来了,对着大海发呆的双眼已获非正常人的本色。贪心所害啊。后人戒之,后人戒之呀。

呵呵888---虽是老股新期,但对和讯之影响前无古人,后无来者。“以信念振憾并杀死对手”是三8人生的佑铭心。并扬言我喜欢的地方,就是捡钱的地方,奉洋人大师巴非特,索罗斯为教父,相信三十八年的大牛将开始,在农品玉米,大豆,小麦,棉花,白糖天价之上极力长线做多。忽悠了众多的新手,亏暴了一大批跟随者,使整个和讯怨声连天,血醒遍地。活活的被群小散骂得再也不见人影。

老程---安徽亳州人,入市时也是几十万,两个多月赔完后成为经纪人,为把女房东开发成客户,采用了先用女房东发展暧昧关系,后拉其当客户的办法,女房东投了5万元,后来他也赔光了。前前后后十几个客户都是女的,他真有这方面的本事!后来老程离开期市,去年我在网上碰到他时他说在拉三轮车。

做期货若烹小鲜---期货烹饪王。上世纪未上海金茂大厦一级厨师。后来接触期货,认为炒小菜不如炒期货。就拿了当月工资杀入期市。以他调油,盐,桨,醋之水平,小心翼翼的出入滚打,雪球越滚越大。随之而来的是胆大心高,贪心一发不可收拾,好在“烹王”为人不错,苍天照应,长、中、短线出击,时时收获非浅。直接导之把调油,盐,桨,醋的小心炒法忘情的一一干二净。在大豆和白糖上一个劲地长线做多,跌了加多仓,再跌再加仓,眼巴巴看着大把大把的人民币交进期交所而坚不止损。到现在连进入期货时的一个月工资也花为灰尽,万籁俱寂,梦想终究归于现实。金茂大厦重现了一位一级炒手---炒菜的高手。

孟浩然---听名字你就知道,这人具有诗人般气质,但实际上只是个中专毕业,是一家速冻食品厂文员。他是被好友拉来期市,听了两堂课就上瘾了,投入5万元,委托一个经纪人给他做,那个经纪人给他赔了4000多元,他十分生气大骂经纪人无能,于是辞掉工作自己亲自做,他对RSI指标情有独钟,他最得意时一天挣过7000元,他全身心投入,他最爱炒短线,自称短线侠客,资金忽大忽小,但总体是不断缩水的。他暴过两次仓,第三次他投入最多是10万元,全是亲戚朋友处借来的,他在我们当中最有名的名言是:"这个市场不能没有我"!但是,当他又快没钱"醒悟"地告诉我们:"期货不能炒短线"!他是怀着恋恋不舍的心情离开期市的。

云从龙---从18500开始空棉,一直空到30000时才抗不住砍掉,亏完了全部的现金,中间还卖了一套房子以追加保证金,期货梦也从此结束了。

从上面这些人的结局中,我们自然容易悟出几个道理:

第一,不能逆势操作,在火火的牛市中,或者在熊熊的熊市中,凭借着自认为的见顶或见底,那是寻死的,就像2014年以来的铁矿石、橡胶、螺纹等品种,跌跌不休,逆势就是寻死。必须等到弓箭之末,等到势消耗殆尽,出现转势,方可做。

第二,不止损,逆势不可怕,可怕的是逆势不止损,在牛市或熊市中抄底摸高,死不认错,或者亏红了眼,干脆做起了鸵鸟,则就是等死。

第三,重仓。对于期货而言,由于杠杆效用,时机很重要,重仓的话,上下个10%,就基本上爆仓了,而上下10%是太正常不过了,所以等到市场按照你的预期行走的时候,你已经死掉了。所以对于选择时机能力不行的人而言,轻仓反而是一条路。

第四,期货操作手认为,其实最重要的是谦虚,有敬畏之心,敬畏市场,保持低调、谦卑的心态,不可过于张扬。上面的这些人之所以死亡,无一不是高大、自负,赚了大钱,沾沾自喜,自以为已手握天下,顺我者昌、逆我者亡,结局就是他们自己亡。

之所以能在期货中生存了十多年,当然除了努力之外,还有,就是一直保持着一颗敬畏之心,时刻如履薄冰,战战兢兢,无论是打了大胜仗,赚了多大的钱,心理面一直保持着敬畏。

当你有了这颗心态之后,你就会发现,你所遇到的许多交易问题,比如重仓、频繁交易、不止损,还有不努力、赌博,等等,都会自然消失。

关于大G哥我的投资之路更加曲折与刺激,我把这些当年经历手写成册,有很多价值性材料,这也是我进步这么快的原因之一,如有需要关注公众号 万投圈 验证信息 知乎100 即可领取,希望帮到更多的人。有需要的一起交流沟通学习!

用BBI指标炒期货:新手如何炒期货?日内超短线用什么看盘分析指标看什么软件好?再生线看盘分析软件——高频交易首选

作为一个刚开始投资期货的投资者,如何才能快速在这个市场上成为长期稳定盈利的高手呢?本文将以实战形式向大家分享一下ZhiTim软件旗下的再生线看盘分析软件(准确率高达80%的精准预测期货等价格涨跌的方法(支持一分钟图超短线交易),助大家快速学会炒期货建仓轻松稳健赚大钱的秘诀。

现在先看一下软件截图



? 由上图可见,再生线分析系统,有一根红线和一根绿线,在红绿线分系统的基础上增加2条黄线,上方的叫上轨,下方的叫下轨。此外,还增加了一条蓝线,这根线叫牛熊线。

当红线在绿线上方的时候,中线趋势走好,股价总体上涨。此时红绿线对于股价起支撑作用,每当股价从上至下回踩到红绿线附近都会受到支撑而反弹。

相反,当红线在绿线下方的时候,中线趋势走弱,股价总体下跌。此时,红绿线对于股价起压力作用,每当股价从下至上反弹至红绿线附近都会受阻下跌。

最傻瓜式却能帮大家一买就涨的神准指标红绿线的具体用法如下:

红线在绿线之上,在没有有效跌破绿线的前提下,回调到红线和绿线区间买入(做多);



红线在绿线之下,在没有有效上破绿线的前提下,反弹到红线和绿线区间卖出(做空)。?

如果红线在绿线之上,却收在绿线之下,则要慎防破位下跌的风险,但回调到重要支撑附近止跌,可考虑短线买入(做多);?

如果红线在绿线之下,却收在绿线之上,则要慎防向上突破的可能,但回调到重要压力附近,可考虑短线卖出(做空)。

至于牛熊线有什么用呢?

只要股价在上行的蓝色牛熊线之上,意味着牛市来临,靠近牛熊线附近就可以买入。

相反,当股价跌破牛熊线,就意味着熊市可能启动,逢高都可以卖出。至于能做空的,反弹到牛熊线附近承压受阻就可以做空。

现在再跟大家讲讲那2根黄线的用法。

如果在下方黄色下轨之下时,就可能会加速下跌,万一跌到下轨附近受支撑止跌或者跌破下轨后重新收在下轨之上,此时就可能反弹。如果下轨拐头向上,回调到下轨附近就可以考虑少量逢低买入,万一不幸再次跌破下轨,就要注意止损割肉了。

相反,如果在上轨之上时,就可能会加速上涨,万一反弹到上轨附近承压受阻或者上破上轨后重新收在上轨之下,此时就可能回调。如果上轨拐头向下,反弹到上轨附近就可以考虑少量逢高卖出,万一再次上破上轨,就可能会加速上涨,激进者可考虑追涨。

RabbitMQ原理、集群、基本操作及常见故障处理

本次学习主要针对运维人员,和对rabbitmq不熟悉的开发人员。通过本次学习你将掌握rabbitmq 的基本原理、集群、基本运维操作、常见故障处理。

1、原理与概念

简介

AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。

AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、Action、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

解决的问题

RabbitMQ就是当前最主流的消息中间件之一。

展开剩余96%
  • 两个(多个)系统间需要通过定时任务来同步某些数据
  • 异构系统的不同进程间相互调用、通讯的问题

Queue

Queue(队列)是RabbitMQ的内部对象,用于存储消息,用下图表示。

RabbitMQ中的消息都只能存储在Queue中,生产者(下图中的P)生产消息并最终投递到Queue中,消费者(下图中的C)可以从Queue中获取消息并消费。

多个消费者可以订阅同一个Queue,这时Queue中的消息会被平均分摊给多个消费者进行处理,而不是每个消费者都收到所有的消息并处理。

技术术语

  • Broker:简单来说就是消息队列服务器实体。
  • producer:消息生产者,就是投递消息的程序。
  • consumer:消息消费者,就是接受消息的程序。
  • vhost:虚拟主机,一个broker里可以开设多个vhost,用作权限分离,把不同的系统使用的rabbitmq区分开,共用一个消息队列服务器,但看上去就像各自在用不用的rabbitmq服务器一样。
  • Connection:一个网络连接,比如TCP/IP套接字连接。
  • channel:消息通道,是建立在真实的TCP连接内的虚拟连接(是我们与RabbitMQ打交道的最重要的一个接口)。仅仅创建了客户端到Broker之间的连接后,客户端还是不能发送消息的,需要为每一个Connection创建Channel,AMQP协议规定只有通过Channel才能执行AMQP的命令。AMQP的命令都是通过信道发送出去的(我们大部分的业务操作是在Channel这个接口中完成的,包括定义Queue、定义Exchange、绑定Queue与Exchange、发布消息等。)。每条信道都会被指派一个唯一ID。在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务,理论上无限制,减少TCP创建和销毁的开销,实现共用TCP的效果。之所以需要Channel,是因为TCP连接的建立和释放都是十分昂贵的,如果一个客户端每一个线程都需要与Broker交互,如果每一个线程都建立一个TCP连接,暂且不考虑TCP连接是否浪费,就算操作系统也无法承受每秒建立如此多的TCP连接。注1:一个生产者或一个消费者与MQ服务器之间只有一条TCP连接 注2:RabbitMQ建议客户端线程之间不要共用Channel,至少要保证共用Channel的线程发送消息必须是串行的,但是建议尽量共用Connection。
  • Exchange:消息交换机,生产者不是直接将消息投递到Queue中的,实际上是生产者将消息发送到Exchange(交换器,下图中的X),由Exchange将消息路由到一个或多个Queue中(或者丢弃)。

  • Exchange Types RabbitMQ常用的Exchange Type有fanout、direct、topic、headers这四种(AMQP规范里还提到两种Exchange Type,分别为system与自定义,这里不予以描述),之后会分别进行介绍。
  • Queue:消息队列载体,每个消息都会被投入到一个或多个队列。
  • Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来,这样RabbitMQ就知道如何正确地将消息路由到指定的Queue了。

  • Routing Key:路由关键字,生产者在将消息发送给Exchange的时候,一般会指定一个routing key,来指定这个消息的路由规则,而这个routing key需要与Exchange Type及binding key联合使用才能最终生效。

  • 在Exchange Type与binding key固定的情况下(在正常使用时一般这些内容都是固定配置好的),我们的生产者就可以在发送消息给Exchange时,通过指定routing key来决定消息流向哪里。
  • Prefetch count 前面我们讲到如果有多个消费者同时订阅同一个Queue中的消息,Queue中的消息会被平摊给多个消费者。这时如果每个消息的处理时间不同,就有可能会导致某些消费者一直在忙,而另外一些消费者很快就处理完手头工作并一直空闲的情况。我们可以通过设置prefetchCount来限制Queue每次发送给每个消费者的消息数,比如我们设置prefetchCount=1,则Queue每次给每个消费者发送一条消息;消费者处理完这条消息后Queue会再给该消费者发送一条消息。

消息队列的使用过程

在AMQP模型中,Exchange是接受生产者消息并将消息路由到消息队列的关键组件。ExchangeType和Binding决定了消息的路由规则。所以生产者想要发送消息,首先必须要声明一个Exchange和该Exchange对应的Binding。

在Rabbit MQ中,声明一个Exchange需要三个参数:ExchangeName,ExchangeType和Durable。ExchangeName是该Exchange的名字,该属性在创建Binding和生产者通过publish推送消息时需要指定。ExchangeType,指Exchange的类型,在RabbitMQ中,有三种类型的Exchange:direct ,fanout和topic,不同的Exchange会表现出不同路由行为。Durable是该Exchange的持久化属性,这个会在消息持久化章节讨论。

声明一个Binding需要提供一个QueueName,ExchangeName和BindingKey。

下面是消息发送的过程

  1. 建立连接Connection。由producer和consumer创建连接,连接到broker的物理节点上。
  2. 建立消息Channel。Channel是建立在Connection之上的,一个Connection可以建立多个Channel。producer连接Virtual Host 建立Channel,Consumer连接到相应的queue上建立Channel。
  3. 发送消息。由Producer发送消息到Broker中的Exchange中。
  4. 路由转发。生产者Producer在发送消息时,都需要指定一个RoutingKey和Exchange,Exchange收到消息后可以看到消息中指定的RoutingKey,再根据当前Exchange的ExchangeType,按一定的规则将消息转发到相应的queue中去。
  5. 消息接收。Consumer会监听相应的queue,一旦queue中有可以消费的消息,queue就将消息发送给Consumer端。
  6. 消息确认。当Consumer完成某一条消息的处理之后,需要发送一条ACK消息给对应的Queue。Queue收到ACK信息后,才会认为消息处理成功,并将消息从Queue中移除;如果在对应的Channel断开后,Queue没有收到这条消息的ACK信息,该消息将被发送给另外的Channel。至此一个消息的发送接收流程走完了。消息的确认机制提高了通信的可靠性。

exchange 与 Queue 的路由机制

  • exchange 将消息发送到哪一个queue是由exchange type 和bing 规则决定的,目前常用的有3种exchange,Direct exchange, Fanout exchange, Topic exchange 。Direct exchange 直接转发路由,其实现原理是通过消息中的routkey,与queue 中的routkey 进行比对,若二者匹配,则将消息发送到这个消息队列。通常使用这个。

  • 以上图的配置为例,我们以routingKey=”error”发送消息到Exchange,则消息会路由到Queue1(amqp.gen-S9b…,这是由RabbitMQ自动生成的Queue名称)和Queue2(amqp.gen-Agl…);如果我们以routingKey=”info”或routingKey=”warning”来发送消息,则消息只会路由到Queue2。如果我们以其他routingKey发送消息,则消息不会路由到这两个Queue中。
  • Fanout exchange 复制分发路由,该路由不需要routkey,当exchange收到消息后,将消息复制多份转发给与自己绑定的消息队列。

  • 上图中,生产者(P)发送到Exchange(X)的所有消息都会路由到图中的两个Queue,并最终被两个消费者(C1与C2)消费。topic exchange 通配路由,是direct exchange的通配符模式,消息中的routkey可以写成通配的模式,exchange支持“#”和“*” 的通配。收到消息后,将消息转发给所有符合匹配表达式的queue。

  • 以上图中的配置为例,routingKey=”quick.orange.rabbit”的消息会同时路由到Q1与Q2,routingKey=”lazy.orange.fox”的消息会路由到Q1,routingKey=”lazy.brown.fox”的消息会路由到Q2,routingKey=”lazy.pink.rabbit”的消息会路由到Q2(只会投递给Q2一次,虽然这个routingKey与Q2的两个bindingKey都匹配);routingKey=”quick.brown.fox”、routingKey=”orange”、routingKey=”quick.orange.male.rabbit”的消息将会被丢弃,因为它们没有匹配任何bindingKey。

需要注意的一点只有queue具有 保持消息的功能,exchange不能保存消息。

  • headers headers类型的Exchange不依赖于routing key与binding key的匹配规则来路由消息,而是根据发送的消息内容中的headers属性进行匹配。在绑定Queue与Exchange时指定一组键值对;当消息发送到Exchange时,RabbitMQ会取到该消息的headers(也是一个键值对的形式),对比其中的键值对是否完全匹配Queue与Exchange绑定时指定的键值对;如果完全匹配则消息会路由到该Queue,否则不会路由到该Queue。该类型的Exchange没有用到过(不过也应该很有用武之地),所以不做介绍。

durability 持久化与非持久化队列

  1. 如何识别?如上图,在Features字段里有一个D,就是持久化队列,英文durable(持久的)
  2. 持久化队列和非持久化队列的区别是什么?持久化队列会被保存在磁盘中,固定并持久的存储,当Rabbit服务重启后,该队列会保持原来的状态在RabbitMQ中被管理,而非持久化队列不会被保存在磁盘中,Rabbit服务重启后队列就会消失。
  3. 如何选择?如果需要队列的完整性,数据在队列中的保存是必须不允许丢失的,那么可以使用持久化。而当需要获取的信息是实时的,或者是随机的信息,不需要信息的精确性或完整性,但是追求获取性能,可以选择非持久化队列。

2、分布式集群架构和高可用性

设计集群的目的

  • 允许消费者和生产者在RabbitMQ节点崩溃的情况下继续运行
  • 通过增加更多的节点来扩展消息通信的吞吐量

集群配置方式

RabbitMQ可以通过三种方法来部署分布式集群系统,分别是:cluster,federation,shovel

  • cluster:
  1. 不支持跨网段,用于同一个网段内的局域网
  2. 可以随意的动态增加或者减少
  3. 节点之间需要运行相同版本的RabbitMQ和Erlang
  • federation:应用于广域网,允许单台服务器上的交换机或队列接收发布到另一台服务器上交换机或队列的消息,可以是单独机器或集群。federation队列类似于单向点对点连接,消息会在联盟队列之间转发任意次,直到被消费者接受。通常使用federation来连接internet上的中间服务器,用作订阅分发消息或工作队列。
  • shovel:连接方式与federation的连接方式类似,但它工作在更低层次。可以应用于广域网

RabbitMQ cluster 集群同步原理

上面图中采用三个节点组成了一个RabbitMQ的集群,Exchange A的元数据信息在所有节点上是一致的,而Queue(存放消息的队列)的完整数据则只会存在于它所创建的那个节点上。,其他节点只知道这个queue的metadata信息和一个指向queue的owner node的指针。RabbitMQ集群元数据的同步

RabbitMQ集群会始终同步四种类型的内部元数据(类似索引):

  1. 队列元数据:队列名称和它的属性;
  2. 交换器元数据:交换器名称、类型和属性;
  3. 绑定元数据:一张简单的表格展示了如何将消息路由到队列;
  4. vhost元数据:为vhost内的队列、交换器和绑定提供命名空间和安全属性;因此,当用户访问其中任何一个RabbitMQ节点时,通过rabbitmqctl查询到的queue/user/exchange/vhost等信息都是相同的。

为何RabbitMQ集群仅采用元数据同步的方式?

一,存储空间,如果每个集群节点都拥有所有Queue的完全数据拷贝,那么每个节点的存储空间会非常大,集群的消息积压能力会非常弱(无法通过集群节点的扩容提高消息积压能力);

二,性能,消息的发布者需要将消息复制到每一个集群节点,对于持久化消息,网络和磁盘同步复制的开销都会明显增加。

RabbitMQ cluster 集群的两种模式

  1. 普通模式:默认的集群模式。
  2. 镜像模式:把需要的队列做成镜像队列,存在于多个节点,属于RabbitMQ的HA方案

普通模式当消息进入A节点的Queue中后,consumer从B节点拉取时,RabbitMQ会临时在A、B间进行消息传输,把A中的消息实体取出并经过B发送给consumer,所以consumer应平均连接每一个节点,从中取消息。该模式存在一个问题就是当A节点故障后,B节点无法取到A节点中还未消费的消息实体。如果做了队列持久化或消息持久化,那么得等A节点恢复,然后才可被消费,并且在A节点恢复之前其它节点不能再创建A节点已经创建过的持久队列;如果没有持久化的话,消息就会失丢。这种模式更适合非持久化队列,只有该队列是非持久的,客户端才能重新连接到集群里的其他节点,并重新创建队列。假如该队列是持久化的,那么唯一办法是将故障节点恢复起来。为什么RabbitMQ不将队列复制到集群里每个节点呢?这与它的集群的设计本意相冲突,集群的设计目的就是增加更多节点时,能线性的增加性能(CPU、内存)和容量(内存、磁盘)。当然RabbitMQ新版本集群也支持队列复制(有个选项可以配置)。比如在有五个节点的集群里,可以指定某个队列的内容在2个节点上进行存储,从而在性能与高可用性之间取得一个平衡(应该就是指镜像模式)。

镜像模式其实质和普通模式不同之处在于,消息实体会主动在镜像节点间同步,而不是在consumer取数据时临时拉取。该模式带来的副作用也很明显,除了降低系统性能外,如果镜像队列数量过多,加之大量的消息进入,集群内部的网络带宽将会被这种同步通讯大大消耗掉。所以在对可靠性要求较高的场合中适用.

节点类型

  • RAM node:内存节点将所有的队列、交换机、绑定、用户、权限和vhost的元数据定义存储在内存中,好处是可以使得像交换机和队列声明等操作更加的快速。
  • Disk node:将元数据存储在磁盘中,单节点系统只允许磁盘类型的节点,防止重启RabbitMQ的时候,丢失系统的配置信息。

如果是内存结点这里就显示为RAM注意

  • RabbitMQ要求在集群中至少有一个磁盘节点,所有其他节点可以是内存节点,当节点加入或者离开集群时,必须要将该变更通知到至少一个磁盘节点。
  • 如果集群中唯一的一个磁盘节点崩溃的话,集群仍然可以保持运行,但是无法进行其他操作(包括创建队列、交换器、绑定,添加用户、更改权限、添加和删除集群结点),直到节点恢复。
  • 解决方案:设置两个磁盘节点,至少有一个是可用的,可以保存元数据的更改。

Erlang Cookie

Erlang Cookie是保证不同节点可以相互通信的密钥,要保证集群中的不同节点相互通信必须共享相同的Erlang Cookie。具体的目录存放在/var/lib/rabbitmq/.erlang.cookie。

3、基本操作

rabbitmq集群必要条件

绑定实体ip,即ifconfig所能查询到的绑定到网卡上的ip,以下是绑定方法

#编辑配置路径 /etc/rabbitmq/rabbitmq-env.conf

NODE_IP_ADDRESS=172.16.136.133

复制代码

配置域名映射到实体ip

#配置文件1所在路径 /etc/rabbitmq/rabbitmq.config (如果是集群,每台机器都需要修改这个绑定本机实体ip)

#其中rabbit@master是创建集群时所配置的参数,@后面的参数为主机名,示例中为master

[

{rabbit, [

{cluster_nodes, {[ 'rabbit@master'], disc}},

{cluster_partition_handling, ignore},

{default_user, << "guest">>},

{default_pass, << "guest">>},

{tcp_listen_options, [binary,

{packet, raw},

{reuseaddr, true},

{backlog, 128},

{nodelay, true},

{exit_on_close, false},

{keepalive, true}]}

]},

{kernel, [

{inet_dist_listen_max, 44001},

{inet_dist_listen_min, 44001}

]}

].

复制代码

#配置文件2 所在路径 /etc/hosts (如果是集群,每台机器都需要修改这个绑定本机实体ip,而且hosts文件的映射不得重复,如果重复linux系统为以最下面一条记录为准)

172.16.136.133 master

172.16.136.134 venus

172.16.136.135 venus2

启动停止

停止

#机器A

service rabbitmq-server stop

epmd -kill

#机器B

service rabbitmq-server stop

epmd -kill

#机器C

service rabbitmq-server stop

epmd -kill

启动方式1

#机器A

service rabbitmq-server start

#机器B

service rabbitmq-server start

#机器C

service rabbitmq-server start

启动方式2

rabbitmq-server -detached

集群重启顺序

集群重启的顺序是固定的,并且是相反的。如下所述:

启动顺序:磁盘节点 => 内存节点 关闭顺序:内存节点 => 磁盘节点 最后关闭必须是磁盘节点,不然可能造成集群启动失败、数据丢失等异常情况。

重建集群

注1:此处的mq集群重建是比较快速和有效的方法,面向的是初次安装或者可以接受mq中所存有的数据丢失的情况下,必须先有mq的.json后缀的配置文件或者有把握写入集群中exchange、queue等配置。

注1:此处的mq集群重建是比较快速和有效的方法,面向的是初次安装或者可以接受mq中所存有的数据丢失的情况下,必须先有mq的.json后缀的配置文件或者有把握写入集群中exchange、queue等配置。

按顺序停止所有机器中的rabbitmq

#机器A

service rabbitmq-server stop

epmd - kill

#机器B

service rabbitmq-server stop

epmd - kill

#机器C

service rabbitmq-server stop

epmd - kill

移除rabbitmq配置记录与存储文件

#位于 / var/lib/rabbitmq/mensia

mv / var/lib/rabbitmq/mensia / var/lib/rabbitmq/mensia.bak

按顺序启动所有机器中的rabbitmq

#机器C

service rabbitmq-server start

#机器B

service rabbitmq-server start

#机器A

service rabbitmq-server start

停止被加入集群节点app

比如A、B、C三台机器,将B和C加入到A中去,需要执行以下命令

#机器B

rabbitmqctl stop_app

#机器C

rabbitmqctl stop_app

建立集群

注意此处master为唯一没有执行rabbitmqctl stop_app的机器

注意此处master为唯一没有执行rabbitmqctl stop_app的机器

#机器B

rabbitmqctl join_cluster rabbit@master

#机器C

rabbitmqctl join_cluster rabbit@master

启动集群

#机器B

rabbitmqctl start_app

#机器C

rabbitmqctl start_app

检查集群状态

在任意一台机器上执行rabbitmqctl cluster_status命令即可检查,输出包含集群中的节点与运行中的节点,兼以主机名标志

添加集群配置

创建用户

例子中创建了两个用户 添加用户add_user,设置角色set_user_tags,添加rabbitmq虚拟主机add_vhost,设置访问权限set_permissions,以下是详细用法

# 创建第一个用户

/usr/sbin/rabbitmqctl add_user 用户名 密码

/usr/sbin/rabbitmqctl set_user_tags 用户名 administrator

/usr/sbin/rabbitmqctl set_permissions -p /用户名 ".*"".*"".*"

# 创建第二个用户

/usr/sbin/rabbitmqctl add_user 用户名2密码

/usr/sbin/rabbitmqctl set_user_tags 用户名2management

/usr/sbin/rabbitmqctl add_vhost sip_ext

/usr/sbin/rabbitmqctl set_permissions -p sip_ext 用户名2'.*''.*''.*'

备注:RabbitMQ 虚拟主机,RabbitMQ 通过虚拟主机(vhost)来分发消息。拥有自己独立的权限控制,不同的vhost之间是隔离的,单独的。

权限控制的基本单位:vhost。

用户只能访问与之绑定的vhost。

vhost是AMQP中唯一无法通过协议来创建的基元。只能通过rabbitmqctl工具来创建。

打开15672网页管理端,访问mq

/usr/sbin/rabbitmq-plugins enable rabbitmq_management 备注:如果发现命令执行完毕没有打开此服务,15672端口没有监听,则是由于没有重启mq导致的

在底部导入.json后缀的配置文件即可

http://localhost:4000/first-blog/rabbitmq.jpg

如果覆盖了用户需要使用以下命令修改mq用户密码 /usr/sbin/rabbitmqctl change_password 用户名 密码

修改节点类型

rabbitmqctlstop_app

rabbitmqctl change_cluster_node_type dist

rabbitmqctl change_cluster_node_type ram

rabbitmqctl start_app

常用命令

4、常见故障

集群状态异常

  1. rabbitmqctl cluster_status检查集群健康状态,不正常节点重新加入集群
  2. 分析是否节点挂掉,手动启动节点。
  3. 保证网络连通正常

队列阻塞、数据堆积

  1. 保证网络连通正常
  2. 保证消费者正常消费,消费速度大于生产速度
  3. 保证服务器TCP连接限制合理

脑裂

  1. 按正确顺序重启集群
  2. 保证网络连通正常
  3. 保证磁盘空间、cpu、内存足够

原文:https://www.toutiao.com/a6719773033159983624/

猜您喜欢

更多与用BBI指标炒期货相关文章