CN104991824A - 一种动态切换应用程序数据源的方法及系统 - Google Patents

一种动态切换应用程序数据源的方法及系统 Download PDF

Info

Publication number
CN104991824A
CN104991824A CN201510469431.7A CN201510469431A CN104991824A CN 104991824 A CN104991824 A CN 104991824A CN 201510469431 A CN201510469431 A CN 201510469431A CN 104991824 A CN104991824 A CN 104991824A
Authority
CN
China
Prior art keywords
data source
switching
module
application program
application
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.)
Granted
Application number
CN201510469431.7A
Other languages
English (en)
Other versions
CN104991824B (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.)
Wuhan Happy Bubble Information Technology Co ltd
Original Assignee
Shanghai Feixun Data Communication 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 Shanghai Feixun Data Communication Technology Co Ltd filed Critical Shanghai Feixun Data Communication Technology Co Ltd
Priority to CN201510469431.7A priority Critical patent/CN104991824B/zh
Publication of CN104991824A publication Critical patent/CN104991824A/zh
Application granted granted Critical
Publication of CN104991824B publication Critical patent/CN104991824B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提供一种动态切换应用程序数据源的方法及系统,包括:在应用程序中配置多个数据源信息,启动应用程序时,加载配置项;为每个数据源建立一个连接池的独立线程,单个线程操作单个数据源;在应用程序需要切换数据源的功能模块中加入切换点;当应用程序调用所述功能模块时,根据功能模块对应配置项中的数据源信息,向连接池请求数据源,切换连接到相应的数据源。通过为每个数据源建立一个连接池的独立线程,单个线程操作单个数据源,解决了用户访问过多造成的连接争抢问题。

Description

