RocketMQ第五讲

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RocketMQ第五讲相关的知识,希望对你有一定的参考价值。

参考技术A broker是RocketMQ的核心,核心工作就是接收生成这的消息,进行存储。同时,收到消费者的请求后,从磁盘读取内容,把结果返回给消费者。

消息主体以及元数据的存储主体,存储Producer端写入的消息主体内容,消息内容不是定长的。单个文件大小默认1G ,文件名长度为20位,左边补零,剩余为起始偏移量,比如00000000000000000000代表了第一个文件,起始偏移量为0,文件大小为1G=1073741824;当第一个文件写满了,第二个文件为00000000001073741824,起始偏移量为1073741824,以此类推。消息主要是顺序写入日志文件,当文件满了,写入下一个文件;

CommitLog文件中保存了消息的全量内容。不同的Topic的消息,在CommitLog都是顺序存放的。就是来一个消息,不管Topic是什么,直接追加的CommitLog中。

broker启动了一个专门的线程来构建索引,把CommitLog中的消息,构建了两种类型的索引。ConsumerQueue和Index。正常消费的时候,是根据Topic来消费,会用到ConsumerQueue索引。

也可根据返回的offsetMsgId,解析出ip,端口和CommitLog中的物理消息偏移量,直接去CommitLog中取数据。

引入的目的主要是提高消息消费的性能,由于RocketMQ是基于主题topic的订阅模式,消息消费是针对主题进行的,如果要遍历commitlog文件中根据topic检索消息是非常低效的。Consumer即可根据ConsumeQueue来查找待消费的消息。

其中,ConsumeQueue(逻辑消费队列)作为消费消息的索引,保存了指定Topic下的队列消息在CommitLog中的起始物理偏移量offset,消息大小size和消息Tag的HashCode值。consumequeue文件可以看成是基于topic的commitlog索引文件,故consumequeue文件夹的组织方式如下:topic/queue/file三层组织结构,具体存储路径为:$HOME/store/consumequeue/topic/queueId/fileName。同样consumequeue文件采取定长设计,每一个条目共20个字节,分别为8字节的commitlog物理偏移量、4字节的消息长度、8字节tag hashcode,单个文件由30W个条目组成,可以像数组一样随机访问每一个条目,每个ConsumeQueue文件大小约5.72M。

IndexFile(索引文件)提供了一种可以通过key或时间区间来查询消息的方法。Index文件的存储位置是: fileName,文件名fileName是以创建时的时间戳命名的,固定的单个IndexFile文件大小约为400M,一个IndexFile可以保存 2000W个索引,IndexFile的底层存储设计为在文件系统中实现HashMap结构,故rocketmq的索引文件其底层实现为hash索引。

按照Message Key查询消息的时候,会用到这个索引文件。

IndexFile索引文件为用户提供通过“按照Message Key查询消息”的消息索引查询服务,IndexFile文件的存储位置是: fileName,文件名fileName是以创建时的时间戳命名的,文件大小是固定的,等于40+500W 4+2000W 20= 420000040个字节大小。如果消息的properties中设置了UNIQ_KEY这个属性,就用 topic + “#” + UNIQ_KEY的value作为 key 来做写入操作。如果消息设置了KEYS属性(多个KEY以空格分隔),也会用 topic + “#” + KEY 来做索引。

其中的索引数据包含了Key Hash/CommitLog Offset/Timestamp/NextIndex offset 这四个字段,一共20 Byte。NextIndex offset 即前面读出来的 slotValue,如果有 hash冲突,就可以用这个字段将所有冲突的索引用链表的方式串起来了。Timestamp记录的是消息storeTimestamp之间的差,并不是一个绝对的时间。整个Index File的结构如图,40 Byte 的Header用于保存一些总的统计信息,4 500W的 Slot Table并不保存真正的索引数据,而是保存每个槽位对应的单向链表的头。20 2000W 是真正的索引数据,即一个 Index File 可以保存 2000W个索引。

“按照Message Key查询消息”的方式,RocketMQ的具体做法是,主要通过Broker端的QueryMessageProcessor业务处理器来查询,读取消息的过程就是用topic和key找到IndexFile索引文件中的一条记录,根据其中的commitLog offset从CommitLog文件中读取消息的实体内容。

RocketMQ中有两个核心模块,remoting模块和store模块。remoting模块在NameServer,Produce,Consumer和Broker都用到。store只在Broker中用到,包含了存储文件操作的API,对消息实体的操作是通过DefaultMessageStore进行操作。

属性和方法很多,就不往这里放了。

文件存储实现类,包括多个内部类

· 对于文件夹下的一个文件

上面介绍了broker的核心业务流程和架构,关键接口和类,启动流程。最后介绍一下broker的线程模型,只有知道了线程模型,才能大概知道前面介绍的那些事如何协同工作的,对broker才能有一个立体的认识。

RocketMQ的RPC通信采用Netty组件作为底层通信库,同样也遵循了Reactor多线程模型,同时又在这之上做了一些扩展和优化。关于Reactor线程模型,可以看看我之前写的这篇文档: Reactor线程模型

上面的框图中可以大致了解RocketMQ中NettyRemotingServer的Reactor 多线程模型。一个 Reactor 主线程(eventLoopGroupBoss,即为上面的1)负责监听 TCP网络连接请求,建立好连接,创建SocketChannel,并注册到selector上。RocketMQ的源码中会自动根据OS的类型选择NIO和Epoll,也可以通过参数配置),然后监听真正的网络数据。拿到网络数据后,再丢给Worker线程池(eventLoopGroupSelector,即为上面的“N”,源码中默认设置为3),在真正执行业务逻辑之前需要进行SSL验证、编解码、空闲检查、网络连接管理,这些工作交给defaultEventExecutorGroup(即为上面的“M1”,源码中默认设置为8)去做。而处理业务操作放在业务线程池中执行,根据 RomotingCommand 的业务请求码code去processorTable这个本地缓存变量中找到对应的 processor,然后封装成task任务后,提交给对应的业务processor处理线程池来执行(sendMessageExecutor,以发送消息为例,即为上面的 “M2”)。

