CN110134374A - 基于Spring cloud微服务架构云化SCADA系统的方法 - Google Patents

基于Spring cloud微服务架构云化SCADA系统的方法 Download PDF

Info

Publication number
CN110134374A
CN110134374A CN201910387721.5A CN201910387721A CN110134374A CN 110134374 A CN110134374 A CN 110134374A CN 201910387721 A CN201910387721 A CN 201910387721A CN 110134374 A CN110134374 A CN 110134374A
Authority
CN
China
Prior art keywords
service
micro services
class
program
cloud
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.)
Withdrawn
Application number
CN201910387721.5A
Other languages
English (en)
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.)
Nanjing Green New Energy Research Institute Co Ltd
Original Assignee
Nanjing Green New Energy Research Institute 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 Nanjing Green New Energy Research Institute Co Ltd filed Critical Nanjing Green New Energy Research Institute Co Ltd
Priority to CN201910387721.5A priority Critical patent/CN110134374A/zh
Publication of CN110134374A publication Critical patent/CN110134374A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

基于Spring cloud微服务架构云化SCADA系统的方法,依据spring cloud微服务架构来开发SCADA系统,使其便于部署到云服务器上。包括如下过程:一、父本创建;二、服务发现及注册;三、服务提供者和服务消费者;四、服务熔断;五、配置中心;六、API网关设置;七、分布式事务一致性管理;八、使用Docker构建微服务。本发明使用Spring Boot开发应用微服务,能够有效实现服务发现、服务消费、服务熔断、API网关、统一配置中心、分布式事务一致性管理、容器构建的功能。

Description

