微服务及其在app自动化领域的应用

news2024/11/30 12:44:40

微服务是一种软件开发技术- 面向服务的体系结构(SOA)架构样式的一种变体,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据上下文,选择合适的语言、工具对其进行构建。总结一下,微服务主要特点如下:

  1. 微服务主要针对后端业务开发。
  2. 后端服务被分割为多个相对独立的微服务(模块)。
  3. 微服务之间可以相互调用。
  4. 微服务独立编程和实现,甚至不同的微服务可以使用完全不同的开发语言来实现。
  5. 微服务独立部署,各个微服务互不相关。

微服务优点

  1. 易于开发和维护。由于微服务单个模块就相当于一个项目,开发这个模块我们就只需关心这个模块的逻辑即可,代码量和逻辑复杂度都会降低,从而易于开发和维护。
  2. 技术栈不受限。比如订单微服务和电影微服务原来都是用java写的,现在我们想把电影微服务改成nodeJs技术,这是完全可以的,而且由于所关注的只是电影的逻辑而已,因此技术更换的成本也就会少很多。
  3. 部署简单快捷。在开发中发现了一个问题,如果是单体架构的话,我们就需要重新发布并启动整个项目,非常耗时间,但是微服务则不同,哪个模块出现了bug我们只需要解决那个模块的bug就可以了,解决完bug之后,我们只需要重启这个模块的服务即可,部署相对简单,不必重启整个项目从而大大节约时间。
  4. 按需伸缩。我们上面说了单体架构在想扩展某个模块的性能时不得不考虑到其它模块的性能会不会受影响,对于我们微服务来讲,完全不是问题,电影模块通过什么方式来提升性能不必考虑其它模块的情况。

微服务在app自动化领域的应用

通常我们关注的app自动化主要focus在移动端脚本,而往往忽略了后端需求,比如远程控制设备,调度设备,实时更新脚本等等。一般情况都是另外独立开发一个后端服务来实现所有功能,不仅成本高,周期长,后期维护更是麻烦。不难发现有很大一部分后端需求是一致的,比如设备管理,脚本管理等等。所以我们可以把后端分割为SaaS(所有后端通用的需求)和微服务(个性化的需求)两部分,一般情况下使用SaaS就足够了,如果有其他需求则直接编写微服务脚本实现,简单快捷,成本低,维护更是方便。下面以冰狐智能辅助的微服务为例进行实际分析。(点击这里查看微服务实战demo)

微服务架构

冰狐智能辅助的微服务使用JS脚本实现,支持模块化管理、高并发访问、数据库访问,主要用于扩展后端服务,或者创建其他独立的业务逻辑。 可用于实现移动端和服务端访问请求,以及通用的业务处理和数据查询服务等,架构图如下:

 由上图可知,冰狐智能辅助的微服务主要由移动端接口、服务等接口、业务处理服务、数据查询服务和微服务脚本组成,下面分别介绍。

微服务脚本

冰狐智能辅助的微服务脚本使用的是js,一个微服务可以由一个或者多个js脚本组成,直接独立编写js,独立部署,非常方便。

移动端接口

当移动端脚本开发者需要调用自定义的后端服务功能时使用callMicroService,比如访问后端数据库、获取用户和设备相关信息等。移动端接口可以指定脚本和函数名(默认函数名为main),params直接透传给微服务脚本相应的函数,函数的返回值即为接口返回值。

 

服务端接口

当开发者需要让第三方调用开发者自定义的后端服务功能或者直接使用冰狐SaaS时使用该接口。第三方服务端可以调用open api:/api/call_micro_service来调用微服务。服务端接口可以指定脚本和函数名(默认函数名为main),query参数params直接透传给微服务脚本相应的函数,函数返回值为接口返回值。

 

业务处理服务

当用户需要从外部录入数据或者需要触发某个行为或者调度设备时可以使用业务处理服务,实际处理过程由微服务脚本完成。若需要让用户点击界面执行某个业务,则可以创建业务处理服务,可以让用户输入参数,然后触发云端的微服务(服务参数直接透传给微服务脚本)。

 

数据查询服务

当用户需要查看系统内部数据时(可以类比于数据报表功能),可以使用数据查询模块来实现,比如查询所有上传的用户资料等。

 

实战demo

实战demo请点击这里

总结

本文详细讲解了微服务的基本概念,和其在app自动化领域的应用,并给出了基于冰狐智能辅助的微服务实战demo。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/3061.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5款可视化工具优缺点比对,谁赢了?

利用Excel表格进行汇报,底下坐着的领导可能会看起来眼花缭乱,但如果是以图表可视化的形式展现出来,那可简洁明了多了,不仅仅可以看到某个项目近几个月的走势,并且还能知道之后的决策。 可视化图表用什么工具做&#xf…

FP8训练调研

FP8训练调研 一、FP8训练相关技术要点总结 1、基于块的累加技术,减小低精度数之间相加的累积误差 2、随机舍入技术代替四舍五入,降低舍入误差 3、混合FP8技术,用1-4-3进行前向,1-5-2进行反向 4、设置指数偏移,使F…

windows搭建WebDAV服务,并内网穿透公网访问【无公网IP】

自己用Windows Server搭建了家用NAS主机,WebDAV的文件共享方式当然也是必不可少的。 本文使用的是WIN10 专业版。 1. 安装IIS必要WebDav组件 1.1 打开控制面板,查看方式改为“类别”,进入“程序”,“启用或关闭Windows功能” 1…

数据结构链表之无头单向循环链表的实现

