Nothing Special   »   [go: up one dir, main page]

CN112165507B - 单Web项目支持多服务架构的方法、装置、设备和介质 - Google Patents

单Web项目支持多服务架构的方法、装置、设备和介质 Download PDF

Info

Publication number
CN112165507B
CN112165507B CN202010877624.7A CN202010877624A CN112165507B CN 112165507 B CN112165507 B CN 112165507B CN 202010877624 A CN202010877624 A CN 202010877624A CN 112165507 B CN112165507 B CN 112165507B
Authority
CN
China
Prior art keywords
service
mode
module
external interface
sub
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
CN202010877624.7A
Other languages
English (en)
Other versions
CN112165507A (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.)
Moore Element Fujian Technology Co ltd
Original Assignee
Moore Element Fujian 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 Moore Element Fujian Technology Co ltd filed Critical Moore Element Fujian Technology Co ltd
Priority to CN202010877624.7A priority Critical patent/CN112165507B/zh
Publication of CN112165507A publication Critical patent/CN112165507A/zh
Application granted granted Critical
Publication of CN112165507B publication Critical patent/CN112165507B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种单Web项目支持多服务架构的方法、装置、设备和介质,方法包括:S1、接受用户对单Web项目的服务模式的配置;S2、接受用户对所述单Web项目中网关层的配置,以支持相应的服务模式;S3、单Web项目部署至生产环境;S4、在接收到外部接口请求时,若为微服务架构模式,通过feign将所述外部接口的请求转发至各子业务模块对应接口;若为单体应用架构模式,则通过反射机制构建所述外部接口对应子业务模块的完整类名及具体接口函数,供直接调用;S5、各子业务模块完成对所述外部接口的请求的处理后,再由网关层统一响应至所述外部接口。从而实现单Web项目支持多服务架构,通过少量的配置修改就能满足不同生产环境的需求。

Description