上面的图和这段画是从官方文档抄过来的,但是文字和图对应的不是很好,画的也不够详细,但是主要流程是这个样子。以后有时间了,我重新安装自己的理解,画一张更详细的图。

AsyncAppender-Worker-Thread-0:异步打印日志,logback使用,应该是守护线程

FileWatchService:

NettyEventExecutor:

NettyNIOBoss_:一个

NettyServerNioselector_:默认为三个

NSScheduledThread:定时任务线程

ServerHouseKeepingService:守护线程

ThreadDeathWatch-2-1:守护线程,Netty用,已经废弃

RemotingExecutorThread(1-8):工作线程池,没有共用NettyServerNIOSelector_,直接初始化8个线程

AsyncAppender-Worker-Thread-0:异步打印日志,logback使用,共九个:

RocketmqBrokerAppender_inner

RocketmqFilterAppender_inner

RocketmqProtectionAppender_inner

RocketmqRemotingAppender_inner

RocketmqRebalanceLockAppender_inner

RocketmqStoreAppender_inner

RocketmqStoreErrorAppender_inner

RocketmqWaterMarkAppender_inner

RocketmqTransactionAppender_inner

SendMessageThread_:remotingServer.registerProcessor(RequestCode.SEND_MESSAGE

PullMessageThread_:remotingServer.registerProcessor(RequestCode.PULL_MESSAGE

ProcessReplyMessageThread_:remotingServer.registerProcessor(RequestCode.SEND_REPLY_MESSAGE

QueryMessageThread_:remotingServer.registerProcessor(RequestCode.QUERY_MESSAGE

AdminBrokerThread_:remotingServer.registerDefaultProcessor

ClientManageThread_:remotingServer.registerProcessor(RequestCode.UNREGISTER_CLIENT

HeartbeatThread_:remotingServer.registerProcessor(RequestCode.HEART_BEAT

EndTransactionThread_:remotingServer.registerProcessor(RequestCode.END_TRANSACTION

ConsumerManageThread_:remotingServer.registerProcessor(RequestCode.GET_CONSUMER_LIST_BY_GROUP,RequestCode.UPDATE_CONSUMER_OFFSET,RequestCode.QUERY_CONSUMER_OFFSET

brokerOutApi_thread_:BrokerController.registerBrokerAll(true, false, true);

==================================================================

BrokerControllerScheduledThread:=>

BrokerController.this.getBrokerStats().record();

BrokerController.this.consumerOffsetManager.persist();

BrokerController.this.consumerFilterManager.persist();

BrokerController.this.protectBroker();

BrokerController.this.printWaterMark();

log.info("dispatch behind commit log bytes", BrokerController.this.getMessageStore().dispatchBehindBytes());

BrokerController.this.brokerOuterAPI.fetchNameServerAddr();

BrokerController.this.printMasterAndSlaveDiff();

BrokerController.this.registerBrokerAll(true, false, brokerConfig.isForceRegister());

BrokerFastFailureScheduledThread:=>

FilterServerManagerScheduledThread:=>

FilterServerManager.this.createFilterServer();

ClientHousekeepingScheduledThread:=>

ClientHousekeepingService.this.scanExceptionChannel();

PullRequestHoldService

FileWatchService

AllocateMappedFileService

AcceptSocketService

BrokerStatsThread1

《上古天真论》第五讲文字版

上古天真论篇第五讲

主讲:徐文兵  主持:梁  冬

播出时间:2008-12-27  23:00—24:00

经文是以嗜欲不能劳其目,淫邪不能惑其心,愚智贤不肖,不惧于物,故合于道。所以能年皆度百岁而动作不衰者,以其德全不危也。

梁冬:是的重新发现中医太美。大家好!欢迎收听今天晚上国学堂之《黄帝内经》之《上古天真论》之第二段、第三段。依然在我们对面的是我所崇敬的专门研究《黄帝内经》的,而且有趣地专门能把《黄帝内经》讲清楚的厚朴中医学堂堂主徐文兵老师,徐老师好!徐文兵:梁冬好!听众朋友们大家好!梁冬:在过去的一段时间里呢,我们几乎每个星期讲了《上古天真论》的二三十个字,记得在上一周的时候呢,我们讲到《上古天真论》第二段讲的"任其服,乐其俗,高下不相慕,其民故曰朴。"话说呢,就是真正舒服的人呢,是美其食、乐其俗的。此话怎讲呢?徐老师稍微给大家复习一下。  

徐文兵:呵呵,第一句就是养生达到一个理想状态叫美其食,吃东西要吃好了吃美了,然后呢穿着要穿得舒服,上次讲了服是内衣,为什么说是内衣呢,因为它是月字边,月是古代造字它是肉的简写,所以你像我们写肝啊肾啊胃啊它都带一个月字边。那个月不是月亮是肉,所以衣服的服呢它有个肉字边,就是贴着肉穿的那个衣服叫服,不贴肉的外边的叫衣,隔了一层了。

梁冬:对,所以像我们上次也提到过,像那个超人呐,把内衣穿在外面是典型的不任其服。

徐文兵:不服。

梁冬:不服。诶,那今天呢我们要讲的话题呢。"嗜欲不能劳其目,淫邪不能惑其心。"就是说一个人要保持健康呢,嗜欲是不能劳其目的,我想问徐老师了,什么叫做嗜欲不能劳其目呢?

徐文兵:嗯,这句话就是我们《上古天真论》第一段的一个总结的话,这句话的由头就是黄帝问于岐伯说余闻上古之人春秋皆度百岁,可现在的人呢不到五十岁就动作皆衰了,就是岐伯根据这句话,学生的这么一个问,引出了他的一大段的论述,最后的这句话是做为一个总结。我们看到呢黄帝他问岐伯只关注到了一个,一是寿命短,就是半百,另外呢,他看到了肉体的功能衰退,动作皆衰,可是在黄帝的老师——叫天师岐伯回答以后呢,他不仅回答了寿命的问题,就是说要提出概念叫尽其天年、一百二十岁,他还特别强调了一点,就说人要活得愉快愉悦,所以他提到了叫"各从其欲、皆得所愿。"也就是说他不仅关注到了生命的量的问题,他还关注到了生命的质,就是说你活了一百二十岁,如果你活得自己的欲望满足不了,自己的心愿实现不了。

梁冬:总是很压抑、很扭曲。

徐文兵:对呀,这样的话呢就会使人活到什么程度呢?就是痛不欲生,活着不如死掉,所以我们看到有些国家在统计他们国家的人均寿命的时候说,我们国家人均寿命都快八十岁了,活得很长,但是呢,同时另外一个统计结果说这个国家的自杀率也是全世界第一。

梁冬:您说的是日本吧?

徐文兵:我没提。呵呵。这两个数据结合起来一看呢,这个国家的人是世界上活得最长且最痛苦的国家,那这么活着又有什么意思呢?所以最后总结了一条,我们说要把人的心理享受也要关注到,所以呢除了吃得好喝得好,而且还要美其食、任其服、乐其俗,最后还要消除互相攀比造成的不平衡的嫉妒的这种心理,叫高下不相慕,其民故曰朴,我们要追求这种朴实、朴素、自然的生活。  

梁冬:嗯,这就是我们稍稍的对上一周话题的一个总结哈。广告片花……本字幕由“易健生活网”制作……

梁冬:继续回来,国学堂之重新发现中医太美。下面今天要讲的是“嗜欲不能劳其目”。

徐文兵:嗯,说完了这种我们讲的满足口腹之欲的享受和精神享受以后,黄帝的老师又在最后总结时候叮咛出了以下的这句话叫:"嗜欲不能劳其目,淫邪不能惑其心。"你看,他第一段讲的是欲,我上次讲了欲是我们生理的感观的享受,而那种后面得那个心,它指的是精神层面的享受,所以我们讲嗜欲就是说你去满足你的生理欲望的时候呢,也不要过份,特别要谈下这个欲字,《黄帝内经•上古天真论》我们讲到现在。它强调两个字,一是神,你看上面黄帝,生而神灵,然后精神内守,然后形以神聚,这些都谈到了一个神,另外一个常出现的字就是这个欲,所以我们今天再把这个欲重新认识它一下,也就是说很多人活得短命或者活得很痛苦,最根本的问题没有解决好,就是没有认真的对付自己这个欲,做为欲呢我们讲了,它不带心,它指的是我们感观的一个享受满足,渴了想喝,饥了想吃,还有就是男女这种性欲,也有的听众朋友给我们博客留言就说,这个“欲”,为什么你说这个性欲不动心呢?这个就是说,比如男性看到异性,多看一眼甚至有些生理反应,并不代表你就对她动情了,也并不代表你爱上她了。

梁冬:嗯。诶,男性和女性有区别吗?

徐文兵:都有。

梁冬:以前我们有种误解的,认为只有男人才是下半身思考的,其实女性只是被压抑而已。

徐文兵:女性也有,只不过她表达得比较含蓄。所以我们平常说的情和欲两个字,不一样。你对他对了欲不见得你对他对了情,所以欲是一种生理感观的这种满足,你看那个欲怎么写?一个谷一个欠,山谷挖下去的,欠呢需要填满填平的,它是渴望被充实满足的欲望。所以很多人考验一下自己的男朋友或者老公,到底是对自己有这种肉体的欲望还是真的对我动了情?她就处于这种困惑当中,很简单一个判别方法,也就是他们在有了这种XX活动以后,她那个男友或老公是倒头就呼呼大睡了,还是还跟她有一种缠绵的有这种说话或者有这种交流?如果他转身完了倒头就睡,意思是说他生理功能满足了,他这种欲就没了,这种欲望的满足和内心的那种需要是两个概念。我们说不要放纵它也不要压抑它,很多人压抑这种欲望的结果呢,就导致自己的心理出现一种变态,它不会被你压住,它会从另外一种渠道表现出来。

梁冬:比如。

徐文兵:比如就说我们吃饭,一个人被饿得好多天以后,出现什么情况?他会出现两种极端的反映,一个叫饥不择食,逮什么都吃,就是饿疯了。

梁冬:那个,好像甲方乙方里面就有这样的情况,是吧?

徐文兵:诶,对了,你看他们村,鸡犬全给吃了。

梁冬:黄鼠狼,变黄鼠狼了哈。

徐文兵:就是,当年我们在中缅战场上,那些将士们逃到延山,之后回国以后,最后都没有吃的,最后突然有了饭以后,好多人吃得就撑死了。为什么呢,就是原来这种欲望被压制以后出现一种变态反映。

梁冬:就是以前几年自然灾害的时候连观音土都吃嘛。

徐文兵:吃观音土。吃观音土它满足了一个什么呢?就是充饥,就把肚子填饱了填满了,饥和饱,但是呢你没有吃到你生理上需要的东西,结果你还是饿,我们看到有很多小孩子叫有异食癖,抠着墙土吃,挖上泥吃,还有的孩子抠自己的鼻涕妞吃。

梁冬:我就见过几个小朋友喜欢吃鼻屎的。

徐文兵:诶,对!这都是一种被压抑没被满足的欲望从另外一种变态的角度表现出来了。还有一种我们常见的被压制的性的欲望,它最后呢就会反射到一些其他的奇奇怪怪的事情上表现出来,有人有恋物癖,本来应该正常男女之间有这种欲望这是正常的,他被压抑以后呢结果就变态了,就是对女人没有感觉了,对人穿的衣服有感觉了,就开始疯狂的去偷人家内衣啊收藏别人的这种东西,最后对人没有兴趣,对东西有兴趣。恋物癖、恋兽癖,还有的人出现那种偷窥癖。

梁冬:这都是非常不健康的。

徐文兵:不健康,都是变态,那这种欲就是我们说的被过分压制以后出现的那种变态,这就叫什么?嗜欲。嗜是什么?过分地喜好,或者说是特殊的喜好。我们知道以前有这种说法,嗜烟、嗜酒,还有的人上升到一种更加变态的嗜血,只有杀人虐待别人有快感,还有一种古代有个故事叫嗜痂成癖,什么意思?这个人变态,他吃什么?就是身上有创化脓结了个痂,他把这个肉袼褙揭下来吃,他爱吃这个东西,所以这种被压制或者是被扭曲的欲望,以后就通过这种病态的行为或病态的心理表现出来。所以呢我们说嗜欲不能劳,这是一个意思,另外后面为什么要加个其目呢,就是说本来欲是不动心的,但是变成了一种特殊的喜好以后呢,就开始动心动神了。我们说眼睛是心灵的窗户。上次我们那个女青年眼迷离的那个说过,当一个人看到一样东西,特别喜欢上了,她会兴奋,瞳孔会散大,那会儿那个状态就叫出神。所以过分的放纵自己的欲望以后呢,就会眼睛过劳,然后呢出神,我们说养神怎么养?

梁冬:闭目养神。

徐文兵:闭目养神嘛。要出神呢?

梁冬:出神入化嘛。

徐文兵:眼巴巴直勾勾的盯着一个东西看个没完。

梁冬:哦,所以嗜欲不能劳其目的意思就是说不能把这个欲望纵太过之后呢,让你的这个神都从你的眼睛里跑掉了。

徐文兵:跑掉了,这句话对我们现代人有极其重大的现实意义,我看到现代人都是在做这个事,干什么?看电视,比看电视更糟的是打游戏、看电脑、上网,你看那个盯着电视屏幕那个人啊,就处于一种半疯的状态。

梁冬:出神状态。

徐文兵:出神状态。啊。

梁冬:所以就劳其目了。

徐文兵:劳其目之后就是伤其神,你看我们现在这种很多网络成瘾的这种孩子,哎呀,那真是家长真是太痛苦了,好不容易把一个孩子拉扯大了,然后跑整天泡在游戏机前游戏厅、网吧不回家,干嘛呢?打游戏。把孩子供上大学了,一看,各门功课全亮红灯,干嘛呢,学校边上那个网吧里。

梁冬:所以啊,据说呢象很多网络游戏公司他们在资本市场上,其实投资者给他们的PE值,什么叫PE值呢,就是给他们的估值都不是很高的。原因就在于很多投资者也认为不同的生意是有不同的伦理的。象这种做游戏的生意呀,他某种程度上是不太符合我们现实生活这种人类的伦理的,你看那个鼓励你打打杀杀,鼓励你打群架,鼓励你沉迷于此,这也是一个值得我们提起的话题。稍微休息一下,广告回来之后呢,和我们一起来聊一聊“淫邪不能惑其心”。

梁冬:刚在上一部分的时候呢,我们花了十几分钟时间只讲了一句话,“嗜欲不能劳其目”,说的意思呢就是说一个人不能够因为太过放纵自己的欲望,让自己眼勾勾的看着一个东西,让你的神出来之后呢劳其目,另外一句话,下面这段话就很有意思了,“淫邪不能惑其心”,何谓淫邪?为什么淫邪又不能惑其心了呢?  

徐文兵:这个,先讲一下这个淫,淫它本来的意思是过分的意思。

梁冬:嗯。淫雨霏霏。徐文兵:诶,对。那个岳阳楼记说"若夫淫雨霏霏,连月不开。"就是江南那种梅雨季节,下个没完、过分过多了,中医把这个过度的过多的这种外界气候的变化就叫做六淫。风啊,寒、暑、湿、燥、火。  

梁冬:所以风寒火时燥火并不是什么问题?是风太过寒太过才叫六淫,对不对?

徐文兵:对,不是说刮风了下雨了就会导致发病,它是一种相对,一个是外界的气候变化太剧烈,一个是你内身的抵抗能力太差,相对过了以后,你才会得病。后来呢,这个淫呢有了特殊的指,是专指这种性生活过度。梁冬:“淫邪不能惑其心”啊。徐文兵:啊,下一个字就要讲下惑,惑什么意思?  

梁冬:惑你看上面是个或字,下面是个心,四十不惑嘛,就是说,不会说也可以这样也可以那样。

徐文兵:对,没错,其实惑其心一句话解释,老百姓的大俗话叫挑花眼了。惑的意思是不确定,可以是这个可以是那个,就是没定、没定下来,我们讲孔子说四十不惑,就是讲四十岁以前他心不定,没定下来的自我认知,我是个什么人,我要做什么事,我天赋的使命是什么,我更适合做什么?或者也没定下来娶谁跟谁过一辈子,看这个女人也不错那个女人也不错,最后说娶哪个?

梁冬:谁娶我,我就跟谁。

徐文兵:呵呵。再挑挑吧,再看看吧,这叫惑。过了四十以后呢,孔圣人啊基本讲了四十不惑,我是个什么人,我能吃几碗干饭,我吃哪碗饭,我定下来了,然后呢我该找什么样的女人也定了,就说弱水三千我独取一瓢饮,别人我眼睛都不看一眼。

梁冬:主要身体也不支了嘛。

徐文兵:诶,对。也不见得是不支,身体不支了对谁都不行,但这种惑的反义词是定,我定下来了,尽管同样我有这种精神气血能量,但是我不是洒花露水了,我只钟情或定一个人了,这其实是一个人的身心健康到一定层次的一个表现,古代有句话叫泰山崩于后,麋鹿嬉于前,我不动心,啊。所有这些乱七八糟的引诱啊或者不确定的东西我都不会动心。

梁冬:泰山崩于后我知道。什么叫麋鹿嬉于前?

徐文兵:麋鹿嬉于前是那种特别漂亮的梅花鹿,在我面前欢蹦乱跳、打闹嬉戏,我对它都不带扫一眼,我不动心。所以我们经常说叫疑惑、诱惑,这都是让你产生不确定的这种结果的一种原因,疑呢,是不大相信或是相信它的负面,诱呢是一种吸引力,所以面对这些东西我都不动心我很坚定,这叫不惑。所以这种“淫邪不能惑其心”,是在欲的层次上谈到精神、心理的一种层次,就说这种过分的这种花样百出的东西,专指这种性方面的这种诱惑或是引诱,已经不足以让我动心了。 

梁冬:这是不是有一个前提?就是说在这个不动心之前,你还得见过不同的东西,这个话你才能够?你看释迦牟尼为什么能成佛啊,是吧?人家一出来就是王子。你看现在演艺界很多人为什么后来都归依呀,或者是有这种精神追求,肯定是之前太折腾了。  

徐文兵:放下屠刀,立地成佛。这个人没有拿起屠刀让他直接成佛他也成不了,我个人也认同您这个观点,说他一定是经历了很多事情,曾经沧海才难为水,经过见过达到定的人是真定,吃也没吃过,这个女朋友也没交过,最后说我对女人我没兴趣,那是他有问题。  

梁冬:那只有两种情况,一个是真的天生就没有这样的能力是吧?那个极少。另外一个就是吃不到葡萄说葡萄酸。

徐文兵:对,所以这种经历了欲,我们前面说到他的欲望后面说到这个心以后,经历见过以后达到一种大彻大悟大定以后,这个人呢就身心健康达到了一个更高的层次,所以这叫淫邪不能惑其心。有这种强迫症的人的表现呢,就是这个那个这个那个,反复的这么考虑,前思后想左思右想最后不确定,他在很多表现上都是这种惑,定不下来。这就是一种身心两方面都不健康的一个表现。

梁冬:这就是所谓的,是不是那种患得患失啊?徐文兵:患得患失啊、就是瞻前顾后、首鼠两端,这都是一种惑。梁冬:我以前以为这是属于某一种人才拥有的,后来经您这么一说呢,可能每一个人都有类似的。

徐文兵:有经历过这一阶段后跳出来活出来的人就达到了一种定。活不出来的人可能一辈子都还在那惑,别说四十了,可能他到八十了还在那惑。  

梁冬:嗯,所以今天我们该讲的《黄帝内经》啊,说:"嗜欲不能劳其目,淫邪不能惑其心。"说这个比较牛的一种人的状况,它描述了一种状况,后面还加了一句:叫"愚智贤不肖,不惧于物。"

徐文兵:嗯。这句话应该这么念,就是说愚、智、贤三种人,不肖、不惧于物。什么意思呢,就是说我们与生俱来每个人的素质都不一样。先说一下愚,我们以前学过一个愚公移山,就是说这个愚公要太行王屋二山,他要用他家人的努力给它移走。这个愚的意思是什么,我们听说一个成语叫向隅而泣,就是一个人偷偷地躲在墙角里,而且是背对着人面朝那个墙角在那儿哭。

梁冬:我在幼儿园中班的时候就干过这种事。

徐文兵:呵呵,向隅而泣,所以这个愚是什么呢?就是心思或者心情想法陷在一个角落里出不来,没出路,这叫愚。我们说这种人是想不通想不开钻牛角尖,这叫愚。智呢,我们以前介绍过,它是比较聪明比较通达的人,知道这些有形的物质的变化,比那个愚的人要开放通达一些,《黄帝内经》在后面章节里面也说过,就说当人的肾经和元气能够通达到我们的七窍或者九窍的时候,这人就叫智。我们说这个人聪明,所谓聪,是指耳朵听得很清楚,明是眼睛很明亮看得清楚,这叫智,聪明眼亮。所以在愚公移山里,愚公的对立面那个人叫智叟,是个聪明的老头,来劝他说你别挖这个山了,但是呢愚公就是一个著名的一根筋,他坚持两个观点,他说我的子子孙孙是无穷匮的,而山不加高,所以移这个山没问题。但你想没想过,愚公没考虑到几个问题,一个人会断子绝孙的,你怎么保证你就子子孙孙无穷溃?张仲景那么大的一个名医,家族因为一场伤寒十分之几的人都死掉。第二,我们都知道青藏高原喜马拉雅山都是在印度板块冲击下不断隆起的,你怎么保证山不加高?所以愚的人他就是这种一根筋思维。

梁冬:那是阿甘嘛,古代阿甘呢。

徐文兵:他这种人就是属于不撞南墙不回头,撞了南墙也不回头,就说这墙太硬我的头还不够硬啊,还要撞,这是愚的人。智的人就比较开通不钻牛角尖,知道其他路还可以走。贤的人呢就比这个智层次要高一点,就是我们讲的开了慧的人。就是说经常说有些人有智无慧,比如说他只能研究看得见摸得着的东西,这叫智。就好象现在一些科学家讨论中医似的,您拿证据拿实证来啊,没有实证我就认为你是假的,他没有这种高度的抽象的思维能力。开慧的人是有这种抽象思维能力的,就好象我们下棋,摸得着棋子看得见棋盘,咱们俩才能下。那个贤人开了慧的人怎么下棋?下盲棋,没有棋子没有棋盘我们就下,而且一步不差,更高级别那些大师一个人对几百个人下,一步不乱,这就叫贤人。所以他这列了愚人、智人、贤人,当然以后还会有三个,叫真智圣贤,有圣人、有智人、有真人,那就更开慧的人了啊,我们这不论,就大拨人来讲就分为这三种,但是不管我是愚人,不管我是智人,不管我是贤人,我这么养生,“嗜欲不能劳其目,淫邪不能惑其心”,我最后能达到一个什么状态?不肖、不惧于物。分开说,不肖于物,第二是不惧于物。梁冬:对。什么叫肖呢?刚才我们讲到,愚智贤,不肖,不惧于物。用了十几分钟才讲了三个字。又不得不稍微停顿一下。广告回来之后呢,我们继续来聊一聊什么叫“不肖、不惧一物”。诶,刚才我们讲到:“愚智贤,不肖、不惧一物”。愚智贤,这是三种不同境界的人啊,为什么不肖又不惧于物呢?不肖和不惧到底有什么不一样呢?请徐老师给我们一起来开解一下。徐文兵:嗯。这个肖呢,写的上面一个小,底下一个月亮的月,啊。肖的意思是相像,很像……

梁冬;惟妙惟肖嘛。

徐文兵:我们经常给人画一个肖像,就说画得这个像很像你梁冬。惟妙惟肖我们也经常用,比如说这个人形似,我们叫惟肖;神似,惟妙,妙不可言嘛。玄之又玄,众妙之门,那是惟妙,神似,形似叫肖。但是这个肖在这呢不当肖来解,它是那个通假字,它是那个不屑一顾那个屑。其实它的本意叫什么?不屑于物,不屑一顾。什么意思?对物质、物欲的那种追求不是很强烈,就是不会把它看得很重,这叫不肖于物。下面一个叫不惧于物。什么叫惧?   

梁冬:惧怕嘛。徐文兵:惧不是怕。梁冬:诶,惧又不是怕了哈?

徐文兵:有恐惧,有惊惧,也有惧怕,但是你不能说它就是怕,它就是恐,它就是惊。

梁冬:诶,惧和怕有什么区别?  

徐文兵:有区别,惧是这样啊,就是竖心旁,它肯定扰了你的神了,惧的上面的……繁体字啊,我们现在写简体字是一个具有的具,繁体字它不这么写。惧的繁体字是竖心旁,这面一个瞿秋白的瞿,上面两个目,底下一个麻雀的雀下面那个。它本意是就是那个你看鸟,观察鸟啊,它在那一停下来,它那个头在来回看,眼睛瞪得大大的,它那种状态叫惧。它是一种受到了一种刺激比方说惊啊,吓啊,恐以后表现它那种目瞪口呆,或者是双目圆睁的那个状态,叫惧,反正就是触动你了,让你又……我们又开始眼迷离了,又是眼睛瞪大那个状态,所谓惧是指这个状态。你受到惊喜可能会惧,你受到惊吓也可能会惧,你害怕了也可能惧。  

梁冬:你看那个超级女声宣布马上宣布结果之前,那女粉丝的样子,嘴张着,眼睛看着那个状况。  

徐文兵:所以惧是指受到刺激以后那种眼睛睁得大大的那个样子,然后加一个竖心旁就是触动你的心,就是个动心的感觉。我们额外再说一句,恐惧,我们经常说恐惧,恐和惧完全不一样,恐是什么意思呢?现在老说反恐,恐怖分子,恐的是心,上边一个巩,巩是什么意思啊?巩是拿绳子捆东西,以前特指拿那种牛皮绳叫韦……

梁冬:对,韦编三绝。

徐文兵:诶,韦编三绝,什么叫韦编三绝呢?就是以前的书都是竹简,竹简穿起来那个绳就是牛皮绳,叫韦。孔子读易经,来来回回地翻了看,之后把那个拴易经的那个牛皮绳都断了三回,所以把牛皮绳把东西捆起来叫巩,我们叫巩固。以前有少数民族他执行死刑的一个方式,就是先拿牛皮绳拿水浸湿了,然后勒在人脖子上,这牛皮绳干了以后就开始抽紧,然后活活把这人勒死。所以恐是啥感觉?  

徐文兵:恐就是你心呀,被那种好像一个绳子勒紧了,提溜起来那个状态。我们经常说看到一件事,我的心都提嗓子眼里了,或者有人感觉我这心里面,失恋了或者怎么了,心里面被人抓了一下,抽紧了那种感觉。还有人就是心梗发作有一种濒死感,突然一下就觉得自己要死了,不行了,那种状态都叫恐。  

梁冬:哦哟,太有学问了,徐老师你。  

徐文兵:所以今天我们讲的恐惧呢,惧是初级阶段。哇,眼睛瞪大了,受刺激了。那恐就更深了。  

梁冬:所以呢你刚才讲的就是说愚智贤,不肖,不惧于物。就是说不管你是像愚公那样一个一根筋的人,还是一个比较聪明的人,还是贤达的人,都是既不屑于物,又不惧于物  

徐文兵:对,我们离不开物,我们生活在这个物的社会里,我们需要物,但是这些东西不要过分的纠缠于你的内心,我们现在都是离不开物了,住什么房,开什么车,穿什么衣,吃什么饭,这都离不开物。离不开物,不见得你要把你的心拴在那东西上,很多人啊,丢了手机好几天都吃不下饭,这叫屑于物。然后呢,比如说还有很多人就是因为物的层次上的问题深深的影响到自己的内心,这也需要一个历练过程。我记得我刚毕业那会儿在东直门医院工作嘛,我那会年毕业,那会工资就是七八十块钱,一个月奖金我记得就是十块钱,我去那个买鱼的时候,这个小贩啊,我现在想,特别有意思,特别坏,这个鱼比如说是五块五,我给他块,他先找你四块五,然后你扭身就走了,那四十块钱就没有了,等我想起来再回去跟人家要的时候,人家死也不承认了,当时我大概就一星期没吃好饭,为什么?那四十块钱对我来讲就是半个月工资啊,你说我那种因为这个物,然后因为一条鱼,因为那个钱,然后影响到自己内心,这就不值得。现在你别说五十块钱,丢上块,眼都不带眨,心都不带想,为什么呢?这个事我经历过了,经历过以后就跟打免疫针一样,有了免疫力了。  

梁冬:所以呢,我常常劝那些在读大学的朋友啊,我跟他们说,年轻的时候趁没事啊,多谈几场恋爱,否则啊,等你工作的时候,你还要耗心耗神去对抗那个恋爱的那个思恋,那个揪心,你那个惧,你那个恐,对工作影响很大。  

徐文兵:是,顺其自然,也有大学里谈恋爱谈的跳楼的,这东西要把握个度,不谈不对,谈了没把握好之后失魂落魄,其实你说失恋,就是你把心神寄托在一个物上,人也是物,人物。最后你失去他以后,然后呢,自个呢,饭,饭吃不下,觉,觉睡不着,最后呢瘦得跟杆似的,失魂落魄那个样,然后学习也学习不下去,这就是什么?过屑于物最后惧于物,最后死在物上。

梁冬:所以呢,就是说,“愚智贤,不肖,不惧于物,故合于道”。

徐文兵:这个“故合于道”这个合是哪个合?

梁冬:合适的“合”。

徐文兵:呵呵。合适的“合”。就是那个我们经常讲的这个天人合一,什么叫合于道?你的人的行为,我们叫人为,是伪,天地那个变化叫道,所谓天人合一呢就是说你的所作所为符合自然的变化,这叫天人合一。天人合一的境界是道家养生的最高境界,如果你按我们前边讲的,黄帝的老师岐伯讲的这套方法去做的话,你就作为一个人就合于那个天道,合于天道的结果呢就是既长寿又健康,而且呢活得很愉快,又有质又有量,故合于道。

梁冬:嗯。这个道理呢就像一个汽车,如果你是一个汽车的零件,你非要跟这个车的整个轮胎节奏走的不一样,你想想看是你损伤还是车损伤?  

徐文兵:两败俱伤,但是天没事,人不行了。  

梁冬:因为车还跟轮胎不一样,我们在这天地之间实在是太小太小了。

徐文兵:我们……现在人追求的一种起码的健康状态都达不到,真正古人讲的天人合一的状态,它是非常美妙的那种,妙不可言的一种境界。天地的各种变化,气象万千,你的内心就感觉像和谐共振,天地的振动到你这你就把自个的身体像个收音机,调到那个波段,哗一下,那个美妙的那个音乐出来了,所以真正开慧不是靠读书,脑子里固有,你修炼到精炼通了以后,天地的那些就好象电磁波一样,啪一下,有人叫慧然独悟,你看六祖慧能是不识字的吗?为什么成为一代宗师呢?他就是修炼到了这种故合于道,然后在某年某月某个时刻垮一下开悟开窍,什么天底下的学问他都知道了。  

梁冬:这就上刚才徐老师讲的,你如果能够真的找对频率的话,那个收音机的音乐自己会来。

梁冬:继续回来到《上古天真论》。我们下面有一句话叫“所以能年皆度百岁”,我觉得这话不对呀,“所以能年皆度百岁”什么意思啊?“而动作不衰者,以其德全不危也”。  

徐文兵:所以岐伯老师回答黄帝的问题,最后来个总结性发言嘛,你知道上古之人春秋皆度百岁而动作不衰,你不是问我时世异耶?人将失之耶?我最后给你来一总结,他们这些人之所以能,年皆度百岁而动作不衰,为什么?以其德全不危也。  

梁冬:说到这个地方啊,就是道德,我们说老子讲这个道德经,道和德是怎么区分的?  

徐文兵:当然不一样,根据马王堆出土的这个老子,它应该叫德道经,它是德经在前,道经在后。我们经常说这人没道德,我们要讲道德,这是它的歧义,是两个字连起来合成的一个词,叫伦理道德,是那个意思。真正的道和德,是分开完全不一样的。道,天道,自然变化的规律;德,你看,双人,底下还有个心,你用心去体会天道的变化,然后呢,做的事情符合天道,我们叫有德之人。这叫有德者必有所得,你得到了这种天道,岐伯说其知道者,或者我们叫得道的高人。得道的人的所思所想所作所为叫有德,没得天道甚至违背天道做事的人叫缺德。梁冬:所以有些人说这个人品格高尚,很有道德,有时候我觉得呀,会有歧义。一个有道德的人不应该是很痛苦的人,我们常常觉得这个人很有道德,其实背后是有一种观点的,认为这个人是牺牲小我,成就大我,人生过得很痛苦,但是还要挺在那里,就是这种感觉好像叫有道德。真正有道德的人其实还是要有智慧的嘛,你得明白这个事,自己也不累,大家也不累,你在人群当中也不难受。  

徐文兵:有没有智不重要,他必须是个有慧的。我们看到很多农村的老头老太太,没读过书,不识字,但是说出来的话极其富有那种哲理,他可能是没智,但他绝对有慧。

梁冬:比如,你还记得有什么吗?  

徐文兵:我的这些朋友经常跟我说拉扯孩子的事情,我们现在很多小孩都是科学喂养,按照体重,按照几个月了,爹妈拿着那个配方然后就在那配上东西调着给孩子喂。

梁冬:跟喂猪一样  

徐文兵:他比喂猪要高级,但是喂出来连猪都不如,这么喂猪的话猪倒是长得膘肥体壮,喂的人一个个面黄肌瘦,跟非洲小难民似的,最后爹妈还挺奇怪,怎么我们这么讲科学,他怎么就长成这样了?可是农村老太太拉扯孩子没有这么多讲究,人就一句话,若要小儿安,三分饥与寒,他从来不给这孩子塞得满满的,从来不把那孩子裹得严严实实放在火炕上,因为什么?小孩子本身阳气就壮,你给他包裹的很严,他马上就上火,然后嗓子疼,流鼻血,接着就烧起来,再烧得高一点就开始抽风,所以你看人老太太,没有你们所说的这些科学什么这个那个知识,人家就掌握了一个道理,三分饥与寒,人家还知道那个饥不是饿,他从来不会把孩子饿着,他那个饥是让他吃七八分饱,你看这么拉扯孩子叫符合天道,这就叫德全,有德之人。我们现在好像自己知道很多什么知识,智者,但是无道。这个德全不危呢一句话就概括了我们想养生、想健康、想长寿、想生命活得又有质又有量,总结一句话叫德全不危。我们刚才说了,德是符合天道,叫德,背道或是对天道了解的不太全面,叫缺点德,最后,干脆都不知道天道,叫无德。无德,缺德,背德,我们这叫德全。我们有一个很著名人叫李德全,历史上有俩人叫李德全,一个是建国以后的卫生部部长,李德全,冯玉祥的夫人,你看古代人讲究起名字,都是用的不是道德经,就是诗经,啊……

梁冬:起码都是论语。

徐文兵:诶,起码就是论语。德全,除了我做的事情符合天道,而且我尽可能的全面的去符合它,全面的掌握天道,然后去做符合天道的事情,这样的话叫不危。  

梁冬:所以呢取名字啊还是要有一点出处的,显得你这个有点文化的样子。

徐文兵:不过这个,名和字不一样啊。

梁冬:啊,对对……你再讲讲……我跟你聊天啊,简直是没有办法往下说,名和字有什么不一样呢?  

徐文兵:名者命也,是说名是你生下来父母给你起的,这是你的命,你不能选择,这叫起的名。

梁冬:对,你不能选择你自己的名。

徐文兵:诶,姓和名都不能选,这是你生下来定的。但是一般上学弱冠以后呢,可以给自己取个字,这你可以自己定下,古代人呢只有你父辈或者你的长辈可以指名道姓叫你,比方叫梁冬,平辈人或者晚辈只能称呼你的字,表示尊敬。比如刘备,字玄德,你可以叫玄德先生或者刘玄德,你不能叫刘备,你叫刘备就是骂人家。那个诸葛亮,亮是他的名,孔明是他的字,你可以叫孔明先生……

梁冬:诸葛孔明啊。

徐文兵:诶,诸葛孔明。亮可以自称,亮躬耕垄亩,我自己叫自己没事,别人上来叫我亮,那你就是骂我。所以我们现在中国人都是有名无字。大家都……

梁冬:你有名字吗?  

徐文兵:我有名有字啊,我的名是我爸给我起的,我姓徐,我爸给我起名叫小周。

梁冬:哦,徐小周。

徐文兵:哎。这是我的名,你叫我徐小周就是骂我。

梁冬:怪不得我从来没有叫过你徐小周,我一直以为你叫徐文兵呢。  

徐文兵:文兵是我字,因为我是年生人,我是自个给自个起了个字,文化大革命的红小兵嘛,我叫文兵,你叫我徐文兵,就称呼我的字,或者你叫我文兵大夫。

梁冬:你身份证上写的不是叫徐文兵啊?  

徐文兵:就是徐文兵。梁冬:噢,你给自己后来就把改掉了?徐文兵:是我的字,我的字,我的名是小周,是我爸给我起的。

梁冬:但是你的身份证用的还是……

徐文兵:啊,文兵,是我的字,所以大家叫我徐文兵没问题。

梁冬:大家呢,很多人都很关心呢,到底这个这一个叫徐文兵的人,怎么能找到他呢?顺便提一下,如果你愿意的话呢,你可以百度一下徐文兵的博客或者是厚朴中医学堂。

徐文兵:对。诶,有人在我博客上问了,对呀,这个徐小周和徐文兵是不兄弟俩?我说不是,是一个人,因为什么?人是在变的,他在一个状态下他是那个人,他过了这个状态他又是另外一个人,他不能拿一个字来或者拿一个名来概括他全身。

梁冬:对,孔子说嘛逝者如斯夫嘛。

徐文兵:诶,对。

梁冬:我们的生命就像河水一样,川流不息。

徐文兵:所以很多人呢,有的人是以名闻名,有的人是以字闻名,有的人是以号闻名,所以呢我建议大家不要去现在就说去改名,改名。我说你别改名,那是爹妈给的,改不了,给自己起个字吧。还有一个李德全就是那个雍正王朝里边那个伺候雍正的那个太监叫李德全。

梁冬:噢呦,所以呀,有的时候我们一看那个名呢,你就知道他父母大概是什么水准。徐文兵:对。见到一个人,啊,敢问尊姓大名?梁冬:敢问路在何方?

徐文兵:敢问路在何方,这是传统,现在都丢掉了,但是你记住,我们叫乐其俗,我们的这种风俗习惯背后有莫名的这种能量和信息,你还是尊崇为好,不要在那儿弄北京话讲叫弄这种幺蛾子。现在我们接着说危,危呢它是象形字,上面是一个人在悬崖边儿上那个状态,我们一看,呦,悬了,没准要掉下来,所以说有一个成语叫危如累卵,就好像把那个鸡蛋一个个摞上了,啊。

梁冬:你说多象形呢?

徐文兵:诶,就是象形。

梁冬:多形象!

徐文兵:危如累卵,人其实是很脆弱的,我们生而为人真是天大的一个幸事,这个生命是很脆弱的,我是北京中医学院毕业的,我们同学都到大学五年级开始临床实习,一般都到急诊室,我是在协和医院急诊室,在那会我们不约而同在急诊室实习以后开始给家里写信,就感激父母把我们拉扯这么大,为什么?原来我们认为我们活这么大岁数天经地义的,在那个急诊室里面突然发现,黄泉路上无老少,小到几个月的婴儿,大到这种青壮年,咵唧,挂了,这个床,几个月进来,马上换床,死了,在急诊室死的更快,我还亲自参加过抢救那个谁,施光南……

梁冬:作曲家,是不是?

徐文兵:作曲家嘛。从进来然后瞳孔散大,我刚才说出神嘛,我告诉你,人死了就是瞳孔散大,神就跑了。当时他是脑疝,就是颅内出血,当时来了以后就是一个瞳孔大一个瞳孔小,当时就出现这个。在那会实习我们才知道人活着,敢情是这么脆弱,这么危呀,所以你还不去善待你的生命,善待你的心灵,不好好去养生?只有德全的人才能够处于什么?不危的这个境地。梁冬:对,所以大家都应该是张德全,李德全,徐德全和梁德全,啊。那今天我们花了一个小时的时间,啧啧啧,才读了十几二十个字,“是以嗜欲不能劳其目,淫邪不能惑其心,愚智贤不肖,不惧于物,故合于道。所以能年皆度百岁而动作不衰者,以其德全不危也。”感谢大家收听今天的国学堂之发现中医太美之《黄帝内经》之《上古天真论》之……

徐文兵:第一段。

梁冬:第一段。下周同一时间再见!

 

以上是关于RocketMQ第五讲的主要内容,如果未能解决你的问题,请参考以下文章

雅思基础课程语法基础课程-第五讲

架构设计第五讲:数据巡检系统的设计与应用

《上古天真论》第五讲文字版

PE格式第五讲,手工添加节表

操作系统(笔试系列)-第五讲存储器管理

20170611第五讲