![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
日志
TineAine
春随柳絮散不尽,君若烟火是流年
展开
-
eslint禁止当前页报错(不检查当前页)
页面顶部添加 /* eslint-disable */ 即可原创 2021-12-30 10:51:08 · 1557 阅读 · 0 评论 -
Kubernets之Node、Pod和容器的关系
Pod根据调度配置分布在Node上,一个Pod可以包含多个容器Pod中最少存在一个容器(Pause),且Pod内任何容器端口不能冲突Pod中,所有容器共享网络栈和存储卷,因此可以通过localhost访问同一个Pod中的其他不同容器的资源Node可承载多个Pod,Pod可承载多个容器...原创 2021-09-20 09:52:05 · 5049 阅读 · 0 评论 -
Kubernets之HorizontalPodAutoScale原理(HPA)
HorizontalPodAutoScale简称HPA,目前仅在Deployment和RS中生效,早期版本支持通过CPU进行伸缩,目前版本支持根据CPU和内存进行伸缩实际上HPA就是一个Pod的资源监视器,假设一个RS的Pod的资源(如CPU、内存)超过了指定值,将会创建新的Pod水平扩展,直到CPU或内存使用率恢复正常范围,最大不会超过预设的最大值;同时如果资源利用率较低(资源闲置),将会销毁掉部分POD,同样的这个数字也不会小于预设的最小值。...原创 2021-09-20 09:51:19 · 259 阅读 · 0 评论 -
Kubernets之部署方式
Kubernets的有状态部署StatefulSet是Kubernets中的有状态部署,其特点是:数据存储持久化,通过PVC实现网络地址稳定:重启Pod其PodName和主机名不会改变,通过Headless Service实现有序部署/删除:前一个Pod运行成功,后续的Pod才能启动,而在删除时,也是有序的进行操作(比如Nginx - Apache - Mysql,启动会先启动Mysql,等待Mysql启动后才会启动Apache,同理删除时也会先删除Nginx,然后再删除Apache),通过Ini原创 2021-09-20 09:50:04 · 105 阅读 · 0 评论 -
Nifi启动报错:Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
原因:JDK版本和要求的不一致,如Nifi 1.12.1要求JDK1.8,但选择了JDK 11,就有可能存在这种问题另外在调试Nifi时,也有可能因为Nifi源文件的Pom中指定了JDK11,导致编译失败或启动后报错,同样改为1.8即可。解决改为官方要求的版本(1.12.1指定的是1.8)...原创 2021-09-16 15:14:27 · 668 阅读 · 0 评论 -
微服务 Redis链接问题
异常启动微服务时报错Connection failure occurred. Restarting subscription task after 5000 ms原因未启动Redis,无法连接到Redis服务解决检查Yaml、Properties配置文件或Nacos中的配置是否正确检查Redis服务是否启动从服务所在主机尝试链接Redis,查看能否联通...原创 2021-08-17 11:05:27 · 809 阅读 · 0 评论 -
Centos 安装JDK(压缩包)
步骤前往Oracle 下载安装包解压缩并移动到合适的目录配置环境变量并刷新下载安装包选择要安装的版本并下载(需要注册一个Oracle账户)https://www.oracle.com/java/technologies/javase-downloads.html解压缩并移动# 其中/opt/java 就是要安装jdk的目录,本次使用的是jdk1.8tar zxvf jdk-8u301-linux-x64.tar.gz && mkdir /opt/java &&原创 2021-07-26 09:07:20 · 483 阅读 · 0 评论 -
Nifi Api访问
Nifi ApiNifi通过Restful API的形式将自身的功能开放,用户可以在编写脚本时,通过HTTPClient的方式直接调用这些接口,以达到对Nifi自动化操作的目的参考Nifi API Document:https://nifi.apache.org/docs/nifi-docs/rest-api/index.html环境Nifi 单节点服务或Nifi 集群模式,需要能访问到Nifi开放的8080端口(默认)需通过HttpClient方式访问调用我们不能和之前一样调用lo原创 2021-03-18 16:24:12 · 2094 阅读 · 0 评论 -
Nifi 处理器开发 - 如何写Content
// flowFile = session.write(flowFile, out -> out.write("要写入Content的内容"));flowFile = session.write(flowFile, out -> out.write(value.get().getBytes()));原创 2021-02-20 10:20:17 · 257 阅读 · 0 评论 -
Nifi 处理器开发 - 如何读Content
if (RedisConfig.equals("ERROR")) { // Oracle的配置 final Charset charset = StandardCharsets.UTF_8; final byte[] buffer = new byte[1024]; final AtomicInteger bufferedByteCount = new AtomicInteger(0); session.read(flowFile, new InputStreamCa原创 2021-02-20 10:19:22 · 347 阅读 · 0 评论 -
Nifi 定时任务
Nifi定时任务不需要在处理器中定义,只需要在处理器配置中的Scheduling标签页中设置即可设置位置表达式的基本形式秒 分钟 小时 一个月中的一天 月 周(星期) 年(可选)特殊标识通过*表达通配符,也就是任意,通过?标识未指定,仅用于周(星期)值的表示单独数字(可以用,分割多个时间段),如分钟字段设置为 1,2,5,即代表1分钟,2分钟和5分钟时间范围(一个时间段,用-表示)如分钟字段设置为 1-10,即代表从1分钟到十分钟自动增量(系统自动增量,用/分割开始和增量)如分钟字段设原创 2021-02-19 10:18:46 · 1787 阅读 · 1 评论 -
Nifi 处理器开发 - 并发问题
并发问题1.通过使用volatile关键字确保防止编译器优化(确定该值为不确定,易改变的值,每次使用都会重新读取,而不是用寄存器中的缓存)// 出自Nifi CountText处理器源码// 这些变量可能以多线程方式进行访问,因此不能使用寄存器中的缓存进行处理private volatile boolean countLines;private volatile boolean countLinesNonEmpty;private volatile boolean countWords;pri原创 2021-02-19 08:48:19 · 331 阅读 · 0 评论 -
Nifi 处理器开发 - 如何写Attribute
如何写Attribute1.类中定义参数的键名和值// 定义参数和值public static final String TEST = "test";2.写入FlowFile// 定义一个HashMap(用于存放新的属性,名称不限)Map<String, String> metricAttributes = new HashMap<>();// 将属性送入一个Map中(多个属性就多次压入)metricAttributes.put(TEST, "Hello");//原创 2021-02-19 08:47:28 · 309 阅读 · 0 评论 -
Nifi 处理器开发 - 如何读取Attribute
// 参数key指的就是属性的key值,传入即可获取valueString test = flowFile.getAttribute(key);原创 2021-02-19 08:46:37 · 401 阅读 · 0 评论 -
Nifi 处理器开发 - 如何读取Processor参数
如何读取Processor参数1.首先定义参数 public static final PropertyDescriptor TEXT = new PropertyDescriptor .Builder().name("Text") .displayName("text") .description("这部分是描述") .required(true) .addValidator(原创 2021-02-19 08:45:30 · 436 阅读 · 0 评论 -
Nifi 处理器开发 - 如何创建Processor参数和返回
1.声明参数// 参数1public static final PropertyDescriptor USE_FILE = new PropertyDescriptor.Buildler() // 参数名 .name("Use File") // 显示名 .displayName("Use File") // 必须的参数(如果不填则处理器报错) .required(true) // 允许的值(其值只能是括号内的值) .allowableVa原创 2021-02-19 08:44:42 · 464 阅读 · 0 评论 -
Nifi组件的生命周期
OnAdded当该处理器被拖动到画布时执行(创建组件时执行)OnEnabled当该处理器被启用时执行OnRemoved当该处理器被从流中移除时触发OnScheduled当每次计划运行时触发(不应被应用于ControllerService),一般用于处理器或运行报告(Log)中。OnUnscheduled和OnScheduled类似,会因为计划运行结束而触发OnStopped当Nifi系统结束时(不再运行处理器、Log任务和从方法中返回线程)OnShutdown当Nifi成功结束后,原创 2021-02-19 08:42:22 · 405 阅读 · 0 评论 -
Nifi操作Oracle
简介Nifi可以很轻易的操作Oracle,实现常见的查插删改,本文以Oracle数据库为范例,但并不代表只能操作Oracle数据库,你可以更换驱动和URL来操作其他数据库服务DBCPConnectionPoolNifi通过该服务操作Oracle数据库(当然也可以操作其他数据库,选择不同链接即可)控制器ExecuteSQL执行SQLConvertAvroToJSON将Avro转换为JSON(Nifi查询后结果为Avro)案例全家福解读我们通过HTTP Request控制器(Hand原创 2021-02-02 16:26:21 · 1549 阅读 · 0 评论 -
Nifi操作Redis
Nifi功能Nifi操作Redis简介Nifi操作Redis,需要通过服务的形式,其流程非常简单,创建服务——>创建处理器——>测试服务RedisConnectionPoolService该控制器服务用来链接到Redis,并控制链接参数RedisDistributedMapCacheClientService控制器PutDistributedMapCacheFetchDistributedMapCache案例通用步骤通用步骤指的是读写Redis都需要执行的操作,其实就原创 2021-02-02 11:32:11 · 1797 阅读 · 2 评论 -
树莓派4B安装Docker(64位)
# 首先下载脚本curl -fsSL https://get.docker.com -o get-docker.sh# 为脚本赋予运行权限sudo chmod o+x get-docker.sh# 执行脚本sudo sh get-docker.sh原创 2021-01-26 20:36:28 · 452 阅读 · 0 评论 -
Debug:Spring Boot测试故障
特征java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=…) with your test原因测试类直接就在test的根目录,没有和application同级解决为test创建和项目相同的包路径即可(main)...原创 2021-01-21 14:00:43 · 136 阅读 · 0 评论 -
Office 自动编号
Office技巧Office 自动编号通过Office/WPS的多级列表的功能,实现对大量标题快速编号注意,Office中多级标题是一个单独的按钮,而WPS中他们都被集中到了一个对话框中(Office中是两个对话框)Office点击多级列表小按钮的下拉列表(下三角形),选择定义新的多级列表可以打开这个窗口,重点是右侧的“将级别链接到样式”中,将每个级别链接到不同的标题上,默认标号后会有一个制表符,如果想去掉该制表符,在右下的“编号之后”将其改为不特别标注即可WPS中操作也是类似的,只是原创 2020-12-24 14:42:22 · 391 阅读 · 0 评论 -
Python日期时间操作
# coding=utf-8# 主核心类import datetimeclass idt: def __init__(self): pass # 获取今天的日期和时间 def getToday(self, format="%Y-%m-%d %H:%M:%S"): return datetime.datetime.now().strftime(format) # 获取今天的日期 def getDate(self, form原创 2020-12-21 11:39:10 · 118 阅读 · 0 评论 -
Go 匿名变量
package mainimport "fmt"func main(){ // 多重赋值 i,j := 10,20 // 多重赋值 a,b := 100,200 // 两个变量交换数据 i,j = j,i // 两个变量交换数据 a,b = b,a // 一个下划线就是一个匿名变量 a,_ = j,i fmt.Println(i,j) fmt.Println(a,b)}// 在函数返回值中的应用package mainimport "fmt"// Go允许返回原创 2020-12-10 10:32:27 · 144 阅读 · 0 评论 -
Go 同时定义多个变量或常量
// 变量定义的常规方法var a intvar b int// 变量定义的集合定义var( a int b float64)// 变量自动推导类型var( a = 10 b = 3.14)// -------------------------// 常量定义的常规方法const a int = 10const b float64 = 3.14// 常量定义的集合定义const( a int = 10 b float64 = 3.14原创 2020-12-10 10:31:30 · 3336 阅读 · 0 评论 -
Go中Iota的使用
package mainimport "fmt"func main() { // ------------------------- // 一般用于给常量赋值使用 const ( // 会自动累加:0 a = iota // 会自动累加:1 b = iota // 会自动累加:2 c = iota ) // 遇到const会重置为0 const d = iota fmt.Println(a, b, c, d) // ---------------------原创 2020-12-10 10:30:20 · 191 阅读 · 0 评论 -
Python获取周几日期
class Date: # 周一 Monday = "" # 周二 Tuesday = "" # 周三 Wednesday = "" # 周四 Thursday = "" # 周五 Friday = "" # 周六 Saturday = "" # 周天 Sunday = "" def __init__(self): now = datetime.datetime.now(原创 2020-11-18 15:47:38 · 568 阅读 · 0 评论 -
在Python中调用C# dll功能库
测试的C#库在我另一篇文章里:点击访问必须首先安装pythonnet,不要直接用Pycharm安装clr库报错一般更新一下pip或切换到国内源即可如果安装了Anaconda,也有可能造成导入失败from clr import AddReference# 指定要引用的库# 默认情况下运行库都会保存到这个目录AddReference(r"D:\Coding\imtools\C Sharp\Automation\Automation\bin\Debug\\Automation")#..原创 2020-10-30 14:57:00 · 553 阅读 · 0 评论 -
Python根据百分比模拟点击
很多情况下模拟点击会受分辨率的影响,但我们可以根据百分比来进行操作class OperationTools: resolution = None mouse = None def __init__(self): # 获取屏幕分辨率 self.resolution = SystemTools.get_real_resolution() # 使鼠标移动到指定的坐标 # 参数(x坐标,y坐标,移动时间:默认为0) de..原创 2020-10-22 10:07:58 · 280 阅读 · 0 评论 -
Python获取系统分辨率
class SystemTools: # 获取当前适用的分辨率 @staticmethod def get_real_resolution(): hDC = win32gui.GetDC(0) w = win32print.GetDeviceCaps(hDC, win32con.DESKTOPHORZRES) h = win32print.GetDeviceCaps(hDC, win32con.DESKTOPVERTRES) .原创 2020-10-22 10:03:58 · 1586 阅读 · 0 评论 -
Windows下 PIP快速切换到国内源
Pip默认是从国外的服务器进行下载,因此最好是通过修改本地的配置使pip从国内的源下载国内常用镜像清华:https://pypi.tuna.tsinghua.edu.cn/simple 中科大:https://pypi.mirrors.ustc.edu.cn/simple/ 中科技:http://pypi.mirrors.ustc.edu.cn/simple/ 阿里:http://mirrors.aliyun.com/pypi/simple/ 豆瓣:http://pypi.doub...原创 2020-08-19 17:21:15 · 266 阅读 · 0 评论 -
Python 打开Excel文档时出现PermissionError: [Errno 13] Permission denied: ‘C:\\Users\\Tsos2\\Desktop//模板
Traceback (most recent call last): File "a.py", line 456, in <module> File "a.py", line 451, in main File "a.py", line 432, in do_main File "a.py", line 249, in do_ems File "a.py", line 84, in insert_line File "a.py", line 73, in writeEx.原创 2020-08-05 10:56:59 · 2012 阅读 · 0 评论 -
数据结构中的常见术语
数据(Data)客观上代表一种事物的符号,包括文字图片声音和照片等,这些都可以称为数据数据元素(Data Element)组成数据的基本单元,一般的,元素被作为整体来看待,一个数据可以由多个数据元素组成。数据项(Data Item)数据项是最小的数据单位,并且其具有不可再分的特性,也称为字段或域;一个数据元素可以由多个数据项组成数据对象(Data Object)是数据的一个子集,可以将多个相同类型的数据元素看做一个数据对象,一般由多个相同性质的数据元素组成。数据类型(Data原创 2020-07-26 20:56:31 · 1652 阅读 · 0 评论 -
Python对指定目录进行深度优先遍历(DFS)
import os# 在此处粘贴要遍历的目录路径path = r'D:\论文'# 定义要输出到那个文件f = open(r"D:\out.txt", "w")# DFS遍历函数# 需要传入一个字符串类型的遍历地址def DFS(file_dir): # 进行循环遍历 for root, dirs, files in os.walk(file_dir): # # 输出当前所在的目录,以及当前目录包含的文件和文件夹 # print('当前目.原创 2020-07-22 16:50:21 · 854 阅读 · 0 评论 -
通过Python操作剪贴板
写入剪贴板import win32clipboard as wimport win32con# Author: Aine# Version: 1.0.0# Date: 2020-07-21# 修改剪贴板内容# 传入需要的值即可修改剪贴板def SetClipboard(Str): w.OpenClipboard() w.EmptyClipboard() w.SetClipboardData(win32con.CF_UNICODETEXT, Str)原创 2020-07-22 16:45:02 · 744 阅读 · 0 评论 -
Python弹出打开文件对话框
import win32ui# 0代表另存为对话框,1代表打开文件对话框dlg = win32ui.CreateFileDialog(1)# 默认目录dlg.SetOFNInitialDir('C:/') # 显示对话框dlg.DoModal()# 获取用户选择的文件全路径filename = dlg.GetPathName()...原创 2020-07-07 16:39:47 · 2726 阅读 · 0 评论 -
面试:什么是AOP?AOP中最重要的概念是什么?
AOP(Aspect Oriented Programming),也称为面向切面编程,是OOP的一种延续,目的就是将与主业务无关的事情放到代码外去做,尽可能减少代码臃肿,并减少代码的重复部分。OOP通过继承大幅度的减少了类中重复的代码,AOP通过切面减少了方法外或方法中的横切逻辑代码。AOP最常用的地点就是日志,假设有一个加工流水线,分别是负责洗菜的A,负责做菜的B和负责上菜的C,通常用户点一份菜需要三分钟,但偶尔会出现三小时都没法上菜的情况,这就需要负责人去研究是那个环节出现了问题,比如让每个人把工作原创 2020-06-15 14:50:43 · 660 阅读 · 0 评论 -
面试:什么是IoC,IoC和DI的区别是什么?
IoC也称为控制反转,是一种思考方式,其主要关注点在于Java对象的创建与管理的问题。和传统的方式相比,当我们需要一个对象的时候,不需要直接new一个,而是去Spring容器中拿一个即可,此时我们失去了对对象的控制权,仅保有使用权。但这样也可以无需关注对象的管理。所谓控制,指的是管理对象的权利;所谓反转,指的是由Spring管理而不是开发者管理IoC的其中一个目的是为了解耦合,当将一个对象交给第三方容器管理后,那么对象之间的耦合相较于传统new方式会降低。同时Spring IoC也可以降低对象的原创 2020-06-15 14:30:58 · 1716 阅读 · 0 评论 -
链接和软连接的区别是什么?
ln [-sf] 源文件 目标文件 -s:标明为符号链接(软连接,不加就是硬链接) -f:如果目标文件存在,则先删除在创建 硬链接:是一个指向目标索引节点(inode)的一个指针,系统不会为其分配新的inode,每添加一个硬链接,文件的链接数就会+1,只要该文件的链接数不为0,就不会真正的被删除。其移动文件不会导致链接失效,但不能在不同的文件系统间建立,并且只能由超级管理员对目录进行链接 软连接:类似于Windows下的快捷方式,也称为符号链接,是实际上创建了一个新文...原创 2020-06-12 09:45:10 · 336 阅读 · 0 评论 -
Linux中的目录结构
/bin:存放二进制的可执行文件(ls、cat、mkdir) /etc:存放系统管理和配置文件 /home:存放所有用户文件的根目录 /root:超级管理员的主目录 /usr: 存放系统中安装的应用程序 /opt:安装的可选应用包,比如Tomact等 /proc:虚拟文件目录,是系统内存的映射,其中包含了系统的各种信息 /sbin:存放二进制可执行文件,只有root才能访问 /mnt:安装临时文件的安装点,可以挂载其他的文件..原创 2020-06-11 14:42:00 · 242 阅读 · 0 评论