Web Services 服务 是不是过时了?创建 Web Services 服务实例
Web Services 是不是过时了?
今天是兔年最后一天,先给大家拜个早年 。
昨天上午视频面试一家公司需要开发Web Services 服务,这个也没有什么,但还需要用 VB.net 开发。这个是多古老的语言了,让我想起来了 10年 前 写 VBA 的时候,那就写了一个玩玩?
文章目录
- Web Services 是不是过时了?
- 前言
- 一、准备工作
- 二、基本配置步骤
- 1.选择 web 服务 asmx 服务
- 2.引用 mysql package
- 3.web.config 文件加入数据库connectionString
- 4.然后写一个 select 的方法
- 5.方法改造 XML序列化
- 6.写一个带参数的
- 7.写一个 Insert的方法
- 8.最后疑问?Web Services 和Web API 那个运用的更广泛呢?
- 总结
前言
网上百度了下:基础知识大家了解下 :
选择使用 Web Services 还是 Web API 取决于您的具体需求和技术栈。这两者都是用于实现分布式系统和服务的技术,但它们有一些区别。
Web Services:
SOAP (Simple Object Access Protocol): Web Services 常基于 SOAP 协议,这是一种使用 XML 格式进行通信的协议。
协议和标准: Web Services 通常严格遵循一系列协议和标准,如 WSDL (Web Services Description Language) 用于描述服务,UDDI (Universal Description, Discovery, and Integration) 用于服务的发现。
跨语言性: 由于使用了标准化的协议和格式,Web Services 可以在不同平台和语言之间进行通信。
Web API:
RESTful (Representational State Transfer): Web API 常基于 RESTful 架构,使用 JSON 或 XML 进行数据传输。
轻量级: 相对于 Web Services,Web API 更轻量级,通常使用 HTTP 协议进行通信,不像 Web Services 那样依赖较多的协议和标准。
更简单: Web API 更简单易用,通常适合构建基于 HTTP 的轻量级服务,特别是在移动应用和单页应用中。
一、准备工作
上午查了一些资料
需要安装 mysql 数据库 8.0
需要安装 Microsoft Visual Studio Professional 2022 + vb.net
需要安装 IIS 服务
需要安装 mysql-connector-net-8.3.0 库
自己的 系统是 windows 10
好了基本就些就是开发环境了
二、基本配置步骤
1.选择 web 服务 asmx 服务
2.引用 mysql package
下载地址 https://dev.mysql.com/downloads/connector/net/
需要先安装 mysql 驱动
然后选择 dll 应用
最后 本code 使用是网上的 classicmodels 数据库
可以去下载 classicmodels 数据库具体如下
点击:classicmodels
也可以去 下面我的博客资源下载
https://download.csdn.net/download/tomxjc/88685970
用的是 MySQL 8.0
3.web.config 文件加入数据库connectionString
主要就是加入 这段
<?xml version="1.0" encoding="utf-8"?>
<!--有关如何配置 ASP.NET 应用程序的详细信息,请访问https://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration><connectionStrings><add name="MySqlConnection"connectionString="Server=localhost;Database=classicmodels;User Id=root;Password=123456;"providerName="MySql.Data.MySqlClient" /></connectionStrings><system.web><compilation debug="true" strict="false" explicit="true" targetFramework="4.7.2" /><httpRuntime targetFramework="4.7.2" /></system.web><system.codedom><compilers><compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" /><compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" /></compilers></system.codedom>
</configuration>
在 vb 中调用的语法是
Public connectionString As String = ConfigurationManager.ConnectionStrings("MySqlConnection").ConnectionString
4.然后写一个 select 的方法
<WebMethod()>Public Function QueryDatabase() As StringDim result As String = ""TryUsing connection As New MySqlConnection(connectionString)connection.Open()' Specify your MySQL queryDim query As String = "SELECT * FROM Products where ='Classic Cars'"' Execute the queryUsing command As New MySqlCommand(query, connection)Using reader As MySqlDataReader = command.ExecuteReader()Dim xmlResult As New XmlDocument()' Create the root elementDim rootElement As XmlElement = xmlResult.CreateElement("Data")xmlResult.AppendChild(rootElement)While reader.Read()' Create individual data elementsDim dataElement As XmlElement = xmlResult.CreateElement("Item")Dim idElement As XmlElement = xmlResult.CreateElement("productCode")idElement.InnerText = reader("productCode").ToString()dataElement.AppendChild(idElement)Dim nameElement As XmlElement = xmlResult.CreateElement("productName")nameElement.InnerText = reader("productName").ToString()dataElement.AppendChild(nameElement)Dim lineElement As XmlElement = xmlResult.CreateElement("productline")lineElement.InnerText = reader("productline").ToString()dataElement.AppendChild(lineElement)Dim descElement As XmlElement = xmlResult.CreateElement("productDescription")descElement.InnerText = reader("productDescription").ToString()dataElement.AppendChild(descElement)rootElement.AppendChild(dataElement)End Whileresult = xmlResult.OuterXmlEnd UsingEnd UsingEnd UsingCatch ex As Exception' Handle exceptionsresult = $"<Error>{ex.Message}</Error>"End TryReturn resultEnd Function
验证数据
结果返回是这样,返回是 字符类型,不是应该自动识别的吗?看来是没有XML序列化
5.方法改造 XML序列化
<WebMethod()>Public Function QueryDatabaseXmlSerializer() As XmlDocument'这个表代码XML序列化 并返回 XmlDocument 类型Dim xmlDoc As New XmlDocument()TryUsing connection As New MySqlConnection(connectionString)connection.Open()' Specify your MySQL queryDim query As String = "SELECT * FROM Products WHERE productline = 'Classic Cars'"' Execute the queryUsing command As New MySqlCommand(query, connection)Using reader As MySqlDataReader = command.ExecuteReader()Dim items As New List(Of Products)()While reader.Read()' Create instances of the Item class and populate themDim item As New Products() With {.productCode = reader("productCode").ToString(),.productName = reader("productName").ToString(),.productline = reader("productline").ToString(),.productDescription = reader("productDescription").ToString()}items.Add(item)End While' Serialize the list of items to XMLDim serializer As New XmlSerializer(GetType(List(Of Products)))Using writer As XmlWriter = xmlDoc.CreateNavigator().AppendChild()serializer.Serialize(writer, items)End UsingEnd UsingEnd UsingEnd UsingReturn xmlDocCatch ex As Exception' Handle exceptionsDim errorDoc As New XmlDocument()errorDoc.LoadXml($"<Error>{ex.Message}</Error>")Return errorDocEnd TryEnd Function
在加入一个类
Public Class ProductsPublic Property productCode As StringPublic Property productName As StringPublic Property productDescription As StringPublic Property productline As String
End Class
再验证一下
6.写一个带参数的
<WebMethod()>
Public Function QueryProductByCodeXmlSerializer(productCode As String) As XmlDocumentDim xmlDoc As New XmlDocument()TryUsing connection As New MySqlConnection(connectionString)connection.Open()' Specify your MySQL query with a parameterDim query As String = "SELECT * FROM Products WHERE productCode = @ProductCode"' Execute the queryUsing command As New MySqlCommand(query, connection)' Add the parameter to the commandcommand.Parameters.AddWithValue("@ProductCode", productCode)Using reader As MySqlDataReader = command.ExecuteReader()Dim items As New List(Of Products)()While reader.Read()' Create instances of the Products class and populate themDim item As New Products() With {.productCode = reader("productCode").ToString(),.productName = reader("productName").ToString(),.productline = reader("productline").ToString(),.productDescription = reader("productDescription").ToString()}items.Add(item)End While' Serialize the list of items to XMLDim serializer As New XmlSerializer(GetType(List(Of Products)))Using writer As XmlWriter = xmlDoc.CreateNavigator().AppendChild()serializer.Serialize(writer, items)End UsingEnd UsingEnd UsingEnd UsingReturn xmlDocCatch ex As Exception' Handle exceptionsDim errorDoc As New XmlDocument()errorDoc.LoadXml($"<Error>{ex.Message}</Error>")Return errorDocEnd Try
End Function
验证数据
显示
7.写一个 Insert的方法
mysql 建表
CREATE TABLE `china_city` (`citycode` varchar(10) NOT NULL,`city` varchar(50) NOT NULL,PRIMARY KEY (`citycode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
代码先写了 类
Public Class ChinaCityPublic Property CityCode As StringPublic Property City As String
End Class
<WebMethod()>
Public Function InsertCity(cityCode As String, cityName As String) As XmlDocumentDim errorDoc, successfulDoc As New XmlDocument()TryUsing connection As New MySqlConnection(connectionString)connection.Open()' Specify your MySQL insert queryDim query As String = "INSERT INTO china_city (citycode, city) VALUES (@CityCode, @CityName)"' Execute the insert queryUsing command As New MySqlCommand(query, connection)' Add parameters to the commandcommand.Parameters.AddWithValue("@CityCode", cityCode)command.Parameters.AddWithValue("@CityName", cityName)' Execute the insert queryDim rowsAffected As Integer = command.ExecuteNonQuery()' Check if the insertion was successfulIf rowsAffected > 0 ThensuccessfulDoc.LoadXml($"<Result>Insertion successful</Result>")Return successfulDocElseerrorDoc.LoadXml($"<Error>No rows inserted</Error>")Return errorDocEnd IfEnd UsingEnd UsingCatch ex As Exception' Handle exceptionserrorDoc.LoadXml($"<Error>{ex.Message}</Error>")Return errorDocEnd Try
End Function
验证数据
8.最后疑问?Web Services 和Web API 那个运用的更广泛呢?
chatGPT 给出了答案
总结
以上源码下载如下https://download.csdn.net/download/tomxjc/88822612
好了,今天就介绍到这里。希望大家喜欢, 一键三连 ,福星高照
相关文章:
Web Services 服务 是不是过时了?创建 Web Services 服务实例
Web Services 是不是过时了? 今天是兔年最后一天,先给大家拜个早年 。 昨天上午视频面试一家公司需要开发Web Services 服务,这个也没有什么,但还需要用 VB.net 开发。这个是多古老的语言了,让我想起来了 10年 前 写 …...
redis单线程还快的原因
1. 内存存储和高效数据结构: 内存存储: Redis将数据存储在内存中,因此可以实现非常高的读写速度,而无需频繁的磁盘I/O操作。 高效数据结构: Redis内置了丰富且高效的数据结构,如字符串、哈希表、列表、集合…...
【flutter】报错 cmdline-tools component is missing
在flutterSDK目录下,双击flutter_console.bat,调出命令行。 输入flutter doctor,如果第三个诊断为[x],报cmdline-tools component is missing错(我这已经修改好了,所以是勾了),那就可…...
以用户为中心,酷开科技荣获“消费者服务之星”
在企业顺应消费升级的道路中,企业自身不仅要着力强化对于消费者服务意识的提升,并且要树立诚信自律的行业示范带头作用,助力消费环境稳中向好,不断满足人民群众对美好生活的期待。企业的发展需要消费者的认可,酷开科技…...
Days 27 ElfBoard 板 AltiumDesigner 相同电路快速布局布线
在进行设计开发的时候,总会遇到相同的电路,或者模块,这些电路可以使用相同的布局和走线,例如 DC-DC 电源、网口 PHY 电路部分。这类型的电路,我们可以采用AltiumDesigner 中的 Room 进行布局和布线的快速复制ÿ…...
除夕快乐(前端小烟花)
家人们,新的一年好运常在,愿大家在新的一年里得偿所愿,发财暴富,愿大家找到属于自己的那个公主,下面就给大家展示一下给公主的烟花 前端烟花 新的一年,新的挑战,愿我们不忘初心,砥砺…...
fast.ai 深度学习笔记(二)
深度学习 2:第 1 部分第 4 课 原文:medium.com/hiromi_suenaga/deep-learning-2-part-1-lesson-4-2048a26d58aa 译者:飞龙 协议:CC BY-NC-SA 4.0 来自 fast.ai 课程的个人笔记。随着我继续复习课程以“真正”理解它,这…...
风行智能电视G32Y 强制刷机升级方法,附刷机升级数据MstarUpgrade.bin
升级步骤: 1、下载刷机数据,如是压缩包,需要先解压,然后将刷机bin格式的文件重命名为MstarUpgrade.bin 2、将此文件放到U盘根目录 (U盘格式FAT32,单分区,建议4G的优盘刷机成功率高)…...
tsgctf-2021-lkgit-无锁竞争-userfaultfd
启动脚本 qemu-system-x86_64 \-kernel ./bzImage \-initrd ./rootfs.cpio \-nographic \-monitor /dev/null \-cpu kvm64,smep,smap \-append "consolettyS0 kaslr oopspanic panic1 quiet" \-no-reboot \-m 256M题目 lkgit_hash_object #define HASH_SIZE …...
物联网数据隐私保护技术
在物联网(IoT)的世界中,无数的设备通过互联网连接在一起,不断地收集、传输和处理数据。这些数据有助于提高生产效率、优化用户体验并创造新的服务模式。然而,随着数据量的剧增,数据隐私保护成为了一个不能忽…...
RabbitMQ-1.介绍与安装
介绍与安装 1.RabbitMQ1.0.技术选型1.1.安装1.2.收发消息1.2.1.交换机1.2.2.队列1.2.3.绑定关系1.2.4.发送消息 1.2.数据隔离1.2.1.用户管理1.2.3.virtual host 1.RabbitMQ 1.0.技术选型 消息Broker,目前常见的实现方案就是消息队列(MessageQueue&…...
CSS高级技巧
一、 精灵图 1.1 为什么需要精灵图? 1.2 精灵图(sprites)的使用 二、 字体图标 2.1 字体图标的产生 2.2 字体图标的优点 2.3 字体图标的下载 icomoom字库 http://icomoon.io 阿里iconfont字库 http://www.iconfont.cn/ 2.4 字体图标的引用…...
Redis的数据类型Hash使用场景实战
Redis的数据类型Hash使用场景 常见面试题:redis在你们项目中是怎么用的,除了String数据类型还使用什么数据类型? 怎么保证缓存和数据一致性等问题… Hash模型使用场景 知识回顾: redisTemplate.opsForHash() 方法是 Redis 的 …...
HttpClient | 支持 HTTP 协议的客户端编程工具包
目录 1、简介 2、应用场景 3、导入 4、API 5、示例 5.1、GET请求 5.2、POST请求 🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发、数据结构和算法,初…...
DP第一天:力扣● 理论基础 ● 509. 斐波那契数 ● 70. 爬楼梯 ● 746. 使用最小花费爬楼梯
● 理论基础 DP大约五种问题: 动规基础(斐波那契数列、爬楼梯);背包问题;股票问题;打家劫舍;子序列问题。 要搞清楚: DP数组及其下标的含义;DP数组如何初始化&#x…...
Android Studio 安装Flutter插件但是没法创建项目
Android Studio 安装Flutter插件但是没法创建项目 如果你在Android Studio已经安装了Dart、Flutter插件,但是不能创建Flutter项目。 原因是因为Android Studio的版本更新,Android APK Support这个插件没被选中。 一旦勾选这个插件之后,就能…...
新春快乐(烟花、春联)【附源码】
新春快乐 一: C语言 -- 烟花二:Python -- 春联三:Python -- 烟花四:HTML -- 烟花 一: C语言 – 烟花 运行效果: #include <graphics.h> #include <math.h> #include <time.h> #include…...
nextcloud 优化扩展
cd /config vi config.php #ONLYOFFICE allow_local_remote_servers > true, #应用商店加速 appstoreenabled > true, appstoreurl > https://www.orcy.net/ncapps/v2/, #nginx配置调优 add_header Strict-Transport-Security max-age15552000; add…...
【CSS】css如何实现字体大小小于12px?
【CSS】css如何实现字体大小小于12px? 问题解决方案transform: scale(0.5)(常用)SVG 矢量图设置text 问题 文字需要显示为12px,但是小于12px的,浏览器是显示不来的 解决方案 transform: scale(0.5)(常用࿰…...
【Langchain+Streamlit】旅游聊天机器人
【LangchainStreamlit】打造一个旅游问答AI-CSDN博客 项目线上地址,无需openai秘钥可直接体验:http://101.33.225.241:8502/ github地址:GitHub - jerry1900/langchain_chatbot: langchainstreamlit打造的一个有memory的旅游聊天机器人&…...
〖大前端 - ES6篇②〗- let和const
说明:该文属于 大前端全栈架构白宝书专栏,目前阶段免费,如需要项目实战或者是体系化资源,文末名片加V!作者:哈哥撩编程,十余年工作经验, 从事过全栈研发、产品经理等工作,目前在公司…...
JAVA设计模式之代理模式详解
代理模式 1 代理模式介绍 在软件开发中,由于一些原因,客户端不想或不能直接访问一个对象,此时可以通过一个称为"代理"的第三者来实现间接访问.该方案对应的设计模式被称为代理模式. 代理模式(Proxy Design Pattern ) 原始定义是:让你能够提供对象的替代…...
vivo发布2023 年度科技创新;阿里全新AI代理,可模拟人类操作手机
vivo 发布 2023 年度十大产品技术创新 近日,vivo 发布了「2023 年度科技创新」十大产品技术创新榜单,并将这些技术分为了 4 个板块。 「四大蓝科技」为 vivo 在去年推出的全新技术品牌,涵盖蓝晶芯片技术栈、蓝海续航系统、蓝心大模型、蓝河操…...
【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏15(附项目源码)
本节最终效果演示 文章目录 本节最终效果演示系列目录前言实现树倒下的效果拾取圆木砍树消耗卡路里斧头手臂穿模问题处理源码完结 系列目录 前言 欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第23篇中&…...
python巧用定理判断素数
目录 判断一个数n是否是素数 求一个数的素因数个数 求大于等于指定数的最小素数 在数论中有三个非常重要的关于素数的定理 1、任何数都可以表示成若干个素数的乘积 2、任意数的素因子一个大于根号n的自然数,另一个与其对应的因子则必小于根号n。 3、除了2和3以…...
2023年总结
人们总说时间会改变一切,但事实上你得自己来。 今年开始给自己的时间读书、工作、生活都加上一个2.0的release版本号,相比过去的一年还是有很多进步的。 就跟git commit一样,一步一步提交优化,年底了发个版本。用李笑来的话说&am…...
Git中为常用指令配置别名
目录 1 前言 2 具体操作 2.1 创建.bashrc文件 2.2 添加指令 2.3 使其生效 2.4 测试 1 前言 在Git中有一些常用指令比较长,当我们直接输入,不仅费时费力,还容易出错。这时候,如果能给其取个简短的别名,那么事情就…...
STM32内部Flash
目录 一、内部Flash简介 二、内部Flash构成 1. 主存储器 2. 系统存储区 3. 选项字节 三、内部Flash写入过程 1. 解锁 2. 页擦除 3. 写入数据 四、工程空间分布 某工程的ROM存储器分布映像: 1. 程序ROM的加载与执行空间 2. ROM空间分布表 一、内部Flash…...
html5 audio video
DOMException: play() failed because the user didn‘t interact with the document first.-CSDN博客 不可用: 可用: Google Chrome Close AutoUpdate-CSDN博客...
LoveWall v2.0Pro社区型校园表白墙源码
校园表白墙,一个接近于社区类型的表白墙,LoveWall。 源码特色; 点赞, 发评论, 发弹幕, 多校区, 分享页, 涉及违禁物等名词进行检测! 安装教程: 环境要求;…...
Flink cdc3.0动态变更表结构——源码解析
文章目录 前言源码解析1. 接收schema变更事件2. 发起schema变更请求3. schema变更请求具体处理4. 广播刷新事件并阻塞5. 处理FlushEvent6. 修改sink端schema 结尾 前言 上一篇Flink cdc3.0同步实例 介绍了最新的一些功能和问题,本篇来看下新功能之一的动态变更表结…...
WWW 2024 | 时间序列(Time Series)和时空数据(Spatial-Temporal)论文总结
WWW 2024已经放榜,本次会议共提交了2008篇文章,research tracks共录用约400多篇论文,录用率为20.2%。本次会议将于2024年5月13日-17日在新加坡举办。 本文总结了WWW 2024有关时间序列(Time Series)和时空数据…...
代码随想录算法——数组
目录 1、二分查找法 2、移除元素 3、有序数组的平方 4、长度最小的子数组 5、螺旋矩阵II 1、二分查找法 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在…...
Linux第45步_通过搭建“DNS服务器”学习图形化配置工具
学习的意义:通过搭建“DNS服务器”,来学习“图形化配置工具”。“DNS服务器”,我们用不到,但为后期移植linux系统服务,因为在移植系统时,需要用到这个“图形化配置工具”。 1、“menuconfig图形化配置工具…...
【Linux取经路】探寻shell的实现原理
文章目录 一、打印命令行提示符二、读取键盘输入的指令三、指令切割四、普通命令的执行五、内建指令执行5.1 cd指令5.2 export指令5.3 echo指令 六、结语 一、打印命令行提示符 const char* getusername() // 获取用户名 {return getenv("USER"); }const char* geth…...
【MATLAB】使用随机森林在回归预测任务中进行特征选择(深度学习的数据集处理)
1.随机森林在神经网络的应用 当使用随机森林进行特征选择时,算法能够为每个特征提供一个重要性得分,从而帮助识别对目标变量预测最具影响力的特征。这有助于简化模型并提高其泛化能力,减少过拟合的风险,并且可以加快模型训练和推理…...
2024Node.js零基础教程(小白友好型),nodejs新手到高手,(六)NodeJS入门——http模块
047_http模块_获取请求行和请求头 hello,大家好,那第二节我们来介绍一下如何在这个服务当中来提取 HTT 请求报文的相关内容。首先先说一下关于报文的提取的方法,我在这个文档当中都已经记录好了,方便大家后续做一个快速的查阅。 …...
【数据结构与算法】(5)基础数据结构之队列 链表实现、环形数组实现详细代码示例讲解
目录 2.4 队列1) 概述2) 链表实现3) 环形数组实现 2.4 队列 1) 概述 计算机科学中,queue 是以顺序的方式维护的一组数据集合,在一端添加数据,从另一端移除数据。习惯来说,添加的一端称为尾,移除的一端称为头…...
(注解配置AOP)学习Spring的第十七天
基于注解配置的AOP 来看注解式开发 : 先把目标与通知放到Spring里管理 : Service("userService") public class UserServiceImpl implements UserService {Overridepublic void show1() {System.out.println("show1......");}Overridepublic void show2…...
[C++] opencv + qt 创建带滚动条的图像显示窗口代替imshow
在OpenCV中,imshow函数默认情况下是不支持滚动条的。如果想要显示滚动条,可以考虑使用其他库或方法来进行实现。 一种方法是使用Qt库,使用该库可以创建一个带有滚动条的窗口,并在其中显示图像。具体步骤如下: 1&…...
C#用Array类的Reverse方法反转数组中元素
目录 一、Array.Reverse 方法 1.重载 2.Reverse(Array, Int32, Int32) 3. Reverse(Array) 4.Reverse(T[]) 5. Reverse(T[], Int32, Int32) 二、实例 1.Array.Reverse 方法4种重载方法综合实例 2.Reverse(Array)方法的实例 一、Array.Reverse 方法 反转一维 Array 或部…...
iOS AlDente 1.0自动防过充, 拯救电池健康度
经常玩iOS的朋友可能遇到过长时间过充导致的电池鼓包及健康度下降问题。MacOS上同样会出现该问题,笔者用了4年的MBP上周刚拿去修了,就是因为长期不拔电源的充电,开始还是电量一半的时候不接电源会黑屏无法开机,最后连着电源都无法…...
春晚刘谦魔术——约瑟夫环
昨晚,刘谦在春晚上表演了一个魔术,通过对四张撕成两半的纸牌连续操作,最终实现了纸牌的配对。 这个魔术虽然原理不是很难,但是通过刘谦精湛的表演还是让这个魔术产生了不错的效果(虽然我感觉小尼的效果更不错ÿ…...
itextpdf使用:使用PdfReader添加图片水印
gitee参考代码地址:https://gitee.com/wangtianwen1996/cento-practice/tree/master/src/test/java/com/xiaobai/itextpdf 参考文章:https://www.cnblogs.com/wuxu/p/17371780.html 1、生成带有文字的图片 使用java.awt包的相关类生成带文字的图片&…...
如何为Kafka加上账号密码(二)
认证策略SASL/PLAIN 上篇文章中我们讲解了Kafka认证方式和基础概念,并比较了不同方式的使用场景。 我们在《2024年了,如何更好的搭建Kafka集群?》中集群统一使用PLAINTEXT通信。Kafka通常是在内网使用,但也有特殊的使用场景需要…...
【大数据】Flink on YARN,如何确定 TaskManager 数
Flink on YARN,如何确定 TaskManager 数 1.问题2.并行度(Parallelism)3.任务槽(Task Slot)4.确定 TaskManager 数 1.问题 在 Flink 1.5 Release Notes 中,有这样一段话,直接上截图。 这说明从 …...
ES节点故障的容错方案
ES节点故障的容错方案 1. es启动加载逻辑1.1 segment和translg组成和分析1.2 es节点启动流程1.3 es集群的初始化和启动过程 2. master高可用2.1 选主逻辑2.1.1 过滤选主的节点列表2.1.2 Bully算法2.1.2 类Raft协议2.1.3 元数据合并 2.2 HA切换 3. 分片高可用3.1 集群分片汇报3.…...
【Flink】FlinkSQL实现数据从Kafka到MySQL
简介 未来Flink通用化,代码可能就会转换为sql进行执行,大数据开发工程师研发Flink会基于各个公司的大数据平台或者通用的大数据平台,去提交FlinkSQL实现任务,学习Flinksql势在必行。 本博客在sql-client中模拟大数据平台的sql编辑器执行FlinkSQL,使用Flink实现数据从Kafka传…...
Unity GC
本文由 简悦 SimpRead 转码, 原文地址 mp.weixin.qq.com 简略版本 在 Unity 中,垃圾回收(Garbage Collection,GC)采用的是基于标记-清除(Mark and Sweep)算法的自动内存管理机制。 基于标记-清…...
Vue源码系列讲解——变化侦测篇【下】(Array的变化侦测)
目录 1. 前言 2. 在哪里收集依赖 3. 使Array型数据可观测 3.1 思路分析 3.2 数组方法拦截器 3.3 使用拦截器 4. 再谈依赖收集 4.1 把依赖收集到哪里 4.2 如何收集依赖 4.3 如何通知依赖 5. 深度侦测 6. 数组新增元素的侦测 7. 不足之处 8. 总结 1. 前言 上一篇文…...