基于Spring cloud微服务架构云化SCADA系统的方法
技术领域
本发明属于程序控制领域,具体涉及一种基于Spring cloud微服务架构云化SCADA系统的方法。
背景技术
微服务架构强调的第一个重点就是业务系统需要彻底的组件化和服务化,原有的单个业务系统会拆分为多个可以独立开发设计,运行和运维的小应用。这些小应用之间通过服务完成交互和集成。每个小应用从前端web ui,到控制层,逻辑层,数据库访问,数据库都完全是独立的一套。在这里我们不用组件而用小应用这个词更加合适,每个小应用除了完成自身本身的业务功能外,重点就是还需要消费外部其它应用暴露的服务,同时自身也将自身的能力朝外部发布为服务。
针对组件化、模块化的单体应用,如何将大量松耦合的应用进行统一化的管理监控,如何保证服务间的相互调用以及分布式事务处理的一致性,如何实现服务发现注册和配置管理,都是微服务架构或者说是分布式架构统一面临的问题。
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程,是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目。大多数SpringBoot项目只需要很少的配置文件。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
Spring Boot框架作用很简单,可实现自动配置,只要存在相应的jar包,Spring就能够自动配置。如果默认配置不能满足需求,还可以替换掉自动配置类,使用其他配置。另外,Spring Boot还集成了嵌入式的Web服务器,系统监控等很多有用的功能,能够快速构建企业及应用程序。
Spring Boot是基于Spring框架进行开发的,也继承了Spring的成熟性。它通过一些内置的固件封装了底层框架的复杂性,以帮助使用者进行微服务的开发。Spring Boot的一大优点是提高开发者的生产力,因为它已经提供了许多通用的功能,例如RESTful HTTP以及嵌入式的web应用。程序运行时,因此很容易进行装配及使用。在许多方面上,它也是一种“微框架”,允许开发者选择在整个框架中他们所需的那部分,而无需使用庞大的、或是不必要的运行时依赖。这也让Boot应用程序能够被打包为多个小单元以进行部署,并且该框架还能够使用构建系统生成可部署文件,例如可运行的Java档案包。
作为一个微服务框架,Boot的很大一部分价值在于它能够无缝地为基于Maven和Gradle的项目提供各种构建工具。通过使用Spring Boot插件,就能够利用该框架的能力,将项目打包为一个轻量级的、可运行的部署包,而除此之外几乎不需要进行任何额外的配置。此外,也可在Spring Initializr网站上选择使用较繁琐的Maven POM的示例,同时需要将应用程序的启动类的地址告诉该插件。而在使用Gradle时则无需进行这方面的配置,因为插件本身就能够找到这个类的地址。
现有技术存在以下缺点:缺少注册、发现等外围方案,缺少外围监控集成方案,缺少外围安全管理方案,缺少REST落地的URI规划方案。因此,亟需一种新的基于Springcloud的微服务构建方法。
发明内容
本发明针对现有技术中的不足,提供一种基于Spring cloud微服务架构云化SCADA系统的方法。
为实现上述目的,本发明采用以下技术方案:
基于Spring cloud微服务架构云化SCADA系统的方法,其特征在于,包括以下步骤:
1)父本创建:
创建一个父项目,以便对项目中的Maven依赖进行统一管理,添加SpringBoot依赖;
2)服务发现及注册:
在父类项目下构建一个用于服务注册的子模块,在配置文件中,添加关于Eureka的依赖以创建注册中心服务;
在注册中心工程的启动类代码中添加注解@EnableEurekaServer、@EnableEurekaClient,直接运行该工程的启动类的main方法,即可启动注册中心服务端;
在其他服务中,首先在依赖配置文件下添加服务注册依赖,其次在application主类中添加注解@EnableEurekaClient,然后在配置文件中添加关于服务注册的配置信息,最后启动服务,EurekaClient即可自动将服务注册到EurekaServer;
3)实现服务消费和负载均衡:
使用RestTemplate消费服务,利用Ribbon或Feign实现服务消费,保障负载均衡;
4)服务熔断:
使用Hystrix来实现服务熔断;
5)配置中心:
在父类项目下构建一个用于服务注册的子模块,在配置文件中,添加关于Config的依赖以创建配置中心服务;
在模块程序的入口类加上注解@EnableConfigServer注解开启配置服务器的功能;在程序的配置文件中配置仓库信息;
在目标程序中添加配置中心依赖,在其配置文件bootstrap .properties中添加关于配置中心相关信息;
配置成功后即可在目标程序中读取配置中心文件内容;
6)API网关设置:
在父类项目下构建一个用于网关的子模块,在配置文件中,添加关于Zuul的依赖以创建api网关服务;
在模块程序的启动类中添加注解@EnableZuulProxy,开启zuul的功能;
配置文件中添加网关相关内容;
7)分布式事务一致性管理:
定义事件的状态类型;
在分布式事务执行异步操作时,记录事件信息及状态到ES中;
使用Reactor从ES中获取事件并产生操作事件流;
执行事件流直至最后一个事件发生的状态即为事件的最终状态,返回客户端;
8)使用Docker构建微服务:
在已经构建完成的微服务模块程序中的pom.xml文件中添加docker依赖,编写DockerFile文件并执行创建docker镜像的maven镜像;
9)根据所构建的微服务来开发SCADA系统。
为优化上述技术方案,采取的具体措施还包括:
进一步地,所述实现服务消费和负载均衡步骤中,首先选择Eureka Server,优先选择在同一个Zone且负载较少的Server;根据用户指定的策略,从Server中取到的服务注册列表选择一个地址;运用Ribbon实现负载均衡,步骤如下:
在父类项目下构建一个用于服务消费的子模块,在配置文件中,添加关于ribbon的依赖以创建服务消费者;
在模块程序启动类中使用注解@bean向程序的IOC注入一个bean:restTemplate;通过注解@LoadBalanced注解表明这个restRemplate开启负载均衡的功能;
编写一个用于消费服务的service类,通过上一步注入IOC容器的restTemplate来消费目标服务的所提供的接口;可直接用的程序名替代了具体的url地址,在ribbon中它会根据服务名来选择具体的服务实例,根据服务实例在请求的时候会用具体的url替换掉服务名;
编写Controller类调用上一步骤服务类,消费目标服务。
进一步地,所述实现服务消费和负载均衡步骤中,创建接口并为接口添加注解即可使用Feign;运用Feign实现负载均衡,步骤如下:
在父类项目下构建一个用于服务消费的子模块,在配置文件中,添加关于Feign的依赖以创建服务消费者;
在模块程序的启动类中,加上@EnableFeignClients注解开启Feign的功能;
编写一个Feign接口,通过@FeignClient(“服务名”),来指定具体调用的服务;
编写controller类,对外暴露一个API接口,通过定义的Feign客户端提供的接口来消费目标服务。
进一步地,所述服务熔断步骤中,运用Ribbon实现负载均衡的熔断步骤如下:
参照Ribbon实现负载均衡的步骤构建服务消费者程序消费指定服务,添加熔断器Hystrix所需依赖;
在模块程序的启动类中添加注解@EnableHystrix注解开启Hystrix熔断器功能;
在消费服务的Service类的方法上加上@HystrixCommand注解;该注解对该方法创建了熔断器的功能,并指定了FallbackMethod熔断方法,熔断方法直接返回一个字符串,以告警服务发生异常,以熔断。
进一步地,所述服务熔断步骤中,运用Feign实现负载均衡的熔断步骤如下:
参照实现负载均衡的步骤构建服务消费者程序消费指定服务,添加熔断器Hystrix所需依赖;
Feign是自带断路器的,在Spring Cloud中,没有默认打开;需要在配置文件中配置打开;修改配置文件中的Feign .hystrix .enabled值,设置为true;
在包含FeignClient的接口的注解中加上fallback的指定类;
编写fallback的指定类实现包含FeignClient的接口,并注入到Ioc容器中,编写熔断提示方法以告警服务发生异常。
进一步地,所述API网关设置步骤中,在网关程序中添加过滤器,以拦截过滤不符合要求的请求或是添加安全认证,以增加安全性。
本发明的有益效果是:
熔断器可以实现快速失败,如果在一段时间内侦测到许多类似的错误,会强迫其以后的多个调用快速失败,不再访问远程服务器。
Spring Cloud Config提供了一种在分布式系统中外部化配置服务器和客户端的支持,配置服务器的中心位置用来管理所有环境下应用的外部属性。Config Server存储后端默认使用git存储配置信息,可以容易支持标记配置环境的版本,同时可以用一个使用广泛的工具管理配置内容;同样支持添加其他存储方式的实现。
API Gateway是微服务架构中不可或缺的部分。通过API Gateway可以统一向外部系统提供REST API,Spring Cloud中使用Zuul作为API Gateway,Zuul提供了动态路由、监控、回退、安全等功能;Zuul并不依赖Eureka,可以脱离Eureka运行。
在微服务架构中使用事件溯源处理状态有很多的好处:聚合可以被认为是产生任何对象的一致性状态;它提供校订方法用来进行重播产生对象中状态变化的历史;它能使用事件流提供分析数据许多必要输入;能够采取补偿方式对不一致应用状态实现事件回滚;它也避免了复杂的微服务之间的同步,为微服务之间的异步非阻塞操作铺平了道路;使用Reactor的进行异步操作的处理聚合,再对数据溯源进行操作,以保证操作事务的最终一致性及微服务间异步非阻塞操作。
由于微服务架构里面强调了单个组件本身是可以在独立的进程里面运行,各个组件之间在部署的时候就能够做到进程级别的隔离。那么一台服务器我们可能需要初始化几十个甚至更多的进程来进行应用组件的部署。为了保持进程的隔离性,我们可以用虚拟机,但是当几十个进程都完全用独立的虚拟机就不现实的,而这个问题的解决刚好就是利用PaaS平台里面的轻量Docker容器来做这个事情,每个Docker是独立的容器刚好又完全做到进程级别的隔离,资源占用率又最小,这些特点刚好满足微服务架构的开发测试和自动化部署。
具体实施方式
本发明使用Spring Boot开发应用微服务,并实现服务发现、服务消费、服务熔断、api网关、统一配置中心、分布式事务一致性管理、容器构建的功能。基于Spring cloud的微服务构建方法,包括如下过程:
一、父本创建:
创建一个父项目,以便对项目中的Maven依赖进行统一管理,添加SpringBoot依赖。
二、服务发现及注册:
服务发现是微服务架构中关键原则之一,手动配置每个客户端或某种形式的约定较为困难,并且很脆弱;使用Eureka可保障CAP理论中的A和P(即可用性和分区容错性)。
具体的服务发现及注册的步骤如下:
在父类项目下构建一个用于服务注册的子模块,在配置文件中,添加关于Eureka的依赖以创建注册中心服务;在注册中心工程的启动类代码中添加注解@EnableEurekaServer、@EnableEurekaClient,直接运行该工程的启动类的main方法,即可启动注册中心服务端;在其他服务中,首先在依赖配置文件下添加服务注册依赖,其次在application主类中添加注解@EnableEurekaClient,然后在配置文件中添加关于服务注册的配置信息,最后启动服务,EurekaClient即可自动将服务注册到EurekaServer;打开注册中心服务的端口地址,可观察到注册在线的服务实例。
三、实现服务消费和负载均衡:
使用RestTemplate消费服务(或者例如HttpClient之类的Http工具),集群环境下每个服务部署多个实例,利用Ribbon或Feign实现服务消费者消费服务提供者的负载均衡。
1、Ribbon:Ribbon是一个客户端负载均衡器,运行在客户端上。它是一个经过了云端测试的IPC库,可以很好地控制HTTP和TCP客户端的一些行为;Feign已经默认使用了Ribbon。
Ribbon工作分为两步:选择Eureka Server,它优先选择在同一个Zone且负载较少的Server;根据用户指定的策略,在从Server中取到的服务注册列表选择一个地址。
运用Ribbon实现负载均衡的步骤:
在父类项目下的构建一个用于服务消费的子模块,在配置文件中,添加关于ribbon的依赖以创建服务消费者(服务消费者也需遵从服务发现注册服务的步骤注册上发现服务);
在模块程序启动类中使用注解@bean向程序的IOC注入一个bean:restTemplate,通过注解@LoadBalanced注解表明这个restRemplate开启负载均衡的功能;
编写一个用于消费服务的service类,通过上一步注入IOC容器的restTemplate来消费目标服务的所提供的接口;可直接用的程序名替代了具体的url地址,在ribbon中它会根据服务名来选择具体的服务实例,根据服务实例在请求的时候会用具体的url替换掉服务名;
编写Controller类调用上一步骤服务类,消费目标服务。
2、Feign:Feign是一个声明式的web service客户端,它使得编写web service客户端更加容易,创建接口并为接口添加注解即可使用Feign。Feign可以使用Feign注解或JAXRS注解,还支持热插拔的编码器和解码器。Spring Cloud为Feign添加了Spring MVC的注解支持,并整合Eureka和Ribbon提供负载均衡。
运用Feign实现负载均衡的步骤:
在父类项目下的构建一个用于服务消费的子模块,在配置文件中,添加关于feign的依赖以创建服务消费者(服务消费者也需遵从服务发现注册服务的注册上发现服务);在模块程序的启动类中,加上@EnableFeignClients注解开启Feign的功能;
编写一个feign接口,通过@FeignClient(“服务名”),来指定具体调用的服务;
编写controller类,对外暴露一个的API接口,通过上一步骤定义的Feign客户端提供的接口来消费目标服务。
四、服务熔断:
在微服务架构中通常会有多个服务层调用,基础服务的故障可能会导致级联故障,进而导致整个系统不可用,这种现象称为雪崩效应,为避免雪崩效应,使用Hystrix来实现熔断器。熔断器可以实现快速失败,如果在一段时间内侦测到许多类似的错误,会强迫其以后的多个调用快速失败,不再访问远程服务器。熔断器也可以使用应用程序诊断错误是否已经修正,若已修正,应用程序会尝试再次调用操作。
1、运用Ribbon实现负载均衡的熔断步骤:
参照Ribbon实现负载均衡的步骤构建服务消费者程序消费指定服务,添加熔断器Hystrix所需依赖;
在模块程序的启动类中添加注解@EnableHystrix注解开启Hystrix熔断器功能;
在消费服务的Service类的方法上加上@HystrixCommand注解。该注解对该方法创建了熔断器的功能,并指定了fallbackMethod熔断方法,熔断方法可直接返回了一个字符串,以告警服务发生异常,以熔断。
2、运用Feign实现负载均衡的熔断步骤:
参照实现负载均衡的步骤构建服务消费者程序消费指定服务,添加熔断器Hystrix所需依赖;
Feign是自带断路器的,在Spring Cloud中,没有默认打开。需要在配置文件中配置打开。修改配置文件中的feign .hystrix .enabled值,设置为true;
在包含FeignClient的接口的注解中加上fallback的指定类;
编写fallback的指定类实现包含FeignClient的接口,并注入到Ioc容器中,可编写熔断提示方法以告警服务发生异常。
五、配置中心:
运用Config实现配置中心的步骤:
在父类项目下构建一个用于服务注册的子模块,在配置文件中,添加关于Config的依赖以创建配置中心服务;
在模块程序的入口类加上注解@EnableConfigServer注解开启配置服务器的功能;
在程序的配置文件中配置配置仓库信息,具体如下:
spring .application .name=config-server
server .port=8888
spring .cloud .config .server .git .uri=https://github .com/forezp/SpringcloudConfig/
spring .cloud .config .server .git .searchPaths=respo
spring .cloud .config .label=master
spring .cloud .config .server .git .username=your username
spring .cloud .config .server .git .password=your password
在目标程序中添加配置中心依赖,在其配置文件bootstrap .properties中添加关于配置中心相关信息;
配置成功后即可在目标程序中读取配置中心文件内容。
六、API网关:
API Gateway是微服务架构中不可或缺的部分;通过API Gateway可以统一向外部系统提供REST API,Spring Cloud中使用Zuul作为API Gateway,Zuul提供了动态路由、监控、回退、安全等功能;Zuul并不依赖Eureka,可以脱离Eureka运行。
Zuul实现api网关的步骤:
在父类项目下的构建一个用于网关的子模块,在配置文件中,添加关于Zuul的依赖以创建api网关服务(服务消费者也需遵从服务发现注册服务的注册上发现服务);
在模块程序的启动类中添加注解@EnableZuulProxy,开启zuul的功能;
在配置文件中添加网关相关内容;
若是想实现服务过滤,可直接在网关程序中添加过滤器,以拦截过滤不符合要求的请求或是添加安全认证,以增加安全性。
七、分布式事务一致性管理:
当建立微服务时,我们被强迫面对结构状态的最终一致性问题,这是因为每个微服务都特定暴露自己拥有的数据库资源,每个数据库都根据自己类型配置了不同的一致性和高可用性权衡策略。
Event sourcing(事件溯源)是借鉴数据库事务日志的一种数据持久方式,在ES中,事务单元变得更细粒度,使用一系列有序的事件来代表存储在数据库中的领域模型状态,一旦一个事件被加入事件日志,它就不能被移走或重新排序,事件被认为是不可变的,事件序列只能被追加方式存储。
运用Reactor实现分布式事务一致性的步骤:
定义事件的状态类型;
在分布式事务执行异步操作时,记录事件信息及状态到ES中(标准的存储库是ApacheKafka);
使用Reactor从ES中获取事件并才产生操作事件流;
执行事件流直至最后一个事件发生的状态即为事件的最终状态,返回客户端。
八、使用Docker构建微服务:
在已经构建完成的微服务模块程序中的pom .xml文件中中添加docker依赖即可。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