单Web项目支持多服务架构的方法、装置、设备和介质
技术领域
本发明涉及计算机技术领域,特别涉及一种基于spring cloud的单个Web项目同时支持多种服务架构的方法、装置、设备和介质。
背景技术
微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制。这些服务围绕业务能力构建并且可通过全自动部署机制独立部署。这些服务共用一个最小型的集中式的管理,服务可用不同的语言开发,使用不同的数据存储技术,易于开发和维护。但运维要求高、分布式固有的复杂性也会带来一定的问题,接口调整成本高,因此比较适合企业项目较大的情况。Spring cloud架构就是将整个Web应用组织为一系列小的Web服务。这些小的Web服务可以独立地编译及部署,并通过各自暴露的API接口相互通讯。它们彼此相互协作,作为一个整体为用户提供功能,却可以独立地进行扩展。
单体应用架构在小微企业比较常见,典型代表就是一个应用、一个数据库、一个Web容器就可以运行。便于共享、易于测试、易于部署。但若发展到后期,整个项目文件包含的模块非常多,会导致模块的边界模糊、依赖关系不清晰,使得整个项目非常复杂,不易于开发和维护。因此比较适合于企业发展的初期项目简单的情况,为了保证服务能快速上线,采用此种方案较为简单灵活。
显然微服务架构和单体应用架构各有千秋,若能在单个基于spring cloud的Web项目中同时支撑微服务架构模式和单体应用服务架构模式,则可以适应企业不同的发展阶段,减少了服务架构更新换代的成本。
发明内容
本发明要解决的技术问题,在于提供一种单Web项目支持多服务架构的方法方法、装置、设备和介质,能在单个基于spring cloud的Web项目中同时支撑微服务架构模式和单体应用架构模式,通过少量的配置修改就能满足不同生产环境的需求。
第一方面,本发明提供了一种单Web项目支持多服务架构的方法,包括下述步骤:
S1、通过项目配置文件接受用户对所述单Web项目的服务模式的开关配置项的配置,所述服务模式为微服务架构模式或者单体应用架构模式;
S2、接受用户对所述单Web项目中网关层的配置;若为微服务架构模式,各子业务模块配置文件修改为支持微服务架构模式;若为单体应用架构模式,各子业务模块配置文件修改为支持单体应用架构模式;
S3、所述单Web项目部署至生产环境,等待外部接口的请求;
S4、在接收到外部接口请求时,首先通过所述网关层读取所述项目配置文件中的开关配置项,判断服务模式是微服务架构模式还是单体应用架构模式:
若为微服务架构模式,则通过feign将所述外部接口的请求转发至各子业务模块对应接口;
若为单体应用架构模式,则通过反射机制构建所述外部接口对应子业务模块的完整类名及具体接口函数,供直接调用;
S5、所述子业务模块完成对所述外部接口的请求的处理后,再由网关层统一响应至所述外部接口。
第二方面,本发明提供了一种单Web项目支持多服务架构的装置,包括:
模式配置模块,用于通过项目配置文件接受用户对所述单Web项目的服务模式的开关配置项的配置,所述服务模式为微服务架构模式或者单体应用架构模式;
网关层配置模块,用于接受用户对所述单Web项目中网关层的配置;若为微服务架构模式,各子业务模块配置文件修改为支持微服务架构模式;若为单体应用架构模式,各子业务模块配置文件修改为支持单体应用架构模式;
项目部署模块,用于所述单Web项目部署至生产环境,等待外部接口的请求;
请求响应模块,用于在接收到外部接口的请求时,首先通过所述网关层读取所述项目配置文件中的开关配置项,判断服务模式是微服务架构模式还是单体应用架构模式:若为微服务架构模式,则通过feign将所述外部接口的请求转发至各子业务模块对应接口;若为单体应用架构模式,则通过反射机制构建所述外部接口对应子业务模块的完整类名及具体接口函数,供直接调用;
处理结果响应模块,用于在所述子业务模块完成对所述外部接口请求的处理后,统一通过网关层响应至所述外部接口。
第三方面,本发明提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:通过项目配置文件实现对单Web项目支持多服务架构进行配置,同时提供网关层的配置,以分别可支持微服务架构模式和单体应用架构模式,并在外部接口调用时,提供两种模块下的请求响应机制,从而实现了能在单个基于spring cloud的Web项目中同时支撑微服务架构模式和单体应用架构模式,且通过少量的配置修改就能满足不同生产环境的需求,以适应企业不同的发展阶段,减少了服务架构更新换代的成本。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明实施例一中方法中的流程图;
图2为本发明实施例二中装置的结构示意图;
图3为本发明实施例三中电子设备的结构示意图;
图4为本发明实施例四中介质的结构示意图。
具体实施方式
本申请实施例通过提供一种单Web项目支持多服务架构的方法、装置、设备及介质,能在单个基于spring cloud的Web项目中同时支撑微服务架构模式和单体应用架构模式,通过少量的配置修改就能满足不同生产环境的需求。
本申请实施例中的技术方案,总体思路如下:通过项目配置文件实现对单Web项目支持多服务架构进行配置,同时提供网关层的配置,以分别可支持微服务架构模式和单体应用架构模式,并在外部接口调用时,提供两种模块下的请求响应机制,从而实现了能在单个基于spring cloud的Web项目中同时支撑微服务架构模式和单体应用架构模式,且通过少量的配置修改就能满足不同生产环境的需求,以适应企业不同的发展阶段,减少了服务架构更新换代的成本。
实施例一
如图1所示,本实施例提供一种单Web项目支持多服务架构的方法,包括下述步骤:
S1、通过项目配置文件接受用户对所述单Web项目的服务模式的开关配置项的配置,所述服务模式为微服务架构模式或者单体应用架构模式;
S2、接受用户对所述单Web项目中网关层的配置;若为微服务架构模式,各子业务模块配置文件修改为支持微服务架构模式;若为单体应用架构模式,各子业务模块配置文件修改为支持单体应用架构模式;
S3、所述单Web项目部署至生产环境,等待外部接口的请求;
S4、在接收到外部接口请求时,首先通过所述网关层读取所述项目配置文件中的开关配置项,判断服务模式是微服务架构模式还是单体应用架构模式:
若为微服务架构模式,则通过feign将所述外部接口的请求转发至各子业务模块对应接口;
若为单体应用架构模式,则通过反射机制构建所述外部接口对应子业务模块的完整类名及具体接口函数,供直接调用;
S5、所述子业务模块完成对所述外部接口的请求的处理后,再由网关层统一响应至所述外部接口。
本实施例中,为了更快地响应外部接口请求,所述项目配置文件设置了feign转发开关配置项,在所述步骤S1中,还通过所述项目配置文件接受用户对所述feign转发开关配置项的配置,这样在所述步骤S4中,即通过feign转发开关配置项实现相应的外部接口请求的响应机制,分别应对两种服务模式的响应。
另外,由于在本发明中,要使单Web项目支持两种服务架构,代码的实现上要采用耦合的写法,然则代码耦合后就要求调用者要全程关注自己当下是什么模式,导致各子业务模块需要重复编写判断模式的代码,这本身不是业务模块要关注的问题。为了解决这一问题,本发明在接口代码上进行解耦,解耦的写法就是调用者只关注自己的业务实现,统一调用这个函数就可以了。这个函数会帮我们实现模式相关的机制。
因此,做为本实施例更优的一种实现方式,在所述步骤S4中:通过统一的代码FeignUtil类,在内部函数里对服务模式做判断,然后暴露统一的业务接口函数供两个服务模式下的各子业务模块调用,来实现两个服务模式的代码脱耦,从而使两个服务模式的各子业务模块无需关注自己是处于哪个服务模式,只需关注自身业务就行。
下面针对两种服务模式对配置方式做较详细的介绍:
(1)微服务架构模式的配置方式
1)、通过spring cloud脚手架快速搭建一个含有子业务模块的spring cloud单Web项目。单Web项目包含网关层、业务层、服务注册模块,配置中心模块。单Web项目中引入feign依赖用于支持接口转发,并在单Web项目的服务模式的服务模式的开关配置项配置为微服务架构模式。比如:
#是否开启微服务架构模式(false:单体应用架构模式;true:微服务架构模式)
Morewise.m.platform.cloud.server.open=true。
2)、网关层中目录接口与业务层中各子业务模块一一对应,比如在业务层中新增design子业务模块,则网关层添加对应design目录。网关层涉及业务接口调用的目录下存在与对应业务模块controller互相映射的UIController类作为接口调用入口。原则上UIController中定义的接口方法也同样和对应业务层controller中方法相对应。可能存在特殊接口需要在网关层合并多个业务接口数据则允许特殊处理。同时,须在网关层配置feign相关的转发接口,该目录结构应同样与业务模块的接口相对应。例如指定fcservice目录用于feign定义转发接口,在fcservice下再定义各子业务模块目录(如design目录),在design目录下定义对应的转发接口服务Service。
在业务层中,新增design模块,包名为:com.morewis.m.fw.design,新增TestController的类,同时新增一个test函数,无参数;
在网关层中,新增design模块,包名为:com.morewis.m.fw.ui.design,新增UITestController的类,同时新增一个test函数,无参数;
在网关层的fcservice下添加design模块,并添加TestService类,并添加test函数,无参数;
从而在业务层和网关层共存在3个“类似”的test函数,然后在网关层的UITestController的test函数里,构造一个ConveyData的对象数据cd,然后通过FeignUtil的convey函数,传递构造的cd对象,完成开发。
3)、调动maven的打包服务,然后启动服务,将单Web项目部署至生产环境,等待外部接口的请求,此时,整个程序启动的是微服务架构模式,有启动多个微服务,程序后台基于FeignUtil的映射机制,调用的是微服务架构模式。
(2)单体应用架构模式的配置方式
a)、该单体应用架构模式的配置方式是基于先做了微服务架构模式的配置之后转换的,因此单Web项目已经存在,此处无需再次搭建单Web项目,只需按照微服务步骤1)的更改方式,将服务模式的开关配置项的值改为false即可;即:
#是否开启微服务架构模式(false:单体应用架构模式;true:微服务架构模式)
Morewise.m.platform.cloud.server.open=false。
b)、保留上述微服务架构模式步骤2)中的所有配置,这是由单体应用架构模式下微服务架构模式的配置不起作用,因此可以保留;
c)、启动maven的打包服务,然后启动服务,此时,整个程序启动的是单体应用架构模式,只启动了一个单应用,程序后台基于FeignUtil的映射机制,调用的是单体应用架构模式。
基于同一发明构思,本申请还提供了与实施例一中的方法对应的装置,详见实施例二。
实施例二
如图2所示,在本实施例中提供了一种单Web项目支持多服务架构的装置,包括:
模式配置模块,用于通过项目配置文件接受用户对所述单Web项目的服务模式的开关配置项的配置,所述服务模式为微服务架构模式或者单体应用架构模式;比如:
#是否开启微服务架构模式(false:单体应用架构模式;true:微服务架构模式)
Morewise.m.platform.cloud.server.open=true,表示服务模式为微服务架构模式;
Morewise.m.platform.cloud.server.open=false,表示服务模式为单体应用架构模式。
网关层配置模块,用于接受用户对所述单Web项目中网关层的配置;若为微服务架构模式,各子业务模块配置文件修改为支持微服务架构模式;若为单体应用架构模式,各子业务模块配置文件修改为支持单体应用架构模式;
项目部署模块,用于所述单Web项目部署至生产环境,等待外部接口的请求;
请求响应模块,用于在接收到外部接口的请求时,首先通过所述网关层读取所述项目配置文件中的开关配置项,判断服务模式是微服务架构模式还是单体应用架构模式:若为微服务架构模式,则通过feign将所述外部接口的请求转发至各子业务模块对应接口;若为单体应用架构模式,则通过反射机制构建所述外部接口对应子业务模块的完整类名及具体接口函数,供直接调用;
处理结果响应模块,用于在所述子业务模块完成对所述外部接口请求的处理后,统一通过网关层响应至所述外部接口。
具体的,网关层配置模块中,网关层中目录接口与业务层中各子业务模块一一对应,比如在业务层中新增design子业务模块,则网关层添加对应design目录。网关层涉及业务接口调用的目录下存在与对应业务模块controller互相映射的UIController类作为接口调用入口。原则上UIController中定义的接口方法也同样和对应业务层controller中方法相对应。可能存在特殊接口需要在网关层合并多个业务接口数据则允许特殊处理。同时,须在网关层配置feign相关的转发接口,该目录结构应同样与业务模块的接口相对应。例如指定fcservice目录用于feign定义转发接口,在fcservice下再定义各子业务模块目录(如design目录),在design目录下定义对应的转发接口服务Service。
在业务层中,新增design模块,包名为:com.morewis.m.fw.design,新增TestController的类,同时新增一个test函数,无参数;
在网关层中,新增design模块,包名为:com.morewis.m.fw.ui.design,新增UITestController的类,同时新增一个test函数,无参数;
在网关层的fcservice下添加design模块,并添加TestService类,并添加test函数,无参数;
从而在业务层和网关层共存在3个“类似”的test函数,然后在网关层的UITestController的test函数里,构造一个ConveyData的对象数据cd,然后通过FeignUtil的convey函数,传递构造的cd对象,即可完成开发。
本实施例中,为了更快地响应外部接口请求,所述项目配置文件还包括feign转发开关配置项,所述模式配置模块还通过所述项目配置文件接受用户对所述feign转发开关配置项的配置。
另外,由于在本发明中,要使单Web项目支持两种服务架构,代码的实现上要采用耦合的写法,然则代码耦合后就要求调用者要全程关注自己当下是什么模式,导致各子业务模块需要重复编写判断模式的代码,这本身不是业务模块要关注的问题。为了解决这一问题,本实施例装置在接口代码上进行解耦,解耦的写法就是调用者只关注自己的业务实现,统一调用这个函数就可以了。这个函数会帮我们实现模式相关的机制。
因此,做为本实施例更优的一种实现方式,本实施例装置还包括:
脱耦模块,用于通过统一的代码FeignUtil类,在内部函数里对服务模式做判断,然后暴露统一的业务接口函数供两个服务模式下的各子业务模块调用,从而使两个服务模式的各子业务模块无需关注自己是处于哪个服务模式,只需关注自身业务就行,实现了两个服务模式的代码脱耦。
由于本发明实施例二所介绍的装置,为实施本发明实施例一的方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的电子设备实施例,详见实施例三。
实施例三
本实施例提供了一种电子设备,如图3所示,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,可以实现实施例一中任一实施方式。
由于本实施例所介绍的电子设备为实施本申请实施例一中方法所采用的设备,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的存储介质,详见实施例四。
实施例四
本实施例提供一种计算机可读存储介质,如图4所示,其上存储有计算机程序,该计算机程序被处理器执行时,可以实现实施例一中任一实施方式。
本申请实施例中提供的技术方案,至少具有如下技术效果或优点:通过项目配置文件实现对单Web项目支持多服务架构进行配置,同时提供网关层的配置,以分别可支持微服务架构模式和单体应用架构模式,并在外部接口调用时,提供两种模块下的请求响应机制,从而实现了能在单个基于spring cloud的Web项目中同时支撑微服务架构模式和单体应用架构模式,且通过少量的配置修改就能满足不同生产环境的需求,以适应企业不同的发展阶段,减少了服务架构更新换代的成本。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

