窝俱网正在升级中,更多功能与服务,敬请期待!

第71期“南零商盟”:歌蒂诗品牌CIO刘卫华总分享“连锁零售行业的新零售之路”

导语

华南零售行业全渠道联盟,简称“南零商盟”,华南时尚行业CIO联盟和广州鞋服行业信息化联盟、华南企业CIO联盟(筹)唯一联合指导交流社群,汇聚服饰、时尚行业新零售全渠道搭建双方的精英联盟;

| 专心 | 专业 | 专研|

时尚行业信息化第一微信公号


71期“南零商盟”微谈会于2018913日晚上8点正式开播,本次分享嘉宾是来自歌蒂诗品牌CIO刘卫华总为大家分享“消息队列”。

—-整理 黎梦

大家我是歌蒂诗品牌CIO负责广州易神软件h系列产品的架构师刘卫华。今天我给大家带来的分享是消息队列在企业中的应用。希望不管对甲方还是乙方,只要有自己开发的团队都能够带来一些帮助。


第一部分首先让大家来认识一下,什么是消息队列。

消息队列的定义包含队列机制,它就是用这种队列机制来保证消息在传输的过程中能够不遗失的保存和能够更准确的到达所需要者的手中。


大家最关心的应该就是这个消息队列的作用吧,为什么它出来讲,其实我认为消息队列在现在,包括未来,在企业应用过程中扮演着一个非常重要的角色。首先消息队列有几个特性。如它能够在不知道收发双方位置的情况下独立的处理消息。意思就是发送就只负责发送,接收就只负责接收,处理的就只负责处理,并且在中间的过程是不需要等待的。有几个比较典型的应用场景,第一个就是应用在应用解耦上,第二个主要应用在异步消息的处理,第三个是流量削锋上。其实流量削锋在几年前在做电商这块的人需要,得花比较大的精力去处理这个事情现在有了消息队列之后事情就比较简单了。对于这3场景我后面会有比较详细的介绍。

 

消息队列在整个信息化中应该怎么去定位呢?其实消息队列首先定位为是一个中间件,它要的应用应该是在分布式应用中可以用来交换信息。的核心是可以在不同的应用之间交换信息实现高性能、高可用、可伸缩和最终一致性架构中不可或缺的一部分。

消息模型主要讲的就是消息体系的构成。消息体系里面最重要的部分是主题,它通过主题把消息的发布者和订阅者之间建立链接。同一个消息主题可以有多个发布者,同一个消息主题也可以被多个订阅者。这里面典型的例子比如说:商品信息的集成。商品信息的来源可以由plm,可以供应链系统或多个系统产生成品商品信息。不同的商品信息可以分发到不同系统比如pos系统、制系统等。


对于消息队列来说应该主要讲的还是它的3个应用场景,就是刚刚上面讲到的,对于3应用场景我会分别来举例说明。


第一个应用场景是应用解耦。应用解耦比模块化开发更进一步的开发方式,在传统的模块化开发大家所有的业务流程都是行处理的,所谓行处理,也就是说我一个数据处理完成了之后再接着处理下一个数据,直到所有的数据处理完成之后,这个任务才算完成。那如果利用消息队列来进行解耦的话呢?那有一部分是不需要实时处理的这种数据,可以直接把它放到消息队列中去,从而不需要等待一些相关的数据处理就能够返回场景


第二个场景是异步消息。比如用户注册传统的做法两个一个是串行的方式串行的方式也就是一个工作完成进行下一步的工作。那第二个方式是更进一步的利用线程的方,可以把有些相关的操作进行并行理。比如说发送邮件发送短信这一块可以利用线程的方式去处理如果采用消息队列的方式,那大家在处理时间节点上就可以及时的去响应用户的操作。减少应用响应时间也就极大的提高了应用的并发性能。类似的很多应用场景,比如说像日志收集、消息通讯等日志收集传统的做法是:如操作审计,在审核订单之后就记录下这张订单什么时候被谁审核了。使用消息队列了之后呢?记录日志的这部分工作可以直接交给消息队列了,那对于业务的处理时间,就省去了日志的记录时间了。


