一篇文章掌握WebService服务、工作原理、核心组件、主流框架
目录
1、WebService定义
解决问题:
2、WebService的工作原理
2.1 实现一个完整的Web服务包括以下步骤
2.2 调用方式
3、Web Service的核心组件
3.1 XML
3.2 SOAP
3.3 WSDL
3.4 UDDI
4、主流框架
4.1 AXIS(已淘汰)
4.2 XFire
4.3 CXF
5、Soap协议详解
1.Soap协议是什么
2.认识Soap
3.结论
4.SOAP小总结
6、WSDL详解
1.types
2.message
3.portType
4.binding
7、UDDI详解
1、WebService定义
Web Service是一个SOA(面向服务架构)的应用程序,它是不依赖于语言,不依赖于平台,可以
实现不同的语言(通过xml 描述)间的相互调用,通过Internet进行基于Http协议的网络应用间的
交互。
通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。
简单可以理解成:WebService是一种跨编程语言和跨操作系统平台的远程调用技术。
从表面上看,WebService就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的
API。
这就是说,你能够用编程的方法通过Web调用来实现某个功能的应用程序。
从深层次上看,Web Service是一种新的Web应用程序分支,它们是自包含、自描述、模块化的应
用,可以在网络(通常为Web)中被描述、发布、查找以及通过Web来调用。
解决问题:
-
不同系统、不同平台、不同语言之间的通信访问和调用。
-
应用程序的集成,不同业务的整合。
WebService实质就是实现应用程序之间通信,有两种应用程序通信的方法:
-
RPC 远程调用。
在客户端,RPC的通常方式是:实例化一个远程对象,并调用其方法和属性。
-
消息传递。
WebService就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,
你能够用编程的方法通过Web来调用这个应用程序。我们把调用这个WebService 的应用程序叫做
客户。
2、WebService的工作原理
Web服务有两层含义:
1、它是指封装成单个实体并发布到网络上的功能集合体;
2、它是指功能集合体被调用后所提供的服务。
简单地讲,Web服务是一个URL资源,客户端可以通过编程方式请求得到它的服务,而不需要知
道所请求的服务是怎样实现的,这一点与传统的分布式组件对象模型不同。
Web服务的体系结构是基于Web服务提供者、Web服务请求者、Web服务中介者三个角色和发
布、发现、绑定三个动作构建的。
简单地说,Web服务提供者就是Web服务的拥有者,它耐心等待为其他服务和用户提供自己已有
的功能。
Web服务请求者就是Web服务功能的使用者,它利用SOAP消息向Web服务提供者发送请求以获得
服务。
Web服务中介者的作用是把一个Web服务请求者与合适的Web服务提供者联系在一起,它充当管
理者的角色,一般是UDDI。
这三个角色是根据逻辑关系划分的,在实际应用中,角色之间很可能有交叉:一个Web服务既可以
是Web服务提供者,也可以是Web服务请求者,或者二者兼而有之。
显示了Web服务角色之间的关系:其中,“发布”是为了让用户或其他服务知道某个Web服务的存在
和相关信息;“查找(发现)”是为了找到合适的Web服务;“绑定”则是在提供者与请求者之间建立
某种联系。
2.1 实现一个完整的Web服务包括以下步骤
-
Web服务提供者设计实现Web服务,并将调试正确后的Web服务通过Web服务中介者发布,并在UDDI注册中心注册; (发布)
-
Web服务请求者向Web服务中介者请求特定的服务,中介者根据请求查询UDDI注册中心,为请求者寻找满足请求的服务; (发现)
-
Web服务中介者向Web服务请求者返回满足条件的Web服务描述信息,该描述信息用WSDL写成,各种支持Web服务的机器都能阅读;(发现)
-
利用从Web服务中介者返回的描述信息生成相应的SOAP消息,发送给Web服务提供者,以实现Web服务的调用;(绑定)
-
Web服务提供者按SOAP消息执行相应的Web服务,并将服务结果返回给Web服务请求者。(绑定)
2.2 调用方式
webservice 的调用有3种方式:
-
httpget
-
httppost
-
httpsoap
soap的优点是可以传递结构化的数据,而前两种不行。
btw, soap 最终也是使用 HTTP 传送 XML。
3、Web Service的核心组件
3.1 XML
XML:(Extensible Markup Language) :扩展型可标记语言和HTTP
面向短期的临时数据处理、面向万维网络,是Soap的基础。
XML和HTML在形式上是一样的,但本质上确实不同的,XML是用来传输数据的,HTML是用来显
示数据的。
HTML的标签是预定义,而XML标签是自己定义的。
XML主要的构成是根元素和子元素。且必须前后对应,属性值必须用双引号或者单引号括起来。
形式如下:
<?xml version="1.0" encoding="UTF-8"?>
?<root>
? ? ?<header>响应头信息</header>
? ? ?<body>响应结果信息</body>
?</root>
XML的特性:
1.具有自我描述性。
2.可以在不中断应用程序的情况下进行扩展。
3.2 SOAP
SOAP(Simple Object Access Protocol) :简单对象访问协议
WebService通过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封
装,并增加了一些特定的HTTP消息头,以说明HTTP消息的内容格式,这些特定的HTTP消息头和
XML内容格式就是SOAP协议。
SOAP协议 = HTTP协议 + XML数据格式
SOAP协议定义了SOAP消息的格式,SOAP协议是基于HTTP协议的,SOAP也是基于XML和XSD
的,XML是SOAP的数据编码方式。
3.3 WSDL
WSDL(Web Service Description Language) :WebService描述语言。
WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息,即:说明当前的
服务在哪,有哪些接口可以调用,分别是什么方法,什么参数等信息。一个web service对应一个
唯一的wsdl文档。
3.4 UDDI
UDDI(UnviversalDescription ,Discovery,andIntegration) :统一描述发现和集成协议。
UDDI是一种目录服务,企业可以使用它对WebServices进行注册和搜索。
4、主流框架
4.1 AXIS(已淘汰)
Axis (Apache extensible lnteraction System):阿帕奇可扩展交互系统
它是一款开源的webService运行引擎,本质上就是一个SOAP引擎,提供创建服务器端、客户端和
网关SOAP操作的基本框架。
Axis分为1.x系列和2系列,两个系列体系结构和使用上有较大的区别,相对而言,Axis1.x更加稳
定,文档也比较齐全。
官网:Apache Axis
4.2 XFire
XFire是下一代的java SOAP框架。XFire提供了非常方便的API,使用这些API可以开发面向服务
(SOA)的程序。它支持各种标准,性能优良(基于低内存的STAX模型)。
官网:http://xfire.codehaus.org/
4.3 CXF
Apache CXF = Celtix+ XFire
Apache CXF的前身叫Apache Celtixfire,现在已经正式更名为Apache CXF了,以下简称为CXF。
CXF继承了celtix和XFire两大开源项目的精华,提供了对JAX-WS全面的支持,并且提供了多种
**Binding、DataBinding、Transport以及各种Format的支持,并且可以根据实际项目的需要,**采用
代码优先(CodeFirst)或者WSDL优先(WSDL First)来轻松地实现web Services的发布和使
用。
Apache CXF已经是一个正式的Apache顶级项目。
官网:Apache CXF – Index
5、Soap协议详解
1.Soap协议是什么
简单对象访问协议(Simple Object AccessProtocol,SOAP)是一种轻量的、简单的、基于XML的
协议,它被设计成在WEB上交换结构化的和固化的信息。
SOAP是基于XML的简易协议,可使应用程序在HTTP之上进行信息交换。
2.认识Soap
一条SOAP消息就是一个普通的XML文档。
所有构成元素均被声明于针对 SOAP 封装的默认命名空间中:
http://www.w3.org/2001/12/soap-envelope
以及针对 SOAP 编码和数据类型的默认命名空间:http://www.w3.org/2001/12/soap-encoding
一条SOAP消息就是一个普通的XML文档,包含下列元素
- 必需的Envelope元素,可把此XML文档标识为一条SOAP消息
必须要有的元素,是SOAP 消息的根元素。包含两个属性:
1 xlmns:soap。命名空间。这个属性值必须是 "http://www.w3.org/2001/12/soap-envelope"。
因为SOAP必须拥有与此命名空间相关联的一个Envelope元素。
2 encodingStyle。用于定义在文档中使用的数据类型。此属性可出现在任何 SOAP 元素中,并会
被应用到元素的内容及元素的所有子元素上。SOAP 消息没有默认的编码方式。
- 可选的Header元素,包含头部信息
这个元素是可选的,包含一些头部信息。包含有关 SOAP 消息的应用程序专用信息(比如认证、
支付等)。
如果Header元素被提供,则它必须是 Envelope 元素的第一个子元素。
有三个重要的属性:
1、mustUnderstand 。SOAP 的 mustUnderstand 属性可用于标识标题项对于要对其进行处理的接
收者来说是强制的还是可选的。假如您向 Header 元素的某个子元素添加了
"mustUnderstand=“1”,则它可指示
处理此头部的接收者必须认可此元素。假如此接收者无法认可此元素,则在处理此头部时必须失
效。
2、actor。用于将 Header 元素寻址到一个特定的端点。
3、encodingStyle。
- 必需的Body元素,包含所有的调用和响应信息。
必须要有的元素,包含实际的SOAP消息。
- 可选的Fault元素,提供有关在处理此消息所发生错误的信息
可选的元素,用于存留SOAP消息的错误和状态信息。如果已提供了 Fault 元素,则它必须是 Body
元素的子元素。
在一条 SOAP 消息中,Fault 元素只能出现一次。
?<?xml version="1.0"?>
?<soap:Envelope
?xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
?soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
??
?<soap:Header>
?...
?</soap:Header>
??
?<soap:Body>
?...
? ?<soap:Fault>
? ...
? ?</soap:Fault>
?</soap:Body>
??
?</soap:Envelope>
3.结论
SOAP是用于访问网络服务的协议。
一次WebService的调用,不是方法的调用 而是soap消息(xml格式规范的文档片段)之间的输入输出。
4.SOAP小总结
1.客户端到UUDI上寻找Service目录。
2.客户端获得WSDL文件。
3.客户端根据WSDL文件的约束和规范,创建SOAP客户端。
4.客户端根据SOAP访问Service。
SOAP 是一个基于类对象的传输协议。
主要包含以下四个部分:
1.封装。它定义了一个框架, 该框架描述了消息中的内容是什么,谁应当处理它以及它是可选的还
是必须的。
2.编码规则。它定义了一种序列化的机制,用于交换应用程序所定义的数据类型的实例。
序列化:序列化是指将数据从有结构清晰的语言定义的数据形式转化为二进制字符串,反序列化则
是序列化的逆操作。
3.RPC 表示。它定义了用于表示远程过程调用和应答的协定。
4.绑定。定义了一种使用底层传输协议来完成在节点间交换SOAP封装的约定。
6、WSDL详解
网络服务描述语言,基于XML。用于描述WebService以及如何对它们进行访问。
WSDL文档是利用这些主要的元素来描述某个WebService的:
1.types
WebService使用的数据类型。为了实现平台无关性,使用 XML Schema语法来定义数据类型。
2.message
WebService使用的消息。类比函数调用的参数。它由一个或者多个 part 组成。
Part:消息参数
?<message name="getTermRequest">
? ? ?<part name="term" type="xs:string"/>
?</message>
3.portType
WebService执行的操作。类比c++一个函数库。它是WSDL 端口。特定端口类型的具体协议和数
据格式规范。
有四种操作类型。
One-way
此操作可接受消息,但不会返回响应。
Request-response
此操作可接受一个请求并会返回一个响应
Solicit-response
此操作可发送一个请求,并会等待一个响应。
Notification
此操作可发送一条消息,但不会等待响应。
一个 request-response 操作的例子:
?<message name="getTermRequest">
? ? ?<part name="term" type="xs:string"/>
?</message>
??
?<message name="getTermResponse">
? ? ?<part name="value" type="xs:string"/>
?</message>
??
?<portType name="glossaryTerms">
? ? ?<operation name="getTerm">
? ? ? ? ?<input message="getTermRequest"/>
? ? ? ? ?<output message="getTermResponse"/>
? ? ?</operation>
?</portType>
portType中name属性:定义了一个端口。
operation元素定义了每个端口提供的操作符。name属性定义一个操作。
具体意义如下:定义了一个名为“getTerm”的操作。“getTerm” 操作会请求一个名为 “getTermRequest” 的输入消
息,此消息带有一个名为 “term” 的参数,并将返回一个名为 “getTermResponse” 的输出消息,此消息带有一个名为 “value” 的参数。
4.binding
WebService使用的通信协议。
一个实例如下:
?<message name="getTermRequest">
? ? ? ?<part name="term" type="xs:string"/>
?</message>
??
?<message name="getTermResponse">
? ? ? ?<part name="value" type="xs:string"/>
?</message>
??
?<portType name="glossaryTerms">
? ? ? ?<operation name="getTerm">
? ? ? ?<input message="getTermRequest"/>
? ? ? ?<output message="getTermResponse"/>
? ? ? ?</operation>
?</portType>
??
?<binding type="glossaryTerms" name="b1">
? ? ? <soap:binding style="document"
? ? ? transport="http://schemas.xmlsoap.org/soap/http" />
? ? ? <operation>
? ? ? ? <soap:operation soapAction="http://example.com/getTerm"/>
? ? ? ? <input><soap:body use="literal"/></input>
? ? ? ? <output><soap:body use="literal"/></output>
? ? ?</operation>
?</binding>
binding 元素有两个属性
-
type 属性: 指向用于 binding 的端口,在这个例子中是 “glossaryTerms” 端口。
-
name 属性:定义 binding 的名称。
soap:binding 元素有两个属性
-
style 属性:可取值 “rpc” 或 “document”。在这个例子中我们使用 document。
-
transport 属性:定义了要使用的 SOAP 协议。在这个例子中我们使用 HTTP。
xmlns:xml namespace
7、UDDI详解
UDDI是一种目录服务,企业可以使用它对WebService 进行注册和搜索。
UDDI,英文为 “Universal Description, Discovery and Integration”,可译为"通用描述、发现与集成服务"。
UDDI是一种目录,这个目录用于存储有关WebService信息。
例子:假如行业发布了一个用于航班比率检测和预订的 UDDI 标准,航空公司就可以把它们的服务
注册到一个UDDI 目录中。然后旅行社就能够搜索这个 UDDI 目录以找到航空公司预订界面。当此
界面被找到后,旅行社就能够立即与此服务进行通信。
相关文章:
一篇文章掌握WebService服务、工作原理、核心组件、主流框架
目录 1、WebService定义 解决问题: 2、WebService的工作原理 2.1 实现一个完整的Web服务包括以下步骤 2.2 调用方式 3、Web Service的核心组件 3.1 XML 3.2 SOAP 3.3 WSDL 3.4 UDDI 4、主流框架 4.1 AXIS(已淘汰) 4.2 XFire 4.3 CXF 5、Soap协议详解…...
中软高科身份证云解码金融(银行)解决方案介绍
多年来,中软高科一直深耕身份证云解码领域,对身份证云解码应用于金融(银行),进行了大量且深入的研究。从长期调研来看,金融(银行)的痛点需求主要有: 传统身份证解码设备…...
Linux NVIDIA GPU linpack 测试
前言 多节点多GPU测试有点坑,这篇文章有解决方法。 环境 操作系统信息 lsb_release -aNo LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammycpu 信息 lscpuArchitecture: x86_64CPU op-mod…...
LiteFlow决策系统的策略模式,顺序、最坏、投票、权重
个人博客:无奈何杨(wnhyang) 个人语雀:wnhyang 共享语雀:在线知识共享 Github:wnhyang - Overview 想必大家都有听过或做过职业和性格测试吧,尤其是现在的毕业生,在投了简历之后经…...
“AI换脸”骗过人脸识别?黑产攻击新手段应如何防御?
在著名美剧《权力的游戏》中,有一个神秘的刺客组织叫“无面者”,这个组织中的人可以通过某种神秘手段切换无数种不同的面孔,实现“一人千面”。 电视剧毕竟魔幻。但如今,基于人工智能的深度合成伪造技术正在让“一人千面”成为现…...
面试题整理6----什么是进程最大数、最大线程数、进程打开的文件数,怎么调整
什么是进程最大数、最大线程数、进程打开的文件数,怎么调整 1. 进程最大数1.1 调整方法: 2. 最大线程数2.1 调整方法: 3. 注意事项 #linux 1. 进程最大数 进程最大数是指操作系统允许同时运行的进程数量上限。这个限制通常由内核参数 ulimi…...
android RadioButton + ViewPager+fragment
RadioGroup viewpage fragment 组合显示导航栏 1、首先主界面的布局控件就是RadioGroup viewpage <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools…...
Zabbix6.0升级为6.4
为了体验一些新的功能,比如 Webhook 和问题抑制等,升级个小版本。 一、环境信息 1. 版本要求 一定要事先查看官方文档,确认组件要求的版本,否则版本过高或者过低都会出现问题。 2. 升级前后信息 环境升级前升级后操作系统CentOS…...
Unity 根据文本宽度自动移动图像位置
游戏中有时候需要变动的显示一个物品的数量,变化的文本宽度不停的变化,这时候需要将物品的icon随着文本的长度而改变位置。 实现思路:使用Content Size Fitter来动态改变内容的大小。 首先建立一个文本组件,添加Content Size Fi…...
spring @Mapper Converter转换泛型异常
spring Mapper Converter转换泛型异常 需要在每个list类型转换上面加Named 注解,否则会影响page生成的类型转换 比如: import org.mapstruct.Mapper; import org.mapstruct.Named;import com.baomidou.mybatisplus.core.metadata.IPage; import com.b…...
如何设计一个秒杀系统
开局一张图 结局要说清 对于设计一个秒杀系统,结合图片分层结构,根据每一层从访问层,负载层,服务层,业务层,支撑层,数据层,详细说明每一层应该怎么设计。 应该注意那些事项。比如访…...
SPL06 基于stm32F103 HAL库驱动(软件模拟IIC)
talk is cheap, show you my code SPL06.c #include "SPL06.h"//*************全局变量*************// Factor_List* b_list; //存储过采样率对应的系数KP,KT COEF_ValueStruct Coefficient { 0 }; //存储校准系数…...
arcgisPro将面要素转成CAD多段线
1、说明:正常使用【导出为CAD】工具,则导出的是CAD三维多线段,无法进行编辑操作、读取面积等。这是因为要素面中包含Z值,导出则为三维多线段数据。需要利用【复制要素】工具禁用M值和Z值,再导出为CAD,则得到…...
Cocos Creator 试玩广告开发
之前主要是使用Unity,这次刚好项目是试玩游戏的开发,所以临时学了Cocos来开发。所以这篇文章,更加关注从Unity转到Cocos开发的经历以及试玩的基本开发。 首先,我是没有使用过Cocos的,也没有接触过Ts语言,对于Ts的开发开…...
【Linux】解锁文件描述符奥秘,高效缓存区的实战技巧
fd和缓冲区 1. 文件描述符fd1.1. 概念与本质1.2. 打开文件的管理1.3. 一切皆文件的理解1.4. 分配规则1.5. 重定向的本质1.5.1. dup2 2. FILE中的缓冲区2.1. 概念2.2. 存在的原因2.3. 类型(刷新方案)2.4. 存放的位置2.4.1. 代码证明、现象解释 2.5. 模拟C标准库中的方法 1. 文件…...
MySQL基础笔记(五)
在此特别感谢尚硅谷-康师傅的MySQL精品教程 获取更好的阅读体验请前往我的博客主站! 如果本文对你的学习有帮助,请多多点赞、评论、收藏,你们的反馈是我更新最大的动力! 约束 1. 约束(constraint)概述 1.1 为什么需要约束 数据完整性&…...
夯实数字技术,培育创新人才:数据科学与大数据技术专业人才培养实践
近年来,得益于全球各国家和地区对大数据产业的政策扶持以及数字经济的蓬勃发展,大数据市场在全球范围内展现出了迅猛的增长态势。国家层面相继出台了诸如《“数据要素 ” 三年行动计划(2024—2026 年)》《数字中国建设整体布局规划…...
Java爬虫大冒险:如何征服1688商品搜索之巅
在这个信息爆炸的时代,数据就是力量。对于电商平台而言,数据更是金矿。今天,我们要踏上一场Java爬虫的冒险之旅,目标是征服1688这个B2B电商巨头,获取按关键字搜索的商品信息。这不仅是技术的挑战,更是智慧的…...
IEC 101/104 中为什么我们需要单点和双点信号
REDISANT 提供互联网与物联网开发测试套件 # 互联网与中间件: Redis AssistantZooKeeper AssistantKafka AssistantRocketMQ AssistantRabbitMQ AssistantPulsar AssistantHBase AssistantNoSql AssistantEtcd AssistantGarnet Assistant 工业与物联网࿱…...
01、NodeJS学习笔记,第一节:Node.js初识与内置模块
一、初识Node.js与内置模块 ##网址 https://nodejs.org##npm包 https://www.npmjs.com/ (搜索)https://registry.npmjs.org/ (下载)1、初识Node.js ##思考:为什么JavaScript可以在浏览器中被执行因为浏览器…...
ElasticSearch 自动补全
1、前言 当用户在搜索框输入字符时,我们应该提示出与该字符有关的搜索项,根据用户输入的字母,提示完整词条的功能,就是自动补全。 2、安装拼音分词器 Github地址:https://github.com/infinilabs/analysis-pinyin 插件…...
整点(枚举)
Hello!大家好!我是学霸小羊,今天分享一道c枚举题: 题目描述 在二维坐标系, 有一个圆,圆心在(0,0),圆的半径是r。问圆内有多少个整点(所谓的整点就是横坐标和纵坐标都是整数的点)。若点P的横坐标是整数a&a…...
【WRF安装】WRF编译错误:problems building executables look for error in the build log
WRF编译错误 错误内容:problems building executables, look for error in the build log原因1:gcc版本过低安装高版本gcc 原因2:netcdf版本和配置有误原因3:库冲突原因4:export NETCDF_classic1终极手段:重…...
2024年12月陪玩系统-仿东郊到家约玩系统是一种新兴的线上预约线下社交、陪伴系统分享-优雅草央千澈-附带搭建教程
2024年12月陪玩系统-仿东郊到家约玩系统是一种新兴的线上预约线下社交、陪伴系统分享-优雅草央千澈-附带搭建教程 产品介绍 仿东郊到家约玩系统是一种新兴的线上预约,线下社交、陪伴、助娱、助攻、分享、解答、指导等服务模式,范围涉及电竞、运动、音乐…...
社区版 IDEA 开发webapp 配置tomcat
1.安装tomcat 参考Tomcat配置_tomcat怎么配置成功-CSDN博客 2.构建webapp项目结构 新建一个普通项目 然后添加webapp的目录结构: main目录下新建 webapp 文件夹 webapp文件夹下新建WEB_INF文件夹 *WEB_INF目录下新建web.xml wenapp文件夹下再新建index.html …...
IDEA中解决Edit Configurations中没有tomcat Server选项的问题
今天使用IDEA2024专业版的时候,发现Edit Configurations里面没有tomcat Server,最终找到解决方案。 一、解决办法 1、打开Settings 2、搜索tomcat插件 搜索tomcat插件之后,找到tomcat 发现tomcat插件处于未勾选状态,然后我们将其勾选保存即可。 二、结果展示 最后,再次编…...
【Python】主成分分析PCA - 算法、问题与Python实现
【Python】主成分分析PCA - 算法、问题与Python实现 一、PCA 算法简介(一)概念及作用(二)基本原理(三)算法步骤1.数据预处理2.计算协方差矩阵3.进行特征值分解4.选择主成分5.完成数据降维 二、PCA 常见问题…...
Go怎么做性能优化工具篇之pprof
工欲善其事、必先利其器。这次我们来看看Go的性能优化工具有哪些吧 Go性能优化的工具 一、pprof 工具 pprof 是 Go 语言自带的性能分析工具,可以帮助开发者分析程序的 CPU 使用情况、内存使用情况、goroutine 调度情况等,从而定位性能瓶颈。通过 pprof…...
DataOps驱动数据集成创新:Apache DolphinScheduler SeaTunnel on Amazon Web Services
引言 在数字化转型的浪潮中,数据已成为企业最宝贵的资产之一。DataOps作为一种文化、流程和实践的集合,旨在提高数据管道的质量和效率,从而加速数据从源头到消费的过程。白鲸开源科技,作为DataOps领域的领先开源原生公司…...
递归读取指定目录下的文件
序言 需要读取sftp服务器上符合指定的文件名正则的文件列表,目前想到的最好的办法就是递归。 我这里引入的依赖是: <!-- jsch-sftp连接 --><dependency><groupId>com.jcraft</groupId><artifactId>jsch</artif…...
代码随想录算法训练营day46|动态规划part12
今天就结束动态规划章节了,以后还要多加练习。 今天的两道题都很有难度,647回文子串的思路非常巧妙,因为用一维dp数组比较难表示子串的起点和终点,所以需要用二维dp数组表示,dp[i][j]表示以i为起点,j为终点…...
ubuntu 24.04.1安装FTP流程
1、安装vsftpd: sudo apt update sudo apt install vsftpd 2、安装后重启查看vsftpd状态 sudo systemctl status vsftpd 输出如下所示,表明vsftpd服务处于活动状态并正在运行: * vsftpd.service - vsftpd FTP server Loaded: loaded (/…...
【Linux】UDP通信
udp使用的是数据报传输。可以一对一,一对多进行传输,用于快速,实时性高的场景 服务器端: 使用步骤: 1.创建socket 2.bind绑定可接收的客户端 3.while{ recv接收数据 send发送数据 } #include <stdio.h> #inclu…...
日期格式、JSR303校验
日期格式 public class Monster() {DateTimeFormat(pattern "yyyy-MM-dd")private Date birthday; } 输入:2024-11-12, 输出:Monster{birthdaySun Nov 12 00:00:00 CST 2024} public class Monster {JsonFormat(pattern &…...
ELK系列-(六)Redis也能作为消息队列?(上)
一、前文回顾 🔍 在前面的ELK系列中,我们已经搭建了ELK的核心组件,包括: ELK系列-(一)Docker部署ELK核心组件ELK系列-(二)LogStash数据处理的瑞士军刀ELK系列-(三&…...
点击展示大图预览
原文链接在table表格里能够实现,点击里面的图片实现大图预览的效果; 一、先安装viewer — 使用npm安装 npm install v-viewer --save二、在main.js中引入 import Viewer from v-viewer //点击图片大图预览 import viewerjs/dist/viewer.css Vue.use(…...
游戏AI实现-寻路算法(BFS)
广度优先搜索算法(英语:Breadth-first search,缩写:BFS),又译作宽度优先搜索,或横向优先搜索,是一种图形搜索算法。 寻路地图搭建: 游戏AI实现-寻路地图搭建-CSDN博客 …...
tryhackme-Pre Security-HTTP in Detail(HTTP的详细内容)
任务一:What is HTTP(S)?(什么是http(s)) 1.What is HTTP? (HyperText Transfer Protocol)(什么是 HTTP?(超文本传输协议)) http是你查看网站的时候遵循的…...
CNN和Transfomer介绍
文章目录 CNN和Transfomer介绍CNN和Transfomer的区别1. **基本概念**2. **数据处理方式**3. **模型结构差异**4. **应用场景区别** 自注意力机制1. **自注意力机制的概念**2. **自注意力机制的实现步骤**3. **自注意力机制的优势** Transformer结构组成1. **多头注意力层&#…...
37. Three.js案例-绘制部分球体
37. Three.js案例-绘制部分球体 实现效果 知识点 WebGLRenderer WebGLRenderer 是Three.js中的一个渲染器类,用于将3D场景渲染到网页上。 构造器 WebGLRenderer( parameters : Object ) 参数类型描述parametersObject渲染器的配置参数,可选。 常用…...
Latex+VsCode+Win10搭建
最近在写论文,overleaf的免费使用次数受限,因此需要使用本地的形式进行编译。 安装TEXLive 下载地址:https://mirror-hk.koddos.net/CTAN/systems/texlive/Images/ 下载完成直接点击iso进行安装操作。 安装LATEX Workshop插件 设置VsCode文…...
【ETCD】【Linearizable Read OR Serializable Read】ETCD 数据读取:强一致性 vs 高性能,选择最适合的读取模式
ETCD 提供了两种不同类型的读取操作方式,分别是 Linearizable Read(线性化读取)和 Serializable Read(可串行化读取)。这两种方式主要区分在读取数据时对一致性的要求不同。 目录 1. Linearizable Read(线…...
windows下搭建本地sofa-registry
官方介绍: SOFARegistry 是蚂蚁金服开源的一个生产级、高时效、高可用的服务注册中心。SOFARegistry 最早源自于淘宝的 ConfigServer,十年来,随着蚂蚁金服的业务发展,注册中心架构已经演进至第五代。目前 SOFARegistry 不仅全面服…...
什么是MyBatis
MyBatis 简介 MyBatis 是一个流行的 Java 持久层框架(Persistence Framework),它主要用于简化数据库操作,提供了对数据库的映射支持,使得开发人员能够通过简单的配置和映射文件来执行数据库操作(如增、删、…...
Docker如何运行一个Java的jar包程序
Docker如何运行一个Java的jar包程序 1、jar包程序 2、start.sh运行jar包脚本 #!/bin/bash #进入目录 cd /app #1.下载SDK并安装 java -jar SDKDown1.4.jar #2.加载环境变量 export LD_LIBRARY_PATH/opt/casb/CipherSuiteSdk_linux/lib echo $LD_LIBRARY_PATH #3.执行SDK java …...
c语言----顺序结构
顺序结构的基本概念 定义:顺序结构是C语言程序中最基本的结构,它按照语句的先后顺序依次执行。就像我们日常做事一样,一步一步地按照顺序来完成任务。在C语言程序中,从程序的第一条语句开始,逐句向下执行,…...
BERT采用双向训练
BERT采用双向训练 定义 BERT(Bidirectional Encoder Representations from Transformers)是一种基于Transformer架构的预训练语言模型。它在自然语言处理(NLP)领域具有极其重要的地位,由谷歌在2018年提出,能够对文本进行深度的语义理解,从而广泛应用于各种语言相关的任务…...
流程引擎Activiti性能优化方案
流程引擎Activiti性能优化方案 Activiti工作流引擎架构概述 Activiti工作流引擎架构大致分为6层。从上到下依次为工作流引擎层、部署层、业务接口层、命令拦截层、命令层和行为层。 基于关系型数据库层面优化 MySQL建表语句优化 Activiti在MySQL中创建默认字符集为utf8&…...
安卓 文件管理相关功能记录
文件管理细分为图片、视频、音乐、文件四类 目录 权限 静态声明权限 动态检查和声明权限方法 如何开始上述动态申请的流程 提示 图片 获取图片文件的对象列表 展示 删除 视频 获取视频文件的对象列表 获取视频file列表 按日期装载视频文件列表 展示 播放 删除…...
监控视频汇聚融合云平台一站式解决视频资源管理痛点
随着5G技术的广泛应用,各领域都在通信技术加持下通过海量终端设备收集了大量视频、图像等物联网数据,并通过人工智能、大数据、视频监控等技术方式来让我们的世界更安全、更高效。然而,随着数字化建设和生产经营管理活动的长期开展࿰…...