一种动态切换应用程序数据源的方法及系统
技术领域
本发明涉及切换应用程序数据源,尤其涉及一种动态切换应用程序数据源的方法及系统。
背景技术
如今的应用程序往往需要操作多个不同的数据库或者接入其他不同的数据库中,迫使程序员不得不修改代码甚至框架来兼容其业务需求。Spring动态切换数据源技术可以实现应用程序数据库的动态切换,但存在问题:没有能够解决多用户访问单例“sessionFactory”时共享“dataSource”(数据源)变量,导致产生争抢“dataSource”(数据源),当多用户访问时,可能会导致系统性能下降。
发明内容
本发明的目的,就是提出一种动态切换应用程序数据源的方法及系统,
本发明为解决上述技术问题所采用的技术方案:
一种动态切换应用程序数据源的方法,其特征在于,包括:
在应用程序中配置多个数据源信息,启动应用程序时,加载数据源配置项;为每个数据源建立一个连接池的独立线程,单个线程操作单个数据源;
在应用程序需要切换数据源的功能模块中加入切换点,所述切换点对应一数据源;
当应用程序调用所述功能模块时,根据所述切换点对应配置项中的数据源信息,向连接池请求数据源,切换连接到相应的数据源。
通过为每个数据源建立一个连接池的独立线程,单个线程操作单个数据源,解决了用户访问过多造成的连接争抢问题。
优选的,
增加一数据源时,添加相应配置数据源信息,为新增数据源启动一个连接池的线程;
数据源可以根据需要增加或删除。
减少一数据数据源时,关掉相应线程。
优选的,
所述功能模块是需要切换数据源的方法。
优选的,
所述功能模块是配置文件中配置需要切换数据源的类。
在应用程序中需要切换数据源的方法或配置文件中配置需要切换数据源的类中加入切换点,所述切换点对应一数据源,当调用该方法或该类时,切换到相应的数据源,操作相应的数据源。
本发明还提供一种动态切换应用程序数据源的系统,包括:
配置数据源模块,在应用程序中配置多个数据源信息,启动应用程序时,加载数据源配置项;
数据库连接模块,为每个数据源建立一个连接池的独立线程,单个线程操作单个数据源;
切换点设置模块,在应用程序需要切换数据源的功能模块中加入切换点,所述切换点对应一数据源;
当应用程序调用切换点设置模块中的所述功能模块时,根据功能模块对应配置数据源模块的数据源信息,向数据库连接模块的连接池请求数据源,切换连接到相应的数据源。
优选的,
还包括:
数据源添加删除模块,用于增加一数据源时,添加相应配置数据源信息,为新增数据源启动一个连接池的线程;减少一数据数据源时,用于关掉相应线程。
优选的,
所述功能模块是需要切换数据源的方法。
优选的,
所述功能模块是配置文件中配置需要切换数据源的类。
本发明通过为每个数据源建立一个连接池的独立线程,单个线程操作单个数据源的方式实现动态切换应用程序的数据源,解决了用户访问过多造成的连接争抢问题。
附图说明
图1为一种动态切换应用程序数据源的方法的连接池与线程池关系示意图。
图2为一种动态切换应用程序数据源的方法的应用程序切换到数据源的示意图。
图3为一种动态切换应用程序数据源的系统的结构示意图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
实施例一:
线程池的原理类似于操作系统中的缓冲区,它的流程如下:先启动若干数量的线程,并让这些线程都处于睡眠状态,当客户端有一个新请求时,就会唤醒线程池中的某一个睡眠线程,让它来处理客户端的这个请求,当处理完这个请求后,线程又处于睡眠状态,线程池的应用会节约大量的的系统资源,使得更多的CPU时间和内存用来处理实际的商业应用,而不是频繁的线程创建与销毁。
数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的性能低下。数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接,并将这些连接组成一个连接池(简单说:在一个“池”里放了好多半成品的数据库联接对象),由应用程序动态地对池中的连接进行申请、使用和释放。对于多于连接池中连接数的并发请求,应该在请求队列中排队等待。并且应用程序可以根据池中连接的使用率,动态增加或减少池中的连接数。
连接池技术尽可能多地重用了消耗内存地资源,大大节省了内存,提高了服务器的服务效率,能够支持更多的客户服务。通过使用连接池,将大大提高程序运行效率,同时,可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。
现在应用程序操作多个不同的数据源时,为多个数据源建立连接池时只对应一个线程,会出现用户访问过多造成的连接争抢问题。
本发明提供一种动态切换应用程序数据源的方法,在应用程序中配置多个数据源信息,启动应用程序时,加载数据源配置项。
在spring的配置文件配置多个数据源,包括数据源所在服务器IP地址、数据源标识、用户名、密码等信息,
如图1所示,为每个数据源建立一个连接池的独立线程,单个线程操作单个数据源,这样,可以防止后续用户访问过多造成的连接争抢,当需要再添加一个数据源时,只需添加相应配置,再启动一个线程即可;反之,如果后续不需要使用某个数据库,只需关掉该线程,整个过程都不用重启应用程序。
如图2所示,在应用程序需要切换数据源的功能模块中加入切换点,切换点对应一数据源。在需要切换数据源的方法中加入切换点,切换点对应一数据源,或者在配置文件中配置需要切换数据源的整个类,加以监听。
当应用程序调用所述功能模块时,根据功能模块对应配置项中的数据源信息,向连接池请求数据源,切换连接到相应的数据源。
当应用程序在调用该方法或该类时,自动切换到需要操作的数据源中,再进行数据库操作,即完成动态切换数据库的目的。
切换点注入,采用java反射机制,找出该注入点对应的类名及方法名,在调用该方法时切换到需要操作的数据源,然后再继续执行该方法,以达到切换操作数据库的目的。
数据源切换,利用java技术中抽象数据源路由类AbstractRoutingDataSource,实现该类的方法determineCurrentLookupKey(),指定参数,便可路由到想要操作的数据库。
该发明中为每个数据源建立一个连接池的独立线程,单个线程操作单个数据源,是单独通用的功能模块,可移植到其他第三方应用程序中,其他应用程序只需连接上连接池,配置好对应切换点,即可动态切换数据源的功能。
如图3所示,本发明提供一种动态切换应用程序数据源的系统,包括:
配置数据源模块,在应用程序中配置多个数据源信息,启动应用程序时,加载数据源配置项;
数据库连接模块,为每个数据源建立一个连接池的独立线程,单个线程操作单个数据源;
切换点设置模块,在应用程序需要切换数据源的功能模块中加入切换点,所述切换点对应一数据源;
当应用程序调用切换点设置模块中的所述功能模块时,根据功能模块对应配置数据源模块的数据源信息,向数据库连接模块的连接池请求数据源,切换连接到相应的数据源。
功能模块是需要切换数据源的方法或者配置文件中配置需要切换数据源的类。
在应用程序使用中,可能需要再增加会删除数据库,系统还可以包括:
数据源添加删除模块,用于增加一数据源时,添加相应配置数据源信息,为新增数据源启动一个连接池的线程;减少一数据数据源时,用于关掉相应线程。
数据库连接模块中为每个数据源建立一个连接池的独立线程,单个线程操作单个数据源,数据库连接模块是单独通用的功能模块,可移植到其他第三方应用程序中。
实施例二:
本实施例与实施例一基本相同,具体介绍应用程序操作多个不同的数据源的方法。
在spring的配置文件配置多个不同数据源A、B…N,配置信息包括多个不同数据源所在服务器IP地址、数据源标识、用户名、密码等信息,如图1所示,为多个数据源建立连接池,为每个数据源建立一个连接池的独立线程,为数据源A建立线程A,数据源B建立线程B…数据源N建立线程N,单个线程操作单个数据源,在应用程序存在需要切换数据源的多个方法,方法A、方法B…方法N,在多个方法中中加入切换点A、切换点B…切换点N,切换点A对应数据源A,切换点B对应数据源B…切换点N对应数据源N,也可以存在两个以上方法中的切换点对应一相同数据源。
程序运行中,通过线程A连接到数据源A,当应用程序调用方法B时,根据切换点B对应配置项中的数据源B的信息,利用java技术中抽象数据源路由类AbstractRoutingDataSource,实现该类的方法determineCurrentLookupKey(),指定参数,通过线程B切换到切换点B对应的数据源B。
当应用程序调用方法N时,根据切换点N对应配置项中的数据源N的信息,利用java技术中抽象数据源路由类AbstractRoutingDataSource,实现该类的方法determineCurrentLookupKey(),指定参数,通过线程N切换到切换点N对应的数据源N。
通过在方法A、方法B…方法N中加入切换点A、切换点B…切换点N,切换点A、切换点B…切换点N对应数据源A、数据源B…数据源N,当应用程序调用不同方法时,通过不同的线程,连接到不同的数据源,实现动态切换应用程序数据源。
由于存在两个以上方法中的切换点对应一相同数据源情况,也可以在配置文件中配置需要切换数据源的类加以监听,以实现动态切换应用程序数据源。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (8)