Claims (6)

1.基于Spring cloud微服务架构云化SCADA系统的方法,其特征在于,包括以下步骤:
1)父本创建:
创建一个父项目,用于对项目中的Maven依赖进行统一管理,添加SpringBoot依赖;
2)服务发现及注册:
在父类项目下构建一个用于服务注册的子模块,在配置文件中,添加关于Eureka的依赖以创建注册中心服务;
在注册中心工程的启动类代码中添加注解@EnableEurekaServer、@EnableEurekaClient,直接运行该工程的启动类的main方法,即可启动注册中心服务端;
在其他服务中,首先在依赖配置文件下添加服务注册依赖,其次在application主类中添加注解@EnableEurekaClient,然后在配置文件中添加关于服务注册的配置信息,最后启动服务,EurekaClient即可自动将服务注册到EurekaServer;
3)实现服务消费和负载均衡:
使用RestTemplate消费服务,保障服务消费的负载均衡;
4)服务熔断:
使用Hystrix来实现服务熔断;
5)配置中心:
在父类项目下构建一个用于服务注册的子模块,在配置文件中,添加关于Config的依赖以创建配置中心服务;
在模块程序的入口类加上注解@EnableConfigServer注解开启配置服务器的功能;在程序的配置文件中配置仓库信息;
在目标程序中添加配置中心依赖,在其配置文件bootstrap .properties中添加关于配置中心相关信息;
配置成功后即可在目标程序中读取配置中心文件内容;
6)API网关设置:
在父类项目下构建一个用于网关的子模块,在配置文件中,添加关于Zuul的依赖以创建api网关服务;
在模块程序的启动类中添加注解@EnableZuulProxy,开启zuul的功能;
配置文件中添加网关相关内容;
7)分布式事务一致性管理:
定义事件的状态类型;
在分布式事务执行异步操作时,记录事件信息及状态到ES中;
使用Reactor从ES中获取事件并产生操作事件流;
执行事件流直至最后一个事件发生的状态即为事件的最终状态,返回客户端;
8)使用Docker构建微服务:
在已经构建完成的微服务模块程序中的pom.xml文件中添加docker依赖,编写DockerFile文件并执行创建docker镜像的maven镜像;
9)根据所构建的微服务来开发SCADA系统。
2.如权利要求1所述的基于Spring cloud微服务架构云化SCADA系统的方法,其特征在于:所述实现服务消费和负载均衡步骤中,首先选择Eureka Server,优先选择在同一个Zone且负载较少的Server;根据用户指定的策略,从Server中取到的服务注册列表选择一个地址;运用Ribbon实现负载均衡,步骤如下:
在父类项目下构建一个用于服务消费的子模块,在配置文件中,添加关于ribbon的依赖以创建服务消费者;
在模块程序启动类中使用注解@bean向程序的IOC注入一个bean:restTemplate;通过注解@LoadBalanced注解表明这个restRemplate开启负载均衡的功能;
编写一个用于消费服务的service类,通过上一步注入IOC容器的restTemplate来消费目标服务的所提供的接口;直接用程序名替代具体的url地址,在ribbon中会根据服务名来选择具体的服务实例,根据服务实例在请求的时候用具体的url替换掉服务名;
编写Controller类调用上一步骤服务类,消费目标服务。
3.如权利要求1所述的基于Spring cloud微服务架构云化SCADA系统的方法,其特征在于:所述实现服务消费和负载均衡步骤中,创建接口并为接口添加注解即可使用Feign;运用Feign实现负载均衡,步骤如下:
在父类项目下构建一个用于服务消费的子模块,在配置文件中,添加关于Feign的依赖以创建服务消费者;
在模块程序的启动类中,加上@EnableFeignClients注解开启Feign的功能;
编写一个Feign接口,通过@FeignClient,来指定具体调用的服务;
编写controller类,对外暴露一个API接口,通过定义的Feign客户端提供的接口来消费目标服务。
4.如权利要求2所述的基于Spring cloud微服务架构云化SCADA系统的方法,其特征在于:所述服务熔断步骤中,运用Ribbon实现负载均衡的熔断步骤如下:
构建服务消费者程序消费指定服务,添加熔断器Hystrix所需依赖;
在模块程序的启动类中添加注解@EnableHystrix注解开启Hystrix熔断器功能;
在消费服务的Service类的方法上加上@HystrixCommand注解;该注解对该方法创建了熔断器的功能,并指定了FallbackMethod熔断方法,熔断方法直接返回一个字符串,以告警服务发生异常,以熔断。
5.如权利要求3所述的基于Spring cloud微服务架构云化SCADA系统的方法,其特征在于:所述服务熔断步骤中,运用Feign实现负载均衡的熔断步骤如下:
构建服务消费者程序消费指定服务,添加熔断器Hystrix所需依赖;
修改配置文件中的Feign .hystrix .enabled值,设置为true;
在包含FeignClient的接口的注解中加上fallback的指定类;
编写fallback的指定类实现包含FeignClient的接口,并注入到Ioc容器中,编写熔断提示方法以告警服务发生异常。
6.如权利要求1所述的基于Spring cloud微服务架构云化SCADA系统的方法,其特征在于:所述API网关设置步骤中,在网关程序中添加过滤器,以拦截过滤不符合要求的请求或是添加安全认证,以增加安全性。
CN201910387721.5A 2019-05-10 2019-05-10 基于Spring cloud微服务架构云化SCADA系统的方法 Withdrawn CN110134374A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910387721.5A CN110134374A (zh) 2019-05-10 2019-05-10 基于Spring cloud微服务架构云化SCADA系统的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910387721.5A CN110134374A (zh) 2019-05-10 2019-05-10 基于Spring cloud微服务架构云化SCADA系统的方法