第三个应用场景是流量削锋。对于流量削锋这块呢,有两点比较重要。第一点就是通过消息队列控制访问的并发数。第二点呢,是通过消息队列减少应用的等待时间。这样的话极大提高用户的响应速度,从而以提高在单位时间内对于用户的响应数量,这样可以提高应用对于大数据、大并发量的响应需求。

对于消息队列,我认为在提高系统对用户的响应时间,提高系统的吞吐量和并发量的同时,对于解决不同系统之间的集成,是非常有帮助的。在最近一个月,我都在研究消息系统对于多系统集成之间的应用落地。做到现在呢,发现它能够非常高效的做到数据对数据的集成。我在广州女装公司运行了这个项目,已经解决了分销系统到wms商品资料之间的集成。项目情况是:由于原来上线时,做的系统集成功能考虑不周,经常会导致商品资料的同步不成功,现在利用这个技术,能够极大的提高效率,并且能够快速的开发部署。

 

这个案例是新浪网的日志处理案例,大家可以看一下,它也是用了消息队列,kafka是一种消息队列,这个消息队列可以做小型应用也可以做大型应用。

 

前面讲的是一些关于消息队列的基础和一些应用方面的知识。这些其实在网上大家都能够查到。那在最后一节我就讲一下实际的干货。我实际目前在项目和产品中,如何来对消息队列进行包装而提高在实际应用中的效率。这块可能技术性比较强。

在我的封装里主要有四个要素。第一个要素就是配置关系。通过一个配置来建立数据模型、主题、处理器、接口之间的关系。


第二个要素业务模型。业务模型,对应的就是数据库的数据结构,就是你什么样的数据需要被传输和处理,这个就是消息队列中主题的内容。

 

第三个要素是发送接口。发送接口通过接口形式标准化,单个发送,也可以做批量的。

第四个要素就是业务处理器。前面是准备数据。在这一步就是接收方法。接收到数据之后如何处理。比如你将收到的数据通过接口写到相对应的系统,还是直接写入到数据库,都是在这里实现的。

通过前面四步,就对消息队列进行封装,形成一套组件框架,之后再在实际业务中开发,建立系统级集成或数据级集成。


通过这种方式进行了封装之后,其实对于业务开发来说就简单了,对于一个新的业务开发,我只要四个步骤能够完成。第一步就是确定数据模型。如要集成商品资料,就建商品资料的模型。第二步就是发布数据。就是如何取到需要集成的商品资料,这个可以有多个来源有可能是用户在erp系统导入的,也可能是从plm中获取的新品资料。第三步做的就是接收方收到了这些商品资料怎么处理。第四步就是增加一条配置,建立数据模型和相关方法之间的关系。对于一个新的业务开发就完成了。

那如果对于已经开发过的业务,只是要增加新的数据来源的话,那只要增加第二步,增加新的生产消息的方法就可以了。在实际的开发过程中我增加一个颜色一个单的数据集成,我了十几分钟就完成了



注:以上内容摘选自南零商盟分享会,转载仅限学习分享;

       如产生版权问题,请联系我们处理;

       文章不代表”华南时尚行业CIO联盟“立场!



2018”易神·溯源“杯最美中秋月圆夜摄影网络评选报名!

时间:9月22-9月30日

点击“阅读原文”可参与报名和上传相片


本篇文章来源于微信公众号: 时尚行业CIO

第70期“南零商盟”:茵曼集团的CIO江山总分享“新零售IT发展历程"
« 上一篇 2018-09-23 22:40
投票喽|2018“易神·溯源”杯最美中秋月圆夜摄影投票进行时!
下一篇 » 2018-09-23 22:40