1.一种动态切换应用程序数据源的方法,其特征在于,包括:
在应用程序中配置多个数据源信息,启动应用程序时,加载数据源配置项;
为每个数据源建立一个连接池的独立线程,单个线程操作单个数据源;
在应用程序需要切换数据源的功能模块中加入切换点,所述切换点对应一数据源;
当应用程序调用所述功能模块时,根据所述切换点对应配置项中的数据源信息,向连接池请求数据源,切换连接到相应的数据源。
2.如权利要求1所述的动态切换应用程序数据源的方法,其特征在于,
增加一数据源时,添加相应配置数据源信息,为新增数据源启动一个连接池的线程;
减少一数据数据源时,关掉相应线程。
3.如权利要求1所述的动态切换应用程序数据源的方法,其特征在于,
所述功能模块是需要切换数据源的方法。
4.如权利要求1所述的动态切换应用程序数据源的方法,其特征在于,
所述功能模块是配置文件中配置需要切换数据源的类。
5.一种动态切换应用程序数据源的系统,其特征在于,包括:
配置数据源模块,在应用程序中配置多个数据源信息,启动应用程序时,加载数据源配置项;
数据库连接模块,为每个数据源建立一个连接池的独立线程,单个线程操作单个数据源;
切换点设置模块,在应用程序需要切换数据源的功能模块中加入切换点,所述切换点对应一数据源;
当应用程序调用切换点设置模块中的所述功能模块时,根据功能模块的所述切换点对应配置数据源模块的数据源信息,向数据库连接模块的连接池请求数据源,切换连接到相应的数据源。
6.如权利要求5所述的动态切换应用程序数据源的系统,其特征在于,还包括:
数据源添加删除模块,用于增加一数据源时,添加相应配置数据源信息,为新增数据源启动一个连接池的线程;减少一数据数据源时,用于关掉相应线程。
7.如权利要求5所述的动态切换应用程序数据源的系统,其特征在于,
所述功能模块是需要切换数据源的方法。
8.如权利要求5所述的动态切换应用程序数据源的系统,其特征在于,
所述功能模块是配置文件中配置需要切换数据源的类。
CN201510469431.7A 2015-08-03 2015-08-03 一种动态切换应用程序数据源的方法及系统 Active CN104991824B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510469431.7A CN104991824B (zh) 2015-08-03 2015-08-03 一种动态切换应用程序数据源的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510469431.7A CN104991824B (zh) 2015-08-03 2015-08-03 一种动态切换应用程序数据源的方法及系统

Publications (2)

Publication Number Publication Date
CN104991824A true CN104991824A (zh) 2015-10-21
CN104991824B CN104991824B (zh) 2019-09-13

Family