Publications (1)

Publication Number Publication Date
CN110134374A true CN110134374A (zh) 2019-08-16

Family

ID=67576991

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910387721.5A Withdrawn CN110134374A (zh) 2019-05-10 2019-05-10 基于Spring cloud微服务架构云化SCADA系统的方法

Country Status (1)

Country Link
CN (1) CN110134374A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110505427A (zh) * 2019-08-27 2019-11-26 杭州觅境寻味农业科技有限公司 基于视频通话和智能电子秤的电商购物平台系统及方法
CN110851278A (zh) * 2019-11-08 2020-02-28 南京国电南自电网自动化有限公司 一种基于微服务架构的配网自动化主站移动应用服务管理方法和系统
CN110968296A (zh) * 2019-12-03 2020-04-07 政采云有限公司 一种数据获取方法、装置、设备及可读存储介质
CN111045648A (zh) * 2019-12-11 2020-04-21 盈佳云创科技(深圳)有限公司 一种微服务开发工具
CN111198727A (zh) * 2020-01-06 2020-05-26 成都库珀区块链科技有限公司 微服务接口数据聚合系统及方法
CN112000448A (zh) * 2020-07-17 2020-11-27 北京计算机技术及应用研究所 基于微服务架构的应用管理方法
CN112134727A (zh) * 2020-08-31 2020-12-25 南京卓威研信息技术有限公司 基于容器技术的网关机运行数据交换方法
CN112258162A (zh) * 2020-11-04 2021-01-22 广西电网有限责任公司 一种一站式信息应用系统
CN112486466A (zh) * 2020-12-11 2021-03-12 光大兴陇信托有限责任公司 一种基于微服务架构的快速通用基础框架实现方法
CN113419713A (zh) * 2021-07-20 2021-09-21 国家电网有限公司客户服务中心 一种面向网上国网业务能力的api封装编排方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109597610A (zh) * 2018-12-10 2019-04-09 南京华苏科技有限公司 一种基于微服务架构的应用结构组件化构建方法
CN109710238A (zh) * 2018-12-20 2019-05-03 国云科技股份有限公司 一种基于Spring Cloud的代码生成方法
CN109814909A (zh) * 2019-01-18 2019-05-28 南京绿新能源研究院有限公司 基于Spring cloud微服务架构云化SCADA系统的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109597610A (zh) * 2018-12-10 2019-04-09 南京华苏科技有限公司 一种基于微服务架构的应用结构组件化构建方法
CN109710238A (zh) * 2018-12-20 2019-05-03 国云科技股份有限公司 一种基于Spring Cloud的代码生成方法
CN109814909A (zh) * 2019-01-18 2019-05-28 南京绿新能源研究院有限公司 基于Spring cloud微服务架构云化SCADA系统的方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110505427A (zh) * 2019-08-27 2019-11-26 杭州觅境寻味农业科技有限公司 基于视频通话和智能电子秤的电商购物平台系统及方法
CN110851278A (zh) * 2019-11-08 2020-02-28 南京国电南自电网自动化有限公司 一种基于微服务架构的配网自动化主站移动应用服务管理方法和系统
CN110968296B (zh) * 2019-12-03 2023-07-25 政采云有限公司 一种数据获取方法、装置、设备及可读存储介质
CN110968296A (zh) * 2019-12-03 2020-04-07 政采云有限公司 一种数据获取方法、装置、设备及可读存储介质
CN111045648A (zh) * 2019-12-11 2020-04-21 盈佳云创科技(深圳)有限公司 一种微服务开发工具
CN111045648B (zh) * 2019-12-11 2024-03-15 盈佳云创科技(深圳)有限公司 一种微服务开发装置
CN111198727A (zh) * 2020-01-06 2020-05-26 成都库珀区块链科技有限公司 微服务接口数据聚合系统及方法
CN111198727B (zh) * 2020-01-06 2023-12-29 库珀科技集团有限公司 微服务接口数据聚合系统及方法
CN112000448A (zh) * 2020-07-17 2020-11-27 北京计算机技术及应用研究所 基于微服务架构的应用管理方法
CN112000448B (zh) * 2020-07-17 2023-08-25 北京计算机技术及应用研究所 基于微服务架构的应用管理方法
CN112134727A (zh) * 2020-08-31 2020-12-25 南京卓威研信息技术有限公司 基于容器技术的网关机运行数据交换方法
CN112258162A (zh) * 2020-11-04 2021-01-22 广西电网有限责任公司 一种一站式信息应用系统
CN112486466A (zh) * 2020-12-11 2021-03-12 光大兴陇信托有限责任公司 一种基于微服务架构的快速通用基础框架实现方法
CN113419713A (zh) * 2021-07-20 2021-09-21 国家电网有限公司客户服务中心 一种面向网上国网业务能力的api封装编排方法

