CN103645904B - 一种接口调用的缓存实现方法 - Google Patents

一种接口调用的缓存实现方法 Download PDF

Info

Publication number
CN103645904B
CN103645904B CN201310712006.7A CN201310712006A CN103645904B CN 103645904 B CN103645904 B CN 103645904B CN 201310712006 A CN201310712006 A CN 201310712006A CN 103645904 B CN103645904 B CN 103645904B
Authority
CN
China
Prior art keywords
interface
version number
interchange
caching
application program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310712006.7A
Other languages
English (en)
Other versions
CN103645904A (zh
Inventor
李鹏涛
王进思
李�杰
赵玉勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing Tianji cloud Clothing Technology Co., Ltd.
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201310712006.7A priority Critical patent/CN103645904B/zh
Publication of CN103645904A publication Critical patent/CN103645904A/zh
Application granted granted Critical
Publication of CN103645904B publication Critical patent/CN103645904B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种接口调用的缓存实现方法,将集中式缓存和单机缓存有效结合起来,利用单机的Ehcache缓存保存的接口版本号信息,对单机的内存缓存中的接口信息的时效性进行监控,并且在接口调用时优先从本地的单机缓存中获取接口调用返回结果,这样,在接口更新频率低的情况下可以充分利用本地的单机缓存来获取接口调用返回结果,在接口频率高的情况下可以利用集中缓存来获取接口调用返回结果,从而既可以解决单机缓存的数据一致性问题,又可以充分利用单机缓存,有效降低集中式缓存的压力、减少网络传输开销、避免系统资源浪费。

Description

一种接口调用的缓存实现方法
技术领域
本发明涉及缓存技术,特别是涉及一种接口调用的缓存实现方法。
背景技术
目前,在互联网等领域的大型高并发、高负载的WEB系统中,一般都采用缓存技术来提高性能。没有缓存技术的支持,无法解决WEB系统的大并发问题,即使解决也会付出很大的成本代价,因此,一个优秀的缓存方案对于大型高并发系统是非常重要的。
根据系统规模不同,现有的缓存技术包括两种,一种是单机缓存,另一种是集中式缓存。单机缓存就是WEB应用和缓存是同一个应用,也就是最简单的缓存策略,在基于Java的程序中使用的HashMap、List这些都可以算作缓存的范畴。集中式缓存是利用Redis等软件组成缓存服务集群,由该服务集群专门提供缓存服务。
内存缓存适用于小型应用、部署单个应用实例或者单台服务器的应用场景。由于单机缓存存在无法保障多个应用实例(集群)数据一致性问题,因此应用实例无法扩展,也就无法在大型分布式系统采用。
目前,对于大型分布式应用,通常采用集中式缓存方案。但是,在集中式缓存方案中,所有的调用都要通过网络调用缓存服务器来实现,这样,在调用量特别大的情况下,就会造成网络拥塞,甚至缓存服务器本身的性能问题。同时,对于并非实时更新(即更新频率低)的接口,如基础资料接口等,这种开销又是没有必要的,因此会造成系统资源浪费。
发明内容
有鉴于此,本发明的主要目的在于提供一种接口调用的缓存实现方法,该方法既可以解决单机缓存的数据一致性问题,又可以有效降低集中式缓存服务器的压力、减少网络传输开销、避免系统资源浪费。
为了达到上述目的,本发明提出的技术方案为:
一种接口调用的缓存实现方法,包括:
a、调用方应用程序在执行一外部应用程序的接口调用时,查询所在单机的Ehcache缓存,获取当前所调用接口的版本号M1;
b、所述调用方应用程序查询所在单机上的内存缓存,获取所述接口的版本号M2和当前接口调用传入实参对应的缓存结果创建时间;
c、当所述版本号M1与所述版本号M2相同并且所述创建时间不超过预设的有效期时,从所述内存缓存中获取所述接口的所述接口调用传入实参对应的返回结果,结束所述方法;
d、当所述版本号M1与所述版本号M2不相同和/或所述创建时间超过预设时间门限时,清除所述内存缓存中所述接口的所述接口调用传入实参对应的相关信息;所述调用方应用程序从集中缓存服务集群设备中获取所述接口的版本号M3和所述接口调用的返回结果,如果所述获取成功,则利用所述接口的版本号M3和所述返回结果,对所述内存缓存中所述接口的相关信息进行更新,否则,所述调用方应用程序通过触发所述外部应用程序执行所述接口调用,获取所述接口调用的返回结果,并且所述外部应用程序利用当前执行的所述接口调用的返回结果和所述接口的版本号,对所述集中缓存服务集群设备中所述接口的相关信息进行更新。
综上所述,本发明提出的接口调用的缓存实现方法,将集中式缓存和单机缓存有效结合起来,利用单机的Ehcache缓存保存的接口版本号信息,对单机的内存缓存中的接口信息的时效性进行监控,并且在接口调用时优先从本地的单机缓存中获取接口调用返回结果,这样,在接口更新频率低的情况下可以充分利用本地的单机缓存来获取接口调用返回结果,在接口频率高的情况下可以利用集中缓存来获取接口调用返回结果,从而既可以解决单机缓存的数据一致性问题,又可以充分利用单机缓存,有效降低集中式缓存的压力、减少网络传输开销、避免系统资源浪费。
附图说明
图1为本发明实施例一的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
本发明的核心思想是:将集中式缓存和单机缓存有效结合起来,既确保了单机缓存的数据一致性,又充分利用单机缓存,有效地降低集中式缓存的压力、减少网络传输开销、避免系统资源浪费。
图1为本发明实施例一的流程示意图,如图1所示,该实施例主要包括:
步骤101、调用方应用程序在执行一外部应用程序的接口调用时,查询所在单机的Ehcache缓存,获取当前所调用接口的版本号M1。
本步骤中用于从Ehcache缓存中获取当前所调用接口的版本号M1,以便在后续步骤中基于此对调用方所在单机内存缓存中的接口信息是否过时进行判断。
需要说明的是,Ehcache缓存是一个纯JAVA的进程内缓存框架,具有快速精干等特点,是Hibernate中默认的CacheProvider,具体实现为本领域人员所掌握,在此不再赘述。
这里,利用Ehcache缓存来存放已调用过的所有接口和对应的版本号信息,以监控单机内存缓存中的接口信息是否是最新的信息。
步骤102、所述调用方应用程序查询所在单机上的内存缓存,获取所述接口的版本号M2和当前接口调用传入实参对应的缓存结果创建时间。
本步骤中,用于从内存缓存中获取所述接口的版本号M2和创建时间信息,以便通过与Ehcache缓存中获取的版本号M1和预设的有效期进行比较,判断出内存缓存中的接口信息是否过期。具体可以采用下述步骤获取所述接口的版本号M2和创建时间信息:
以所述接口为索引查找所述内存缓存,得到所述接口对应的接口信息,从所述接口信息中获取所述接口的版本号和当前接口调用传入实参对应的创建时间,其中,所述接口信息包括接口的版本号、接口调用传入实参以及各接口调用传入实参对应的接口调用返回结果、创建时间和有效期。
这里需要说明的是,在单机的内存缓存中,每种接口调用传入实参组合将对应一条记录,一条记录将包含本次接口调用的相关接口信息,即包括接口调用返回结果、创建时间和有效期。本发明在具体实现时,每次接口调用只涉及当前接口调用传入实参对应的记录,而不涉及对该接口的其他的接口调用传入实参组合对应的记录信息,并且当前接口调用传入实参对应的记录将会被锁住,其他的相同接口调用将会被暂停直到该记录解锁。如此,既可以避免影响对该接口的其他接口调用传入实参组合的调用,还可以避免相同接口调用所致的并发调用集中缓存的现象发生。
步骤103、当所述版本号M1与所述版本号M2相同并且所述创建时间不超过预设的有效期时,从所述内存缓存中获取所述接口的所述接口调用传入实参对应的返回结果,结束所述方法。
本步骤中,当所述版本号M1与所述版本号M2相同并且所述创建时间不超过预设的有效期时,说明本机内存缓存中保存的相关接口信息没有过期,可以直接读取使用,因此,这里直接从所述内存缓存中获取所述接口的所述接口调用传入实参对应的返回结果。
所述有效期为本领域人员根据实际需要设置的,保存在内存缓存中的接口信息中。
这里需要说明的是,本发明中当需要进行其他应用程序的接口调用时,优先从本机的内存缓存中读取接口的调用结果信息,只有在本机内存缓存中的数据过期时,才通过网络获取接口的调用结果信息。如此,可以大大减少集中缓存的网络调用,极大地提高了调用效率,降低了网络资源开销,该方法在内容更新频度低的情况下,本地命中缓存的成功率很高,上述技术效果会更显著。
步骤104、当所述版本号M1与所述版本号M2不相同和/或所述创建时间超过预设时间门限时,清除所述内存缓存中所述接口的所述接口调用传入实参对应的相关信息;所述调用方应用程序从集中缓存服务集群设备中获取所述接口的版本号M3和所述接口调用的返回结果,如果所述获取成功,则利用所述接口的版本号M3和所述返回结果,对所述内存缓存中所述接口的相关信息进行更新,否则,所述调用方应用程序通过触发所述外部应用程序执行所述接口调用,获取所述接口调用的返回结果,并且所述外部应用程序利用当前执行的所述接口调用的返回结果和所述接口的版本号,对所述集中缓存服务集群设备中所述接口的相关信息进行更新。
本步骤中,当所述版本号M1与所述版本号M2不相同时或者所述创建时间超过预设时间门限时,说明内存缓存中保存的所述当前接口调用传入实参对应的接口调用返回信息过期了,需要从集中缓存服务集群设备中或直接触发外部应用程序执行接口调用获取当前的接口调用返回结果。
本步骤中,优先从集中缓存服务集群设备中获取接口调用返回结果,如果获取不成功,则直接触发外部应用程序执行相关的接口调用,如此可以利用集中缓存提高接口调用返回结果的获取效率。
这里需要说明的是,通常从集中缓存服务集群设备中获取接口调用返回结果不成功,说明当前的接口调用为首次执行,未曾被缓存过。如果触发外部应用程序执行接口调用,则需要利用当前执行的所述接口调用的返回结果和所述接口的版本号,对所述集中缓存服务集群设备中所述接口的相关信息进行更新,以使集中缓存服务集群设备中保存最新的接口信息,以供此后为应用程序的接口调用提供集中缓存服务。另外,在触发外部应用程序执行接口调用的情况下,只需要对集中缓存服务集群设备中接口的相关信息进行更新,而不再对相关单机中的内存缓存进行更新,可以使得接口调用过程尽可能的短。
较佳地,为了保障系统更新的效率和稳定性,当接口的信息发生更新时,可以使接口的更新信息与单机的内存缓存信息不同步更新,只将新的接口版本信息保存到相关单机的Ehcache缓存中,当后续应用程序需要调用该接口时,会因为Ehcache缓存与单机缓存中的版本不一致而清除本地缓存,从而可以既避免由于接口数据的更新而造成接口调用返回过期数据的问题,同时可避免对大量单机的内存缓存同步更新接口信息所产生的大量数据传输需求对网络造成的压力。具体地,可以采用下述两种方法实现上述目的:
方法一:
当一应用程序中任一接口X的数据变化时,该应用程序为所述接口X生成新的版本号,利用所述新的版本号和数据变化后所述接口X的接口调用结果,对所述集中缓存服务集群设备中所述接口X的相关信息进行更新,并将接口X的所述新的版本号发送给订阅所述接口X的各集群的所有应用程序;
接收到所述新的版本号的应用程序将所在单机的Ehcache缓存中所述接口X的版本号更新为所述新的版本号。
方法二:
当一应用程序中任一接口X的数据变化时,该应用程序为所述接口X生成新的版本号,利用所述新的版本号和数据变化后所述接口X的接口调用结果,对所述集中缓存服务集群设备中所述接口X的相关信息进行更新,并将接口X的所述新的版本号发送给订阅所述接口X的各集群的任一应用程序;
接收到所述新的版本号的应用程序利用所述新的版本号,对所在单机的Ehcache缓存中所述接口X的版本号进行更新,并触发所在集群的其他应用程序将各自所在单机的Ehcache缓存中所述接口X的版本号更新为所述新的版本号。
在上述方法一和方法二中,具体可利用现有的应用程序之间的通信方式--消息服务(MQ),将所述接口X的所述新的版本号发送给订阅所述接口X的各集群的应用程序。
上述方法一和方法二的不同之处在于:前者是将接口X的所述新的版本号发送给订阅所述接口X的各集群的所有应用程序,后者则不需要发送给所有订阅的应用程序,只需要通知给订阅所更新接口的每个集群的任一应用程序即可,然后再利用Ehcache缓存同步机制将该接口的新版本号通知给集群中的其他应用程序。方法二中将Ehcache缓存同步限制在一个应用集群内部,可以方便进行集群扩展,并可以使MQ服务配置较为简单,避免了系统中应用实例和MQ服务的耦合。在自动发布环境下,一个集群有一个独立的配置,非常重要。
另外,上述方法中仅对Ehcache缓存中的版本号进行同步,需要同步的缓存内容非常小,如此可以保障同步的稳定性。
较佳地,针对在实际应用中出现的极端情况:在触发外部应用程序执行接口调用之后,仍未能在接口调用超时前获得有效的接口调用返回结果,可以直接返回本机内存缓存中的相应返回结果。具体地,步骤104中所述调用方应用程序触发所述外部应用程序执行所述接口调用之后进一步包括:
如果在所述接口调用的时长达到预设的返回时间阈值之时,所述调用方应用程序未能从所述外部应用程序处成功获取所述接口调用的返回结果,则所述调用方应用程序从所在单机的内存缓存中获取所述接口调用的返回结果,并对该返回结果的可信度系数进行降级处理。
这里,在返回单机的内存缓存中的接口调用返回结果时,需要对该返回结果的可信度系数进行降级处理,即降低其可信度系数值,以通知调用方该结果的可靠性。
在实际应用中,本发明中所述集中缓存服务集群设备可以为Redis服务集群设备。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种接口调用的缓存实现方法,其特征在于,包括:
a、调用方应用程序在执行一外部应用程序的接口调用时,查询所在单机的Ehcache缓存,获取当前所调用接口的版本号M1;
b、所述调用方应用程序查询所在单机上的内存缓存,获取所述接口的版本号M2和当前接口调用传入实参对应的缓存结果创建时间;
c、当所述版本号M1与所述版本号M2相同并且所述创建时间不超过预设的有效期时,从所述内存缓存中获取所述接口的所述接口调用传入实参对应的返回结果,结束所述方法;
d、当所述版本号M1与所述版本号M2不相同和/或所述创建时间超过所述有效期时,清除所述内存缓存中所述接口的所述接口调用传入实参对应的相关信息;所述调用方应用程序从集中缓存服务集群设备中获取所述接口的版本号M3和所述接口调用的返回结果,如果所述获取成功,则利用所述接口的版本号M3和所述返回结果,对所述内存缓存中所述接口的相关信息进行更新,否则,所述调用方应用程序通过触发所述外部应用程序执行所述接口调用,获取所述接口调用的返回结果,并且所述外部应用程序利用当前执行的所述接口调用的返回结果和所述接口的版本号,对所述集中缓存服务集群设备中所述接口的相关信息进行更新。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
当一应用程序中任一接口X的数据变化时,该应用程序为所述接口X生成新的版本号,利用所述新的版本号和数据变化后所述接口X的接口调用结果,对所述集中缓存服务集群设备中所述接口X的相关信息进行更新,并将接口X的所述新的版本号发送给订阅所述接口X的各集群的所有应用程序;
接收到所述新的版本号的应用程序将所在单机的Ehcache缓存中所述接口X的版本号更新为所述新的版本号。
3.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
当一应用程序中任一接口X的数据变化时,该应用程序为所述接口X生成新的版本号,利用所述新的版本号和数据变化后所述接口X的接口调用结果,对所述集中缓存服务集群设备中所述接口X的相关信息进行更新,并将接口X的所述新的版本号发送给订阅所述接口X的各集群的任一应用程序;
接收到所述新的版本号的应用程序利用所述新的版本号,对所在单机的Ehcache缓存中所述接口X的版本号进行更新,并触发所在集群的其他应用程序将各自所在单机的Ehcache缓存中所述接口X的版本号更新为所述新的版本号。
4.根据权利要求1所述的方法,其特征在于,获取所述接口的版本号M2和创建时间信息包括:
以所述接口为索引查找所述内存缓存,得到所述接口对应的接口信息,从所述接口信息中获取所述接口的版本号和当前接口调用传入实参对应的创建时间,所述接口信息包括接口的版本号、接口调用传入实参以及各接口调用传入实参对应的接口调用返回结果、创建时间和有效期。
5.根据权利要求1所述的方法,其特征在于,步骤d中所述调用方应用程序触发所述外部应用程序执行所述接口调用之后进一步包括:
如果在所述接口调用的时长达到预设的返回时间阈值之时,所述调用方应用程序未能从所述外部应用程序处成功获取所述接口调用的返回结果,则所述调用方应用程序从所在单机的内存缓存中获取所述接口调用的返回结果,并对该返回结果的可信度系数进行降级处理。
CN201310712006.7A 2013-12-20 2013-12-20 一种接口调用的缓存实现方法 Active CN103645904B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310712006.7A CN103645904B (zh) 2013-12-20 2013-12-20 一种接口调用的缓存实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310712006.7A CN103645904B (zh) 2013-12-20 2013-12-20 一种接口调用的缓存实现方法

Publications (2)

Publication Number Publication Date
CN103645904A CN103645904A (zh) 2014-03-19
CN103645904B true CN103645904B (zh) 2016-09-21

Family

ID=50251128

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310712006.7A Active CN103645904B (zh) 2013-12-20 2013-12-20 一种接口调用的缓存实现方法

Country Status (1)

Country Link
CN (1) CN103645904B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160255169A1 (en) * 2015-02-27 2016-09-01 Futurewei Technologies, Inc. Method and system for smart object eviction for proxy cache
CN105389222B (zh) * 2015-12-15 2018-12-21 中国科学院声学研究所 一种动态调用原生接口的方法、装置和系统
CN105843895B (zh) * 2016-03-22 2019-07-02 北京建飞无限科技有限公司 基于Ehcache的数据查询及同步方法,装置及系统
CN106547631B (zh) * 2016-09-26 2021-04-20 腾讯科技(深圳)有限公司 基于安卓平台的跨进程通信方法和装置
CN107562829B (zh) * 2017-08-22 2020-09-29 上海幻电信息科技有限公司 数据访问方法及设备
CN108279985B (zh) * 2017-12-22 2021-11-19 努比亚技术有限公司 一种接口请求协议改造方法、设备及计算机可读存储介质
CN108536617B (zh) * 2018-03-30 2021-03-05 网易宝有限公司 缓存管理方法、介质、系统和电子设备
CN108874903A (zh) * 2018-05-24 2018-11-23 中国平安人寿保险股份有限公司 数据读取方法、装置、计算机设备及计算机可读存储介质
CN111367683A (zh) * 2018-12-25 2020-07-03 华为技术有限公司 一种结果获取方法、装置及设备
CN110889053B (zh) * 2019-11-11 2022-07-19 北京齐尔布莱特科技有限公司 一种接口数据的缓存方法、装置及计算设备
CN114697060B (zh) * 2020-12-29 2024-05-07 广州腾讯科技有限公司 业务控制方法、装置和电子设备
CN113064678A (zh) * 2021-03-25 2021-07-02 北京京东乾石科技有限公司 一种缓存配置方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1213800A (zh) * 1997-08-01 1999-04-14 国际商业机器公司 确定底层数据改变如何影响高速缓存对象
CN102970284A (zh) * 2012-11-05 2013-03-13 北京奇虎科技有限公司 用户信息处理方法和服务器
CN103338242A (zh) * 2013-06-20 2013-10-02 华中科技大学 一种基于多级缓存的混合云存储系统和方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1213800A (zh) * 1997-08-01 1999-04-14 国际商业机器公司 确定底层数据改变如何影响高速缓存对象
CN102970284A (zh) * 2012-11-05 2013-03-13 北京奇虎科技有限公司 用户信息处理方法和服务器
CN103338242A (zh) * 2013-06-20 2013-10-02 华中科技大学 一种基于多级缓存的混合云存储系统和方法

Also Published As

Publication number Publication date
CN103645904A (zh) 2014-03-19

Similar Documents

Publication Publication Date Title
CN103645904B (zh) 一种接口调用的缓存实现方法
CN106709003A (zh) 基于Hadoop的海量日志数据处理方法
CN107528870B (zh) 一种数据采集方法及其设备
CN107404480B (zh) 一种流媒体数据的传输方法、存储介质和流媒体服务器
CN105357286B (zh) 一种基于Web的实时消息定向推送方法
WO2007115477A1 (fr) Procédé et système de synchronisation de données
CN105472002A (zh) 基于集群节点间即时拷贝的会话同步方法
CN104320410A (zh) 基于http的全业务cdn系统及其工作方法
CN104866528B (zh) 多平台数据采集方法及系统
CN102739775A (zh) 物联网数据采集服务器集群的监控和管理方法
JP2004152247A (ja) 移動コンピュータ環境におけるトランザクションキャッシュ一貫性維持システム及びその方法
CN103152352A (zh) 一种基于云计算环境的全信息安全取证监听方法和系统
CN108055255A (zh) 一种事件库、可扩展数据管理系统及其管理方法
CN103685309A (zh) 面向地图可视化瓦片服务接入的异步请求队列模型
CN112099977A (zh) 一种分布式跟踪系统的实时数据分析引擎
US20220286373A1 (en) Scalable real time metrics management
CN107025222A (zh) 一种分布式日志采集方法及装置
CN109815214A (zh) 数据库访问方法、系统、装置及存储介质
CN103530335B (zh) 电力计量采集系统的入库操作方法及装置
CN100359474C (zh) 构建基于软流水结构的Web服务器的方法
CN101321089A (zh) 一种电信网管系统中性能数据的入库方法
CN107682411A (zh) 一种大规模sdn控制器集群及网络系统
CN111757353A (zh) 5g核心网中的网络数据处理方法及装置
CN112306369A (zh) 一种数据处理方法、装置、服务器及存储介质
CN104410511B (zh) 一种服务器管理方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20180516

Address after: 223800 room 416-429, Hengtong mansion, 19 Hongze East Road, Suyu District, Suqian, Jiangsu.

Patentee after: Suqian Jingdong Heng Rui Enterprise Management Co., Ltd.

Address before: 100080 2 floor, No. 2, No. 20, Suzhou Street, Haidian District, Beijing

Co-patentee before: Beijing Jingdong Century Commerce Co., Ltd.

Patentee before: Beijing Jingdong Shangke Information Technology Co., Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180713

Address after: 401121 6, Fortune 2, A building, Fortune Plaza, 15, fortune Avenue, Yubei District, Chongqing

Patentee after: Chongqing Tianji cloud Clothing Technology Co., Ltd.

Address before: 223800 room 416-429, Hengtong mansion, 19 Hongze East Road, Suyu District, Suqian, Jiangsu.

Patentee before: Suqian Jingdong Heng Rui Enterprise Management Co., Ltd.

TR01 Transfer of patent right