ID=54303640

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510469431.7A Active CN104991824B (zh) 2015-08-03 2015-08-03 一种动态切换应用程序数据源的方法及系统

Country Status (1)

Country Link
CN (1) CN104991824B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105490850A (zh) * 2015-12-09 2016-04-13 北京京东尚科信息技术有限公司 配置数据源的方法及系统
CN106446182A (zh) * 2016-09-29 2017-02-22 贵州云众知乐教育科技有限公司 一种数据库引擎
CN107045509A (zh) * 2016-02-05 2017-08-15 北京京东尚科信息技术有限公司 一种用于切换数据库连接的系统、设备和方法
CN107463391A (zh) * 2016-06-03 2017-12-12 阿里巴巴集团控股有限公司 任务处理方法、装置及设备
CN108520004A (zh) * 2018-03-12 2018-09-11 舟谱数据技术南京有限公司 基于方法参数切面多租户数据源切换系统
CN109542871A (zh) * 2018-10-23 2019-03-29 高新兴科技集团股份有限公司 多源数据管理方法、系统和数据管理设备
CN110262854A (zh) * 2019-05-21 2019-09-20 深圳壹账通智能科技有限公司 多源数据处理方法及终端设备
CN111565228A (zh) * 2020-04-29 2020-08-21 杭州涂鸦信息技术有限公司 一种数据源切换方法、装置、设备、介质
CN113806813A (zh) * 2021-08-27 2021-12-17 上海得帆信息技术有限公司 一种多数据源的数据隔离切换方法和系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030004949A1 (en) * 2001-06-29 2003-01-02 Jianrong Hong Multi-thread shared memory message queue buffer systems, methods and computer program products for storing data in a database
CN101295304A (zh) * 2007-04-29 2008-10-29 阿里巴巴集团控股有限公司 自动切换数据源的方法、装置及一种数据源切换器
CN101694665A (zh) * 2009-10-27 2010-04-14 中兴通讯股份有限公司 一种异构数据源数据查询方法及装置
CN102360310A (zh) * 2011-09-28 2012-02-22 中国电子科技集团公司第二十八研究所 一种分布式系统环境下的多任务进程监视方法和监视系统
CN103530427A (zh) * 2013-11-04 2014-01-22 北京京东尚科信息技术有限公司 一种基于多数据库的动态切换方法和装置
CN103631647A (zh) * 2013-12-06 2014-03-12 北京京东尚科信息技术有限公司 一种实现分布式事务的方法和装置
CN104715076A (zh) * 2015-04-13 2015-06-17 东信和平科技股份有限公司 一种多线程数据处理方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030004949A1 (en) * 2001-06-29 2003-01-02 Jianrong Hong Multi-thread shared memory message queue buffer systems, methods and computer program products for storing data in a database
CN101295304A (zh) * 2007-04-29 2008-10-29 阿里巴巴集团控股有限公司 自动切换数据源的方法、装置及一种数据源切换器
CN101694665A (zh) * 2009-10-27 2010-04-14 中兴通讯股份有限公司 一种异构数据源数据查询方法及装置
CN102360310A (zh) * 2011-09-28 2012-02-22 中国电子科技集团公司第二十八研究所 一种分布式系统环境下的多任务进程监视方法和监视系统
CN103530427A (zh) * 2013-11-04 2014-01-22 北京京东尚科信息技术有限公司 一种基于多数据库的动态切换方法和装置
CN103631647A (zh) * 2013-12-06 2014-03-12 北京京东尚科信息技术有限公司 一种实现分布式事务的方法和装置
CN104715076A (zh) * 2015-04-13 2015-06-17 东信和平科技股份有限公司 一种多线程数据处理方法及装置

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105490850A (zh) * 2015-12-09 2016-04-13 北京京东尚科信息技术有限公司 配置数据源的方法及系统
CN105490850B (zh) * 2015-12-09 2018-10-19 北京京东尚科信息技术有限公司 配置数据源的方法及系统
CN107045509A (zh) * 2016-02-05 2017-08-15 北京京东尚科信息技术有限公司 一种用于切换数据库连接的系统、设备和方法
CN107463391A (zh) * 2016-06-03 2017-12-12 阿里巴巴集团控股有限公司 任务处理方法、装置及设备
CN106446182A (zh) * 2016-09-29 2017-02-22 贵州云众知乐教育科技有限公司 一种数据库引擎
CN108520004A (zh) * 2018-03-12 2018-09-11 舟谱数据技术南京有限公司 基于方法参数切面多租户数据源切换系统
CN108520004B (zh) * 2018-03-12 2021-11-19 舟谱数据技术南京有限公司 基于方法参数切面多租户数据源切换系统
CN109542871A (zh) * 2018-10-23 2019-03-29 高新兴科技集团股份有限公司 多源数据管理方法、系统和数据管理设备
CN110262854A (zh) * 2019-05-21 2019-09-20 深圳壹账通智能科技有限公司 多源数据处理方法及终端设备
CN111565228A (zh) * 2020-04-29 2020-08-21 杭州涂鸦信息技术有限公司 一种数据源切换方法、装置、设备、介质
CN113806813A (zh) * 2021-08-27 2021-12-17 上海得帆信息技术有限公司 一种多数据源的数据隔离切换方法和系统

