APP下载

基于微服务的互联网+科技创新服务平台设计与应用

2021-11-01谢红薛凯杨梦莹

微型电脑应用 2021年10期
关键词:架构科技用户

谢红, 薛凯, 杨梦莹

(1.新疆维吾尔自治区科技项目服务中心, 新疆 乌鲁木齐 830013;2.新疆电子研究所股份有限公司, 新疆 乌鲁木齐 830013)

0 引言

随着科技的进步和发展,许多科技企业都拥有了自己的科研成果和创新服务,也随之出现很多成果技术转移和创业辅导的需求。由于缺少统一系统的管理,出现了创新服务资源分散[1]、科技成果转移转化率低等问题[2-3]。针对解决这一问题,本文提出一种稳定可靠的互联网+和微服务模式下的管理科技创新服务资源的平台,并对平台实现的过程做了详细的阐述和分析。

1 系统需求及功能设计

互联网+科技创新服务平台的根本目的是实现科技创新服务资源的管理与整合。通过互联网+的模式,改变传统创新服务资源分散的问题。其次要进行资源申请咨询的流程管理,解决科技成果转移转化率低的问题。同时还可以在平台看到创业创新服务,培养创业创新企业,发布科技创新资讯,从而提高科技创新能力。还需要考虑在大流量请求访问过程中的平台运行稳定性、可靠性和开发的可扩展性。平台功能结构设计如图1所示。

图1 平台功能结构图

该平台主要包括下列特性。

第一,平台用户分为两种,包括普通用户和企业用户。平台登录时会根据用户分类的不同决定系统的相应权限和不同的功能。

第二,在平台当中,有科技创新成果的企业用户,可以在平台发布自己的支持成果转移的技术成果、科研设备信息、技术服务等,发布后可以在平台中展示出来。需要这些需求的用户则可以登录平台进行浏览与查看。如果用户有中意的内容,可以通过留言的方式留下联系方式和姓名,企业用户可以看到成果下留言咨询的用户,就可以进行线下的技术转移流程,通过互联网+的模式融合科技成果转化流程,提高科技成果转移转化率。

第三,在平台展示创业辅导专家,创业项目路演,创投机构的资讯,为需要创业的用户提供帮助和指导。在平台中还要展示科技创新服务的最新资讯、新闻、政策等,这些信息都由平台及其后台内容管理员发布和审核,通过互联网+模式做了很好的信息资源整合。

第四,为保证系统的稳定性、可靠性和可扩展性,平台采用微服务架构技术,这种架构技术将多个功能模块分成不同的微服务进行分布式部署,在高流量高并发的平台使用环境下起到有效的作用,对扩展性开发也有良好的支持作用。

2 微服务架构技术

在传统的单体架构下,将系统中所有的业务功能模块都集中在一个项目中,最终全部编译打包统一部署,如图2所示。

图2 单一架构图

功能模块会利用同一块存储空间,相互之间通过API接口进行调用交互。虽然开发简单,可以集中式管理。但是在实际应用中具有以下缺点。

(1)开发效率低维护差,因为代码功能耦合度高,重复代码多,修改或拓展某处功能代码,有可能会影响到其他功能的使用或者需要等待其他功能的修改。修改完成需要重新部署构建系统,耗费时间精力,无法快速交付客户需求。

(2)稳定性差,某一个功能模块出现了微小的问题,都有可能导致整个项目无法运行,需要停掉整个系统进行问题排查。

(3)性能因素的考虑,因为所有的功能利用同一块存储空间,如果某一应用模块出现高并发访问,就会影响其他功能模块的访问性能,不适合复杂的应用环境。

为克服上述缺点,微服务架构将一个单体架构的应用,按照所需的业务划分成相互独立运行的程序即微服务[4-6],如图3所示。

图3 微服务架构图

这些微服务之间通过Service Mesh(服务网格)进行通信,从而完成整个系统的业务逻辑。每个微服务可以采用不同的编程语言,使用不同的存储技术。利用各自独立的存储空间,也可以进行各自独立部署。这样做具有以下优点。

