CN115766736A - 一种前端多开发人员的独立运行系统和方法 - Google Patents
一种前端多开发人员的独立运行系统和方法 Download PDFInfo
- Publication number
- CN115766736A CN115766736A CN202211451043.2A CN202211451043A CN115766736A CN 115766736 A CN115766736 A CN 115766736A CN 202211451043 A CN202211451043 A CN 202211451043A CN 115766736 A CN115766736 A CN 115766736A
- Authority
- CN
- China
- Prior art keywords
- service
- gateway
- instance
- network request
- registration center
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种前端多开发人员的独立运行系统和方法,开发前端包括若干独立的开发平台,任一所述开发平台运行第一服务,以及,与第一服务对应的第一负载均衡组件;后台服务端包括注册中心,连接到注册中心的网关,以及与网关连接的代理服务器;第一负载均衡组件用于在第一服务启动时,将第一服务对应的实例信息注册到注册中心;代理服务器用于将任一开发平台的网络请求转发至网关,网关用于基于接收的网络请求中的IP地址和/或实例名称,到注册中心查找并确认对应的实例信息;注册中心还用于通知网关和代理服务器返回对应网络请求的实例至对应的开发平台;实现了多个请求地址到注册中心进行自动匹配,实现多人并行开发。
Description
技术领域
本发明涉及通讯技术领域,尤其涉及一种前端多开发人员的独立运行系统和方法。
背景技术
在日常针对前后台不分离的多人员开发环境中,多个前端人员开发完成后,对自己的新开发功能进行测试时人员对公共资源依赖程度高,对同一资源的需求相互排斥,这样就大大的降低了开发速率,使得开发人员自测的过程中出现等待闲置的状态,增加了用工成本。
发明内容
本发明为了克服以上技术的不足,提供了一种前端多开发人员的独立运行系统和方法,实现将多个开发人员发起请求的请求地址到注册中心进行自动匹配,实现多人并行开发。
本发明克服其技术问题所采用的技术方案是:
本发明的第一个方面提出了一种前端多开发人员的独立运行系统,至少包括前后端不分离的开发前端和后台服务端,所述开发前端至少包括若干独立的开发平台,开发平台均基于同一开发环境进行开发,任一所述开发平台运行第一服务,以及,与第一服务对应的第一负载均衡组件;所述后台服务端至少包括注册中心,连接到注册中心的网关,以及与网关连接的代理服务器;所述第一负载均衡组件用于在第一服务启动时,将第一服务对应的实例信息注册到注册中心;所述代理服务器用于将任一开发平台的网络请求转发至网关,所述网关用于基于接收的网络请求中的IP地址和/或实例名称,到注册中心查找并确认对应的实例信息;所述注册中心还用于通知网关和代理服务器返回对应网络请求的实例至对应的开发平台;所述第一负载均衡组件还用于调用返回的实例。
进一步的,所述后台服务端还包括若干注册到注册中心第二服务,以及,与第二服务对应的第二负载均衡组件。
进一步的,所述代理服务器为Nginx,所述第一负载均衡组件和第二负载均衡组件均为Ribbon。
本发明的第二个方面提出了一种基于上述前端多开发人员的独立运行系统的前端多开发人员的独立运行方法,具体包括:第一开发平台启动对应的第一服务,并通过第一负载均衡组件将第一服务注册到注册中心;注册中心基于服务名称和/或IP地址保存第一服务对应的第一实例信息;第一开发平台发起网络请求用于请求第一实例,并通过代理服务器筛选和分发网络请求到网关,所述网关基于网络请求中的IP地址和/或实例名称到注册中心查找第一实例;若查找到对应的第一实例,第一开发平台通过网关返回第一实例;否则,基于预设机制返回第二实例。
进一步的,还包括后台服务端通过第二负载均衡组件将第二服务注册到注册中心;注册中心基于服务名称和/或IP地址保存第二服务对应的实例信息;第一开发平台发起网络请求用于请求第二服务对应的实例信息,并通过代理服务器筛选和分发网络请求到网关,所述网关基于网络请求中的IP地址和/或实例名称到注册中心查找第二服务对应的实例信息;若查找到第二服务对应的实例信息,第一开发平台通过网关返回第二服务对应的实例信息;否则,基于预设机制返回其他实例。
进一步的,所述预设机制包括轮询或者随机。
进一步的,所述网关基于哈希算法和网络请求中的IP地址得到计算后的哈希值,并基于计算得到的哈希值查找注册中心保存的IP地址。
本发明的有益效果是:
1、在前后台不分离的多人员开发环境中,降低了多个前端人员在开发完成后,进行新功能测试时对公共资源的依赖程度,开发人员可以进行并行开发,并且无需等待服务器释放资源,解决了同一资源依赖问题,提高了开发效率;
2、对于访问同一资源的,通过负载均衡组件Ribbon和修改的网关GateWay进行负载均衡调用,从而实现通过实例名和指定ip调用对应的实例;
3、采用hash算法定位服务,明显提升了实施量大时候的定位效率;
4、公用同一套网关等资源进行开发,节省了项目开支,充分利用了网关资源。
附图说明
图1为前后端不分离软件架构模式示意图;
图2为本发明实施例的前端多开发人员独立运行的系统架构示意图。
图3为本发明实施例的前端多开发人员独立运行的方法流程示意图。
具体实施方式
首先对本发明中提到的一些缩略语及关键术语进行说明。
微服务架构:微服务架构就是将单一程序拆分成一个一个的微服务,每个微服务运行在自己的进程中,并使用轻量级的机制通信,通常是HTTP RESTFULAPI。这些服务围绕业务能力来划分,并通过自动化部署机制来独立部署。这些服务可以使用不同的编程语言,不同数据库,以保证最低限度的集中式管理。
注册中心:是存放和调度服务,实现服务和注册中心,服务和服务之间的相互通信。注册中心可以说是微服务架构中的”通讯录“,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就到这里找到服务的地址,进行调用。
API Gateway(API网关):API网关是一个处于应用程序或服务(提供REST API接口服务)之前的系统,用来管理授权、访问控制和流量限制等,这样REST API接口服务就被API网关保护起来,对所有的调用者透明。因此,隐藏在API网关后面的业务系统就可以专注于创建和管理服务,而不用去处理这些策略性的基础设施。
Nginx:代理服务统一入口。是一个高性能的轻量级的Web服务器、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。
Ribbon:主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单地说,就是在配置文件中列出LoadBalancer(简称LB)后面所有机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们很容易使用Ribbon实现自定义的负载均衡算法。
前后端不分离软件架构模式:前后端不分离中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,即后端需要控制前端的展示,前端与后端的耦合度很高。前后端不分离软件架构模式示意图如图1所示。
为了便于本领域人员更好的理解本发明,下面结合附图和具体实施例对本发明做进一步详细说明,下述仅是示例性的不限定本发明的保护范围。
以如图2所示的前端多开发人员的独立运行系统架构示意图为例,本发明的前端多开发人员的独立运行系统包括前后端不分离的开发前端和后台服务端,开发前端包括若干独立的开发平台,开发平台均基于同一开发环境进行开发,任一开发平台运行第一服务,以及,与第一服务对应的第一负载均衡组件,后台服务端包括注册中心,连接到注册中心的网关,以及与网关连接的代理服务器;第一负载均衡组件用于在第一服务启动时,将第一服务对应的实例信息注册到注册中心;代理服务器用于将任一开发平台的网络请求转发至网关,网关用于基于接收的网络请求中的IP地址和/或实例名称,到注册中心查找并确认对应的实例信息;注册中心还用于通过网关和代理服务器返回网络请求对应的实例至对应的开发平台;第一负载均衡组件还用于调用返回的实例。
图2所示有4个独立开发平台,分别由4个开发人员A、开发人员B、开发人员C和开发人员D进行操作,每个开发平台对应的IP分别是192.168.0.101,192.168.0.102、192.168.0.103和192.168.0.104,
开发人员A、B、C、D分别在其开发平台上开发软件,因此分别启动服务A1、服务A2、服务A3和服务A4,并分别将对应的服务通过第一负载均衡组件即Ribbon注册到注册中心,注册中心存放了服务A1-A4分别对应的服务地址和IP地址。
开发人员A打开本地web浏览器发起网络请求到代理服务器Nginx,所有的请求经过代理服务器Nginx进行代理,并被Nginx进行初次的筛选和代理分发,网络请求被代理到微服务网关gateway,网关gateway收到请求后,会在服务中心查找注册中心中是否有与开发平台A相同IP的实例,如果有注册中心则通知网关,网关则将返回对应的实例或者第一负载均衡组件进行实例调用,下载到本地,然后进行调用。如果没有IP相同的对应实例,则轮询方式或者随机返回其他实例。
在一些实施方式中,本发明的后台服务端还包括若干注册到注册中心第二服务,以及,与第二服务对应的第二负载均衡组件。其中第二负载均衡组件为Ribbon。
本发明的另一个方面还提出了一种基于上述前端多开发人员独立运行系统的前端多开发人员独立运行方法,具体包括,第一开发平台启动对应的第一服务,并通过第一负载均衡组件将第一服务注册到注册中心;注册中心基于服务名称和/或IP地址保存第一服务对应的第一实例信息;第一开发平台发起网络请求用于请求第一实例,并通过代理服务器筛选和分发网络请求到网关,所述网关基于网络请求中的IP地址和/或实例名称到注册中心查找第一实例;若查找到对应的第一实例,则通过网关和代理服务器返回第一实例;否则,基于预设机制返回第二实例;第一开发平台通过第一负载均衡组件调用返回的实例。
主要通过修改网关的处理逻辑,实现多个开发人员可同时进行开发,无需依赖其他服务。
以图2所示的系统架构为例,对图3的前端多开发人员独立运行的方法的流程依次进行说明。
S1,第一开发平台启动对应的第一服务,并通过第一负载均衡组件将第一服务注册到注册中心。
开发人员A、B、C、D分别在其电脑上开发软件,因此分别启动服务A1、服务A2、服务A3和服务A4,并将对应的服务通过第一负载均衡器Ribbon注册到注册中心。
在本发明的一个实施例中,项目是前后台不分离项目,所以前端的静态资源文件例如html、css、js等都是需要访问本地资源的。开发人员A在其开发平台上开发服务A1,服务A1通过第一负载均衡器Ribbon注册到注册中心,注册中心存放了服务A1对应的实例信息,包括了服务地址和服务A1的IP地址。
例如开发页面A,生成的html和JS静态资源文件保存在开发A的本地的开发平台上,同理,开发人员B开发页面B,生成的html和JS静态资源文件保存在本地电脑B上。开发人员A或者开发人员B在自己开发平台上启动服务,则对应的服务注册到注册中心。并且在开发工具配置好静态资源位置方便访问。
S2,注册中心基于服务名称和IP地址保存第一服务对应的第一实例信息。
注册中心存放了服务对应的服务地址和IP地址。
在一些实施方式中,服务A1、服务A2、服务A3和服务A4注册在注册中心的实例可以实例名相同,但是每个实施例的IP地址不同。
S3,第一开发平台发起网络请求用于请求第一实例,并通过代理服务器筛选和分发网络请求到网关,网关基于网络请求中的IP地址和/或实例名称到注册中心查找第一实例。
在一些实施方式中,开发人员A要生成页面,则通过web浏览器,访问代理服务器,代理服务器分发开发人员A的网络请求到网关,网关收到请求后,根据http协议里请求头的ip地址到注册中心进行查找。
在未采用本明的技术方案前,如果开发人员A仅通过微服务网关进行访问,则随机访问注册中心的静态资源文件,无法实现开发人员A写的代码,仅对应返回给服务A1。
而本发明的技术方案,通过修改微服务网关的处理逻辑,就实现了开发人员A开发的代码仅实现对开发人员A开放,其余开发人员看不到其开发的代码。
S4,若查找到对应的第一实例,第一开发平台通过网关和代理服务器返回第一实例;否则,基于预设机制返回第二实例。
如果可以在注册中心查找到相同IP地址的请求,则会返回对应的实例。
在一些实施方式中,实现了服务A通过web进行访问,则返回生成页面所需的静态资源文件。
其中,预设机制可以为轮询或者是随机。
注册中心中将对应的实例下载到本地,在调用时候,通过Ribbon调用并且也可实现负载均衡算法,比如轮询,LRU。
在一些实施方式中,如果开发人员A打开web浏览器,发请求到nginx,服务A1是开发的软件,A1在开发过程中修改代码,作为开发人员A,调到的服务就是本地的服务A1,但是通过运行在服务器的微服务网关gateway进行调用服务,无论服务A1的代码是什么版本,不会对别的开发人员造成影响。
特别是针对于服务器数量有限,申请的资源比较大的应用,采用一个服务器,运行注册中心,gateway,ribbon和nginx,通过公用同一套网关、nginx、cas等资源节省了项目开支,充分利用了资源。
在一些实施方式中,还包括服务之间的调用,一个后台服务调用另一个后台服务,则微服务网关gateway先通过服务名称进行筛选,然后基于请求的服务的IP再进行调用。调用的基本原则是优先调用本地的服务和资源。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
Claims (7)
1.一种前端多开发人员的独立运行系统,至少包括前后端不分离的开发前端和后台服务端,其特征在于,所述开发前端至少包括若干独立的开发平台,开发平台均基于同一开发环境进行开发,任一所述开发平台运行第一服务,以及,与第一服务对应的第一负载均衡组件;
所述后台服务端至少包括注册中心,连接到注册中心的网关,以及与网关连接的代理服务器;
所述第一负载均衡组件用于在第一服务启动时,将第一服务对应的实例信息注册到注册中心;
所述代理服务器用于将任一开发平台的网络请求转发至网关,所述网关用于基于接收的网络请求中的IP地址和/或实例名称,到注册中心查找并确认对应的实例信息;
所述注册中心还用于通知网关和代理服务器返回对应网络请求的实例至对应的开发平台;
所述第一负载均衡组件还用于调用返回的实例。
2.根据权利要求1所述的前端多开发人员的独立运行系统,其特征在于,
所述后台服务端还包括若干注册到注册中心第二服务,以及,与第二服务对应的第二负载均衡组件。
3.根据权利要求2所述的前端多开发人员独立运行系统,其特征在于,所述代理服务器为Nginx,所述第一负载均衡组件和第二负载均衡组件均为Ribbon。
4.一种基于权利要求1-3任一项所述的前端多开发人员的独立运行系统的前端多开发人员的独立运行方法,其特征在于,具体包括:
第一开发平台启动对应的第一服务,并通过第一负载均衡组件将第一服务注册到注册中心;
注册中心基于服务名称和/或IP地址保存第一服务对应的第一实例信息;
第一开发平台发起网络请求用于请求第一实例,并通过代理服务器筛选和分发网络请求到网关,所述网关基于网络请求中的IP地址和/或实例名称到注册中心查找第一实例;
若查找到对应的第一实例,第一开发平台通过网关返回第一实例;否则,基于预设机制返回第二实例。
5.根据权利要求4所述的前端多开发人员的独立运行方法,其特征在于,还包括后台服务端通过第二负载均衡组件将第二服务注册到注册中心;
注册中心基于服务名称和/或IP地址保存第二服务对应的实例信息;
第一开发平台发起网络请求用于请求第二服务对应的实例信息,并通过代理服务器筛选和分发网络请求到网关,所述网关基于网络请求中的IP地址和/或实例名称到注册中心查找第二服务对应的实例信息;
若查找到第二服务对应的实例信息,第一开发平台通过网关返回第二服务对应的实例信息;否则,基于预设机制返回其他实例。
6.根据权利要求4或5所述的前端多开发人员的独立运行方法,其特征在于,所述预设机制包括轮询或者随机。
7.根据权利要求6所述的前端多开发人员的独立运行方法,其特征在于,所述网关基于哈希算法和网络请求中的IP地址得到计算后的哈希值,并基于计算得到的哈希值查找注册中心保存的IP地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211451043.2A CN115766736A (zh) | 2022-11-18 | 2022-11-18 | 一种前端多开发人员的独立运行系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211451043.2A CN115766736A (zh) | 2022-11-18 | 2022-11-18 | 一种前端多开发人员的独立运行系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115766736A true CN115766736A (zh) | 2023-03-07 |
Family
ID=85332976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211451043.2A Pending CN115766736A (zh) | 2022-11-18 | 2022-11-18 | 一种前端多开发人员的独立运行系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115766736A (zh) |
-
2022
- 2022-11-18 CN CN202211451043.2A patent/CN115766736A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109547570B (zh) | 服务注册方法、装置、注册中心管理设备及存储介质 | |
US5974443A (en) | Combined internet and data access system | |
US8788565B2 (en) | Dynamic and distributed queueing and processing system | |
CN106663033B (zh) | 在事务中间件机器环境支持绕域和代理模型并更新服务信息以跨域消息传送的系统和方法 | |
US8307380B2 (en) | Proxy object creation and use | |
US8886571B2 (en) | System and method for service virtualization in a service governance framework | |
US7873696B2 (en) | Scalable software blade architecture | |
US7779157B2 (en) | Recovering a blade in scalable software blade architecture | |
US7870288B2 (en) | Sharing data in scalable software blade architecture | |
US7512668B2 (en) | Message-oriented middleware server instance failover | |
CA2477902C (en) | Web server system and method | |
US10838769B2 (en) | Application program interface based service lookup in a service architecture | |
JP5931934B2 (ja) | マルチサーバー予約システムにおける集中型予約コンテキスト管理のための方法及びシステム | |
JP2004533687A (ja) | コンピュータ・ネットワークにおけるサービスの動的配備 | |
WO2003063029A1 (en) | System and method for using virtual directories to service url requests in application servers | |
CN1592303A (zh) | 用于应用实例级工作负荷分配亲合性的方法和系统 | |
US8332353B2 (en) | Synchronization of dissimilar databases | |
US11489814B1 (en) | Customized domain name resolution for virtual private clouds | |
US8135772B2 (en) | Single servlets for B2B message routing | |
EP2321931B1 (en) | Shared hosting using host name affinity | |
CN115766736A (zh) | 一种前端多开发人员的独立运行系统和方法 | |
US7716682B2 (en) | Multimodal or multi-device configuration | |
US11546405B2 (en) | Methods for exposing mainframe data as a web service and devices thereof | |
CN104980329B (zh) | 通讯录管理方法及装置、移动代理服务器 | |
US20090094314A1 (en) | Reroute of a web service in a web based application |
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 |