Also Published As

Publication number Publication date
CN104991824B (zh) 2019-09-13

Similar Documents

Publication Publication Date Title
CN104991824A (zh) 一种动态切换应用程序数据源的方法及系统
US7996593B2 (en) Interrupt handling using simultaneous multi-threading
CN103533086B (zh) 一种云计算系统中的资源统一调度方法
US8270299B2 (en) Communicator-based token/buffer management for eager protocol support in collective communication operations
CN102541653B (zh) 一种多任务线程池调度方法和系统
US8856374B2 (en) Methods and systems for reconfiguration and repartitioning of a parallel distributed stream process
CN107707622B (zh) 一种访问桌面云虚拟机的方法、装置及桌面云控制器
US20150301854A1 (en) Apparatus and method for hardware-based task scheduling
CN112181683A (zh) 消息中间件的并发消费方法以及装置
CN106406905B (zh) 一种用于服务器的bios的setup选项的配置方法及系统
US20070005744A1 (en) System and method to establish a peer-to-peer IT backbone
CN102609311A (zh) 用于选择接收中断的处理器的装置、方法和系统
CN102262564A (zh) 视频监控平台系统的线程池结构及实现方法
CN103092682A (zh) 异步网络应用程序处理方法
EP3635547B1 (en) Systems and methods for preventing service disruption during software updates
CN105187327A (zh) 一种分布式消息队列中间件
CN105447092A (zh) 一种缓存方法及装置
US7539995B2 (en) Method and apparatus for managing an event processing system
US9509562B2 (en) Method of providing a dynamic node service and device using the same
CN102789394A (zh) 一种并行处理消息的方法、装置、节点及服务器集群
US8977752B2 (en) Event-based dynamic resource provisioning
CN106911741B (zh) 一种虚拟化网管文件下载负载均衡的方法及网管服务器
CN112099930A (zh) 一种量子计算机集群分布式队列调度方法
US20170269944A1 (en) Method for optimizing performance of computationally intensive applications
US20160179716A1 (en) Timer management apparatus

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201118

Address after: Room 10242, No. 260, Jiangshu Road, Xixing street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Hangzhou Jiji Intellectual Property Operation Co.,Ltd.

Address before: 201616 Shanghai city Songjiang District Sixian Road No. 3666

Patentee before: Phicomm (Shanghai) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201217

Address after: 8319 Yanshan Road, Bengbu City, Anhui Province

Patentee after: Bengbu Lichao Information Technology Co.,Ltd.

Address before: Room 10242, No. 260, Jiangshu Road, Xixing street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee before: Hangzhou Jiji Intellectual Property Operation Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210310

Address after: 313000 room 1019, Xintiandi commercial office, Yishan street, Wuxing District, Huzhou, Zhejiang, China

Patentee after: Huzhou YingLie Intellectual Property Operation Co.,Ltd.

Address before: 8319 Yanshan Road, Bengbu City, Anhui Province

Patentee before: Bengbu Lichao Information Technology Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211025

Address after: 430000 No. 07, 12 / F, building A1, phase 4-1, software industry, No. 1, Guanshan Avenue, Wuhan East Lake New Technology Development Zone, Wuhan, Hubei (Wuhan area of free trade zone)

Patentee after: Wuhan happy bubble Information Technology Co.,Ltd.

Address before: 313000 room 1019, Xintiandi commercial office, Yishan street, Wuxing District, Huzhou, Zhejiang, China

Patentee before: Huzhou YingLie Intellectual Property Operation Co.,Ltd.

PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A method and system for dynamically switching application data sources

Effective date of registration: 20220715

Granted publication date: 20190913

Pledgee: Wuhan area branch of Hubei pilot free trade zone of Bank of China Ltd.

Pledgor: Wuhan happy bubble Information Technology Co.,Ltd.

Registration number: Y2022420000227