(1)每个微服务足够内聚,足够小,代码容易理解。每个微服务都可以有专门开发团队开发,责任分明。如果某个微服务出现了问题,只需排查这一服务的问题,降低了排查问题的成本,有效地提高开发效率。

(2)微服务架构模式可以实现每个微服务经过更改后的独立部署。开发者不再需要协调会对本微服务造成影响的其他微服务变更部署,一经测试即可立即部署,使得持续化部署成为可能。

(3)微服务架构使得每个服务得到了独立的扩展性,可以仅满足每个微服务自己的特定性能需求,进行硬件的配置,或者为提高稳定性增加微服务的实例数。并且微服务的代码框架扩展与升级也不会相互影响,提高了系统的可扩展性,更适合复杂的应用环境。

由图3的架构图可以看出,每个微服务的服务是由Service Mesh(服务网格)[7]进行通信的。Service Mesh可以看作是微服务之间的新一代的通信协议,用于处理服务与服务之间通信的专用基础设施层。本平台使用一种目前最受欢迎的Sidecar模式的Service Mesh,如图4所示。

图4 SideCar模式的Service Mesh

每一个微服务都同步部署有一个Sidecar,微服务与微服务之间的通信代码都写在了Sidecar这个代理服务里面,Sidecar还可以为微服务提供熔断机制、微服务降级、微服务限流、微服务索引、微服务发现、负载均衡、流量监控、日志系统、链路跟踪、动态扩容等一系列便于管理服务的功能。在Flow Control里面可以设置网关,网关用来控制微服务之间的权限。Service Mesh对应用程序透明无侵入,属于轻量级的网络代理,在微服务开发领域受到欢迎。

微服务的目标是通过将系统分解成较小的可组合的部分,以便在需要的时候可以进行独立的部署和开发测试,这种方便的系统架构越来越受到开发者的欢迎。

3 平台的设计思路

互联网+科技创新服务平台是基于微服务的在线服务平台,如图5所示。

图5 互联网+科技创新服务平台微服务模式设计图

按照功能逻辑划分为6个微服务,下面通过分别阐述本平台设计的每个微服务,来说明本平台的设计思路。

用户登录与注册微服务:该微服务用于平台用户的登录与注册。用户会被分为企业用户和普通用户,该微服务还会提供接口来判断用户类别,来验证用户的平台使用权限。

企业信息发布微服务:该微服务是平台的核心微服务,主要实现科技企业用户发布自己能支持成果转移、成果使用的技术成果和科研设备信息,以及所能提供的创新服务还有科技企业自己拥有的专家人才信息。该服务需要与用户登录与注册微服务交互,判断用户是否为企业用户,才能进行信息的发布操作。企业用户将科技创新服务等信息发布后,经过审核,将会在平台中展示出来,供给所需要的用户浏览与咨询。

咨询留言与创新服务申请微服务:如果用户在平台中浏览到了自己所需要的科技创新服务和创业服务信息,需要通过这个微服务进行咨询与申请,用户在所需要的科技创新服务下留下自己的联系方式,发布这个服务的企业用户就会看到,并会进行相应的流程处理。该微服务需要与用户登录与注册微服务交互,来判断用户的登录状态。与企业信息发布微服务和平台内容发布微服务交互,获得企业发布和平台发布的创新服务等信息。与创业服务微服务交互,获得平台发布的创业服务信息。

创业服务微服务:该微服务展示创业辅导专家、创业路演、创投机构的资讯供给需要创业咨询的用户浏览与咨询。与平台内容发布微服务交互,获得平台发布的创业资讯信息。和咨询留言与创新服务申请微服务交互,给申请的用户提供创业服务的资讯信息。

平台内容发布微服务:该微服务主要功能是实现平台后台内容管理员进行发布创业服务资讯,科技创新资讯新闻等内容。与创业服务微服务和科技创新资讯微服务交互提供内容展示,和咨询留言与创新服务申请微服务交互,为需要申请的用户提供咨询服务。