Claims (8)

1.一种单Web项目支持多服务架构的方法,其特征在于:包括下述步骤:
S1、通过项目配置文件接受用户对所述单Web项目的服务模式的开关配置项的配置,所述服务模式为微服务架构模式或者单体应用架构模式;
S2、接受用户对所述单Web项目中网关层的配置;若为微服务架构模式,各子业务模块配置文件修改为支持微服务架构模式;若为单体应用架构模式,各子业务模块配置文件修改为支持单体应用架构模式;
S3、所述单Web项目部署至生产环境,等待外部接口的请求;
S4、在接收到外部接口请求时,首先通过所述网关层读取所述项目配置文件中的开关配置项,判断服务模式是微服务架构模式还是单体应用架构模式:
若为微服务架构模式,则通过feign将所述外部接口的请求转发至各子业务模块对应接口;
若为单体应用架构模式,则通过反射机制构建所述外部接口对应子业务模块的完整类名及具体接口函数,供直接调用;
S5、所述子业务模块完成对所述外部接口的请求的处理后,再由网关层统一响应至所述外部接口。
2.根据权利要求1所述的单Web项目支持多服务架构的方法,其特征在于:
所述项目配置文件还包括feign转发开关配置项,所述步骤S1中,还通过所述项目配置文件接受用户对所述feign转发开关配置项的配置。
3.根据权利要求1所述的单Web项目支持多服务架构的方法,其特征在于:
所述步骤S4中:通过统一的代码FeignUtil类,在内部函数里对服务模式做判断,然后暴露统一的业务接口函数供两个服务模式下的各子业务模块调用,从而使两个服务模式的各子业务模块无需关注自己是处于哪个服务模式,只需关注自身业务就行,实现了两个服务模式的代码脱耦。
4.一种单Web项目支持多服务架构的装置,其特征在于:包括:
模式配置模块,用于通过项目配置文件接受用户对所述单Web项目的服务模式的开关配置项的配置,所述服务模式为微服务架构模式或者单体应用架构模式;
网关层配置模块,用于接受用户对所述单Web项目中网关层的配置;若为微服务架构模式,各子业务模块配置文件修改为支持微服务架构模式;若为单体应用架构模式,各子业务模块配置文件修改为支持单体应用架构模式;
项目部署模块,用于所述单Web项目部署至生产环境,等待外部接口的请求;
请求响应模块,用于在接收到外部接口的请求时,首先通过所述网关层读取所述项目配置文件中的开关配置项,判断服务模式是微服务架构模式还是单体应用架构模式:若为微服务架构模式,则通过feign将所述外部接口的请求转发至各子业务模块对应接口;若为单体应用架构模式,则通过反射机制构建所述外部接口对应子业务模块的完整类名及具体接口函数,供直接调用;
处理结果响应模块,用于在所述子业务模块完成对所述外部接口请求的处理后,统一通过网关层响应至所述外部接口。
5.根据权利要求4所述的单Web项目支持多服务架构的装置,其特征在于:所述项目配置文件还包括feign转发开关配置项,所述模式配置模块还通过所述项目配置文件接受用户对所述feign转发开关配置项的配置。
6.根据权利要求4所述的单Web项目支持多服务架构的装置,其特征在于:还包括:
脱耦模块,用于通过统一的代码FeignUtil类,在内部函数里对服务模式做判断,然后暴露统一的业务接口函数供两个服务模式下的各子业务模块调用,从而使两个服务模式的各子业务模块无需关注自己是处于哪个服务模式,只需关注自身业务就行,实现了两个服务模式的代码脱耦。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至3任一项所述的方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至3任一项所述的方法。
CN202010877624.7A 2020-08-27 2020-08-27 单Web项目支持多服务架构的方法、装置、设备和介质 Active CN112165507B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010877624.7A CN112165507B (zh) 2020-08-27 2020-08-27 单Web项目支持多服务架构的方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010877624.7A CN112165507B (zh) 2020-08-27 2020-08-27 单Web项目支持多服务架构的方法、装置、设备和介质