文章目录前言1.链表的相关介绍1.什么是节点2.链表和顺序表的对比3.链表的种类2.链表的实现1.节点的定义和创建2.链表的相关函数接口的实现1.链表的创建2.数据的插入头插尾插指定位置插入3.数据的删除头删尾删指定位置删除4.打印显示节点数据5.数据查找6.链表销毁3.总结前言 之…

2022新版加壳工具-支持.NET虚拟化加密

.NET 虚拟化保护 .NET 程序的保护技术在对抗中不断演进,出现了控制流混淆、名称混淆、文件加壳、动态方法、JIT 加密等保护技术,这些保护技术都有其各自的优缺点,虽然组合起来也能达到一定的效果,但近几年已经流传出一些脱壳机和…

单点架构、集群架构、服务化架构、SOA、微服务到底有什么联系和关系?

本篇参考总结 IT老齐的学习笔记 原视频SOA面向服务架构 原视频智慧城市实践指南 (书籍-SOA概述) 最近我在负责研发智慧园区的智慧平台产品,目前需求阶段和设计阶段已经完成,正式开始开发阶段,但是作为一个算法类学习者…

redies基本数据结构

nosql数据库 和sql结构的数据库 1.结构化的,不设置表之间的结构 2.没有主外键约束,之间没有关联 3.nosql,其他的数据库不能使用redies的语法 4.没有事务,不符合ACID 5.redies存储在内存中,速度非常快 是一个键值…

Docker入门学习:基本概念、安装、命令、简单使用

前言 一、基本概念 1、Docker镜像 镜像就是一个文件,例如我们的应用镜像、环境镜像(例如nginx、mysql等),镜像是创建Docker容器的基础。 2、Docker容器 Docker容器类似于一个沙箱(例如做支付的时候的支付宝的沙箱…

【Java|golang】1668. 最大重复子字符串

给你一个字符串 sequence ,如果字符串 word 连续重复 k 次形成的字符串是 sequence 的一个子字符串,那么单词 word 的 重复值为 k 。单词 word 的 最大重复值 是单词 word 在 sequence 中最大的重复值。如果 word 不是 sequence 的子串,那么重…

系统学习SpringFramework:SpringBean的注入方式

本篇内容包括:Spring 容器简介(什么是容器、容器如何工作)、SpringBean 注入方式(SpringBean 注入方式分类、Autowiring 自动绑定)以及 获取 Spring Bean 的工具类! 一、Spring 容器 1、什么是容器 Sprin…

薪资17K,在字节外包工作是一种什么体验...

我17年毕业于一个普通二本学校,电子信息工程学院,是一个很不出名的小本科。大学期间专业知识也没有去认真的学习,所以毕业的时候就随便找了一份工作,在一个小公司做功能测试。 记得那时候税前薪资大概是7k左右,因为是…

SpringBoot:(四)底层注解详解

笔记来源:【尚硅谷】SpringBoot2零基础入门教程(spring boot2干货满满) 文章目录4.1 Configuration详解总结4.2 Component、Controller、Service、Repository、Bean4.3 Import导入组件4.4 Conditional条件装配4.5 ImportResource导入Spring配…

刷题记录(NC20313 [SDOI2008]仪仗队)

NC20313 [SDOI2008]仪仗队 题目链接 关键点: 1、首先分析题目,对于只能看到的点,设原点坐标为(0,0),则除去横纵坐标上能看到的两点(0, 1)、(1, 0),和对角线上的(1, 1)&#xff0c…

Redis相关知识

目录 一,Redis的命令操作 1.Redis简介 2.Redis安装(按步骤执行以下步骤即可) 3.redis命令 二,java代码操作Redis 1.java连接Redis 2.java操作Redis 三,Spring注解式缓存Redis 1.Spring整合Redis 2.redis注解式缓…

2023年,前端开发未来可期

☆ 对于很多质疑,很多不解,本文将从 △ 目前企业内前端开发职业的占比; △ 目前业内开发语言的受欢迎程度; △ 近期社区问答活跃度; 等维度来说明目前前端这个职业的所处位置。 ☆ 还有强硬的干货,通过深入…

Flask快速白嫖

一、快速搭建 有前面Flask的学习,相信大家对flask已经有一个不错的了解,今天教大家如何快速搭建一个web网页!!!. 博主不是专门做软件的,但是需求里又有网站的需要,所以怎么办呢? 那…

python动态规划算法实例详解

文章目录python动态规划算法实例详解一、什么是动态规划?二、新视角:从斐波那契数列看动态规划三、实例扩展(爬楼梯)1. 题目描述2. 示例示例1示例23. 解析4. 代码实现四、结语💖💖💖&#x1f49…

特性Attribute

浅浅了解一下,可影响程序集的运行 [Obsolete]:生成表提示,有true报错提示,无true是提醒提示 是什么:特性就是一个类(可是自定义类),这个类直接/间接继承自Attribute类,一般类名以Attribute结尾&#xff0c…

ReentrantLock与ReentrantReadWirteLock 原理

ReentrantLock原理(**) 讲解除了FairLock部分是FairLock流程,其余均NonFairLock源码 (FairLock部分会讲解两者不同) 1. NonFairLock实现原理 加锁解锁流程 先从构造器开始看,默认为非公平锁实现 public …

Commvault+XSKY 推出基于 Object Lock 的防勒索病毒联合方案

从桶粒度到对象粒度随着对象存储的普及,对象存储已经成为最流行的备份目的(backup target) 存储。XSKY星辰天合作为国内领先的对象存储厂商,Commvault 作为全球领先的数据保护厂商,双方一直有紧密的合作。特别在 2020 年&#xff…