科技创新资讯微服务:该微服务的主要功能是展示科技创新的新闻和政策等一些资讯,供需要的平台用户浏览查看。与平台内容发布微服务交互,获得平台内容发布的资讯信息。

在这些微服务中,为了保证系统在大流量请求中可靠稳定的运行。通过在Service Mesh里面的代码设置,给需要稳定性方面的用户登录与注册微服务、企业信息发布微服务、咨询留言与创新申请微服务提供负载均衡,动态扩容,微服务限流,熔断机制功能。为了便于监控微服务之间是否健康运行,为平台内的所有微服务增加了流量监控、日志管理、链路追踪等功能。这些微服务通过互相交互信息,能够整合管理科技创新服务信息,完成整个技术转移、创新服务、创业服务的服务流程,并且保证了平台功能的独立性、可维护性和性能稳定性。

4 平台模块的实现

4.1 用户登录与注册微服务的实现

用户登录和注册功能构建了Users类。用户注册填写的信息,包括是否为企业用户和普通用户的分类信息,都会构建Users类的对象,再调用对象里的Add()方法将信息保存在数据库中。用户登录时则会通过用户名和密码的验证构建出Users类的对象,再用这个对象获得其他微服务传来的信息,进行一系列的权限操作。

4.2 信息发布类微服务的实现

企业信息发布微服务、创业服务微服务、平台内容发布微服务、科技创新资讯微服务,这4个微服务主要逻辑是发布审核与显示的功能。实现方法是构建了Article的实体类,通过用户填写需要发布的相关内容,构建成Article的对象,调用对象中的Audit()进行审核,调用对象里的Add()方法将信息保存在相应的数据表中。并且Article对象给需要的微服务提供读数据的接口GetArticle(),完成其他微服务之间的交互提供功能服务。

4.3 咨询留言与创新服务申请微服务的实现

构建了FeedBack类,用户填写留言后将会构建FeedBack类的对象,与每个信息发布类微服务做绑定,调用对象中的Add()方法将内容和微服务绑定关系保存到数据库中。信息发布类微服务可通过绑定关系,调用FeedBack类对象的交互方法GetFeedBack(),得到相应的留言咨询,提供创新服务。

4.4 Service Mesh的实现

Service Mesh是微服务之间交互的“路由”,平台中微服务之间的Service Mesh是基于Istio项目实现的,Istio是一个适用于微服务的开源解决方案。在服务器上部署Istio项目后,再将项目中每个微服务部署到Istio下,Istio就可以为它们提供信息通信、负载均衡、服务发现、流量管理等功能,减轻了开发工作。

5 使用反馈

本平台已上线,搭建在新疆维吾尔自治区科技项目服务中心,给全疆范围内的科技企业提供创新服务支持,目前处在试运行阶段。以软件开发者的角度,微服务分布式的架构更容易分配工作,并且由于每个微服务可以由不同代码语言进行编写,便于更大范围地收纳开发人才,减轻开发工作负担。用户反映系统运行稳定,响应速度快。平台为科技创新服务提供了稳定可靠的服务。

6 总结

文中根据互联网+科技创新服务平台的功能模块特点,将平台与微服务技术相结合,对本平台的微服务平台框架进行了分析和设计,并列出了每个微服务之间需要交互的功能。通过微服务架构模式下的平台开发和设计,我们更深刻地认识到,微服务架构模式对科技创新服务平台的开发和部署上提供了很好的稳定性、可靠性和可拓展性,平台在科技成果转移和资源整合的方向上也提供了很好的应用方案。微服务架构是很实用的一种平台架构,这种模式给很多复杂功能以及需要应对大流量访问的系统提供了技术保障,是分布式系统框架的一种新的方向。

猜你喜欢

架构科技用户
基于FPGA的RNN硬件加速架构
功能架构在电子电气架构开发中的应用和实践
基于云服务的图书馆IT架构
科技助我来看云
WebGIS架构下的地理信息系统构建研究
科技在线
关注用户
科技在线
关注用户
关注用户