Publications (2)

Publication Number Publication Date
CN112165507A CN112165507A (zh) 2021-01-01
CN112165507B true CN112165507B (zh) 2023-07-21

Family

ID=73860280

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010877624.7A Active CN112165507B (zh) 2020-08-27 2020-08-27 单Web项目支持多服务架构的方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN112165507B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113055470B (zh) * 2021-03-10 2023-04-28 中国建设银行股份有限公司 服务请求分发方法和系统
CN113535227B (zh) * 2021-09-07 2021-12-21 深圳市云中鹤科技股份有限公司 一种数字化技术架构的部署方法和装置
CN114244654B (zh) * 2021-12-20 2023-09-26 中国平安财产保险股份有限公司 一种url的转发方法、装置、设备及计算机存储介质
CN115190019A (zh) * 2022-07-04 2022-10-14 四川虹美智能科技有限公司 一种不修改终端的云端架构升级方法
CN115729526B (zh) * 2022-11-29 2024-08-20 北京京航计算通讯研究所 一种单体和微服务一体化软件开发方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108255614A (zh) * 2016-12-28 2018-07-06 中国移动通信集团公司 一种基于微服务架构的接口调用系统及方法
CN108279926A (zh) * 2018-01-10 2018-07-13 浙江网新恒天软件有限公司 一种单体应用微服务化的方法
CN109597610A (zh) * 2018-12-10 2019-04-09 南京华苏科技有限公司 一种基于微服务架构的应用结构组件化构建方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10430250B2 (en) * 2017-10-11 2019-10-01 International Business Machines Corporation Decomposing monolithic application into microservices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108255614A (zh) * 2016-12-28 2018-07-06 中国移动通信集团公司 一种基于微服务架构的接口调用系统及方法
CN108279926A (zh) * 2018-01-10 2018-07-13 浙江网新恒天软件有限公司 一种单体应用微服务化的方法
CN109597610A (zh) * 2018-12-10 2019-04-09 南京华苏科技有限公司 一种基于微服务架构的应用结构组件化构建方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"云环境中Web应用的微服务架构评估";王纪军等;《计算机系统应用》;全文 *