Similar Documents

Publication Publication Date Title
CN109814909A (zh) 基于Spring cloud微服务架构云化SCADA系统的方法
CN108446111A (zh) 一种基于Spring cloud的微服务构建方法
CN110134374A (zh) 基于Spring cloud微服务架构云化SCADA系统的方法
Li et al. Blockchain-based digital twin sharing platform for reconfigurable socialized manufacturing resource integration
Candan et al. Frontiers in information and software as services
US10521747B2 (en) System and method for providing a scalable semantic mechanism for policy-driven assessment and effective action taking on dynamically changing data
CN107077389A (zh) 用于在多租户应用服务器环境中使用全局运行时的系统和方法
Tulloch Introducing Windows Azure for IT Professionals
US11902354B2 (en) Cloud intelligence data model and framework
CA2789393A1 (en) Method, computer program product and computer-readable storage medium for the generic creation of a structure tree for describing an it process
Srinivasa et al. Guide to high performance distributed computing
Akhtar Big Data Architect’s Handbook: A guide to building proficiency in tools and systems used by leading big data experts
Shao Towards effective and intelligent multi-tenancy SaaS
Althar et al. Building intelligent integrated development environment for IoT in the context of statistical modeling for software source code
US20230176297A1 (en) Detecting multiple operator pattern services making conflicting resource modifications
Girbea et al. Efficient address space generation for an OPC UA server
Pham et al. Autonomic fine-grained migration and replication of component-based applications across multi-clouds
Data Cloud
Camarinha-Matos et al. Cloud-based collaboration spaces for enterprise networks
Michalski et al. Implementing Azure Cloud Design Patterns: Implement efficient design patterns for data management, high availability, monitoring and other popular patterns on your Azure Cloud
Poudel A comparative study of project management system web applications built on ASP. Net core and laravel MVC frameworks
Freeman Building Serverless Microservices in Python: A complete guide to building, testing, and deploying microservices using serverless computing on AWS
Zahoor et al. A formal approach for the identification of redundant authorization policies in Kubernetes
Waschke Cloud-Specific Standards: A Tide to Raise All Boats
Ajitha et al. ASSESSING PERFORMANCE OF AGENTS IN A MAS: AN EXPERIMENTAL STUDY.

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
WW01 Invention patent application withdrawn after publication

Application publication date: 20190816

WW01 Invention patent application withdrawn after publication