Also Published As

Publication number Publication date
CN112165507A (zh) 2021-01-01

Similar Documents

Publication Publication Date Title
CN112165507B (zh) 单Web项目支持多服务架构的方法、装置、设备和介质
CN105224466B (zh) 一种基于Docker的集成测试方法及系统
US8271609B2 (en) Dynamic service invocation and service adaptation in BPEL SOA process
AU2018365860B2 (en) Code module selection for device design
CN107979508A (zh) 微服务测试方法及装置
CN110333889B (zh) 容器服务用户集群的升级方法及系统
CN114077462A (zh) 软件操作系统调用Android HIDL接口的方法、装置、设备及介质
US20060235928A1 (en) System and method for creating a mapping document for binding messages between an application and an associated backend server
US20180052723A1 (en) Middleware Interface and Middleware Interface Generator
EP1723516A1 (en) System and method for building mixed mode execution environment for component applications
CN111262897B (zh) 服务调用路由处理方法、装置及系统
CN111258567B (zh) 服务代码开发处理方法及装置
US20080229274A1 (en) Automating Construction of a Data-Source Interface For Component Applications
CN115469833A (zh) 动态规则引擎的实现方法和装置、电子设备和存储介质
CN112463123A (zh) 任务编译方法、装置、网络节点、系统及存储介质
CN109885612B (zh) 区块链智能合约的同步生效方法及装置
CN112787999A (zh) 跨链调用方法、装置、系统与计算机可读存储介质
CN112565340B (zh) 分布式应用的服务调度方法、装置、计算机系统及介质
CN111683005B (zh) 一种物联网智能网关设备及其构建方法
CN110489090B (zh) 一种基于应用模型的应用软件开发方法及系统
CN112732677A (zh) 区块链节点部署方法、装置、设备及存储介质
CN117271013A (zh) 基于工业软件的多云技术适配方法及系统
CN102684913B (zh) 业务处理方法和相关装置及相关系统
CN113835827A (zh) 基于容器Docker的应用部署方法、装置及电子设备
CN113805858A (zh) 持续部署脚本语言开发的软件的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20230612

Address after: 350100 room 710, 7 / F, building a, jiuce building, Haixi high tech Industrial Park, Fuzhou high tech Zone, Fuzhou, Fujian

Applicant after: Moore element (Fujian) Technology Co.,Ltd.

Address before: 350000 7 / F, block a, jiuce building, Haixi hi tech Industrial Park, Fuzhou hi tech Zone, Fuzhou City, Fujian Province

Applicant before: FUJIAN MORE SOFTWARE CO.,LTD.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant