- 博客(2407)
- 收藏
- 关注
转载 java中调用谷歌的无界浏览器对页面元素进行截图
版本根据自己电脑上的谷歌浏览器匹配就好,有可能你装的64位的,但驱动只有32位的,这没关系,我自己是64位的浏览器,用32位的驱动照样可以。最好把这些地址都做成配置文件,我用的是springboot,就直接放在properties文件里了。调用谷歌的无界浏览器,最起码得先装一个谷歌浏览器,然后进行下一步,selenium的版本选高一点,我用3.x的版本报错了。#调用的Chrome浏览器驱动存放位置。或者直接用这个链接下载,版本自己选。#调用的Chrome浏览器安装位置。然后下载谷歌浏览器的无界驱动。
2023-12-30 10:21:33
551
原创 Window7 docker安装
上github下载boot2docker放到C:\Users\[userName]\.docker\machine\cache目录,重新启动虚拟机。双击 Docker Quickstart Terminal启动。-ce后缀的是免费的版本,其他是收费版本。一、下载docker toolbox。启动拉boot2docker镜像失败。三、启动docker。
2022-10-02 12:32:58
1585
原创 SpringBoot2.1.9 MongoDB的Query语法
(6)数组满足所有条件,不一定是同一元素满足所有条件。(4)数组至少存在一个元素满足所有条件。(5)数组元素包含所有指定元素。
2022-10-01 20:43:03
452
原创 SpringBoot2.1.9 多MongoDB配置自动扫描
(1)第一个mongodb配置(主)(2)第二个mongo配置。(3)mongo导入配置。
2022-10-01 17:41:16
646
原创 K8S Learning(12)——Pod调度
一、Pod调度在默认情况下,一个Pod在哪个Node节点上运行,是由Scheduler组件采用相应的算法计算出来的,这个过程是不受人工控制的。但是在实际使用中,这并不满足的需求,因为很多情况下,我们想控制某些Pod到达某些节点上,那么应该怎么做呢?这就要求了解kubernetes对Pod的调度规则,kubernetes提供了四大类调度方式: 自动调度:运行在哪个节点上完全由Scheduler经过一系列的算法计算得出 定向调度:NodeName、NodeSelector 亲和性调
2022-02-02 12:49:29
1896
原创 K8S Learning(11)——Pod生命周期
一、Pod生命周期一般将pod对象从创建至终的这段时间范围称为pod的生命周期,它主要包含下面的过程: pod创建过程 运行初始化容器(init container)过程 运行主容器(main container) 容器启动后钩子(post start)、容器终止前钩子(pre stop) 容器的存活性探测(liveness probe)、就绪性探测(readiness probe) pod终止过程 在整个生命周期中,Pod会出
2022-02-02 11:05:43
443
原创 K8S Learning(10)——Pod配置
pod.spec.containers属性是pod配置中最为关键的一项配置。kubectl explain pod.spec.containersKIND: PodVERSION: v1RESOURCE: containers <[]Object> # 数组,代表可以有多个容器FIELDS: name <string> # 容器名称 image <string> # 容器需要的镜像地址 imagePul...
2022-02-01 12:26:53
3378
原创 K8S Learning(9)——Pod介绍
一、 Pod结构每个Pod中都可以包含一个或者多个容器,这些容器分为两类: 用户程序所在的容器,数量没有限制 Pause容器,这是每个Pod都会有的一个根容器,它的作用有两个: 可以以它为依据,评估整个Pod的健康状态 可以在根容器上设置Ip地址,其它容器都此Ip(Pod IP),以实现Pod内部的网路通信 这里是Pod内部的通讯,Pod的之间的通讯采用虚拟二层网络技术来实现,当前环境用的是Flannel 二、Pod定义Pod的资源清单
2022-02-01 11:45:55
951
原创 K8S Learning(8)—— Service
一、Service简介利用Deployment来创建一组Pod来提供具有高可用性的服务,每个Pod都会分配一个单独的Pod IP,却存在以下两个问题: Pod IP 会随着Pod的重建产生变化 Pod IP 仅仅是集群内可见的虚拟IP,外部无法访问 对于访问这个服务带来了难度。kubernetes设计了Service来解决这个问题。Service可以看作是一组同类Pod对外的访问接口。借助Service,应用可以方便地实现服务发现和负载均衡。二、Service配置
2022-01-31 19:12:20
1083
原创 K8S Learning(7)—— Deployment
一、Deployment简介在kubernetes中,Pod是最小的控制单元,但是kubernetes很少直接控制Pod,一般都是通过Pod控制器来完成的。Pod控制器用于pod的管理,确保pod资源符合预期的状态,当pod的资源出现故障时,会尝试进行重启或重建pod。在kubernetes中Pod控制器的种类有很多,如:Deployment、ReplicaSet、DaemonSet、Job、CronJob。二、Deployment操作(1) 命令操作# 命令格式: kubectl
2022-01-31 19:00:15
879
原创 K8S Learning(6)——Label
一、Label简介Label是kubernetes系统中的一个重要概念。它的作用就是在资源上添加标识,用来对它们进行区分和选择。Label的特点: 一个Label会以key/value键值对的形式附加到各种对象上,如Node、Pod、Service等等 一个资源对象可以定义任意数量的Label ,同一个Label也可以被添加到任意数量的资源对象上去 Label通常在资源对象定义时确定,当然也可以在对象创建后动态添加或者删除 可以通过Label实现资源的多维度分组,以便灵
2022-01-31 18:47:05
813
原创 K8S Learning(5)——Pod
一、Pod简介Pod是kubernetes集群进行管理的最小单元,程序要运行必须部署在容器中,而容器必须存在于Pod中。Pod可以认为是容器的封装,一个Pod中可以存在一个或者多个容器。kubernetes在集群启动之后,集群中的各个组件也都是以Pod方式运行的。通过命令查看kube-system命名空间下的组件pod: kubectl get pod -n kube-system二、命令式管理pod(1)创建并运行kubernetes没有提供单独运行Pod的命令,都...
2022-01-03 22:25:37
1319
原创 K8S Learning(4)——Namespace
一、Namespace简介Namespace是kubernetes系统中的一种非常重要资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。默认情况下,kubernetes集群中的所有的Pod都是可以相互访问的。但是在实际中,可能不想让两个Pod之间进行互相的访问,那此时就可以将两个Pod划分到不同的namespace下。kubernetes通过将集群内部的资源分配到不同的Namespace中,可以形成逻辑上的"组",以方便不同的组的资源进行隔离使用和管理。可以通过kubernet
2022-01-03 22:03:12
416
原创 K8S Learning(3)——资源管理
一、资源在kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理kubernetes。kubernetes的本质上就是一个集群系统,用户可以在集群中部署各种服务,所谓的部署服务,其实就是在kubernetes集群中运行一个个的容器,并将指定的程序跑在容器中。kubernetes的最小管理单元是pod而不是容器,所以只能将容器放在Pod中,而kubernetes一般也不会直接管理Pod,而是通过Pod控制器来管理Pod的。Pod可以提供服务之后,就要考虑如何访问Pod中服
2022-01-03 15:51:52
342
原创 K8S Learning(2)——集群环境搭建
一、部署Kubernetes 集群有两种方式:(1)kubeadmKubeadm 是一个K8s 部署工具,提供kubeadm init 和kubeadm join,用于快速部署Kubernetes 集群。官方地址:Kubeadm | Kubernetes(2)二进制包从github 下载发行版的二进制包,手动部署每个组件,组成Kubernetes 集群。Kubeadm 降低部署门槛,但屏蔽了很多细节,遇到问题很难排查。如果想更容易可控,推荐使用二进制包部署Kubernetes 集
2022-01-03 15:14:45
310
原创 K8S Learning(1)——简介
一、Kuberneteskubernetes,是一个全新的基于容器技术的分布式架构领先方案,是谷歌严格保密十几年的秘密武器——Borg系统的一个开源版本,于2014年9月发布第一个版本,2015年7月发布第一个正式版本。kubernetes的本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理。目的是实现资源管理的自动化,主要提供了如下的主要功能: 自我修复:一旦某一个容器崩溃,能够在1秒中左右迅速启动新的容器 弹性伸缩:可以根据需要,自动对集群中正
2022-01-03 15:07:09
635
原创 Java Jenkins Api
一、Maven<dependency> <groupId>com.cdancy</groupId> <artifactId>jenkins-rest</artifactId> <version>0.0.20</version></dependency>github地址:https://github.com/cdancy/jenkins-rest如果需要最新的代码版本,则拉取源码编译安装
2021-11-14 21:28:47
2320
原创 Java 证书pem转KeyStore、jks文件
一、服务端pem转KeyStore CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509"); FileInputStream caInputStream = new FileInputStream(caPath); List<X509Certificate> caList = certificateFactory.generateCert.
2021-10-24 00:37:28
2951
原创 Java RSA私钥的格式pkcs1和pkcs8、PrivateKey转换
()一、私钥格式(1)pkcs1格式:-----BEGIN RSA PRIVATE KEY-----...-----END RSA PRIVATE KEY-----(2)pkcs8格式:-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----pkcs1私钥生成openssl genrsa -out pkcs1.pem 1024pkcs1转pkcs8私钥 :openssl pkcs8 -in pkcs8....
2021-10-17 16:38:49
10745
原创 Java SSL与TLS客户端证书配置
一、证书存储格式1、pem格式:pem、crt、key。编码方式base64、pkcs1、pkcs82、p123、jks(依赖jdk版本,小版本差异会报错)二、TLS安全概念(1)PKIPKI是 Public Key Infrastructure的简称,意思是公钥基础设施。公钥基础设施是提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥和证书。通过证书和秘钥来确认通讯双方是否可信任。(2)CACA是Certificate Authority的简称,即证书的签发机构
2021-10-17 15:52:08
6383
原创 Java 并发总结——AQS
一、AQSJava并发包(JUC)中提供了很多并发工具,ReentrangLock、Semaphore,它们的实现都用到了一个共同的基类——AbstractQueuedSynchronizer,简称AQS。AQS是一个用来构建锁和同步器的框架,使用AQS能简单且高效地构造出应用广泛的大量的同步器,比如我们提到的ReentrantLock,Semaphore,其他的诸如ReentrantReadWriteLock,SynchronousQueue,FutureTask等皆是基于AQS的(1)基本实
2021-08-01 21:40:22
350
原创 Java 并发总结——进程与线程
一、线程(1)线程与进程进程是一个实体,每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可
2021-08-01 21:38:32
347
原创 Java 并发总结——线程池
一、线程池在程序启动的时候就创建若干线程来响应处理,它们被称为线程池,里面的线程叫工作线程(1)线程池的作用1、降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。2、提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。3、提高线程的可管理性。(2)常用线程池ExecutorService 是主要的实现类1、newSingleThreadExecutor创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务, 保证所有任务按照指定顺序(FIFO,
2021-08-01 21:37:25
390
原创 Java 并发总结——高并发与同步锁
一、线程(1)线程与进程进程是一个实体,每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可
2021-08-01 21:08:33
472
原创 DNS总结
一、DNS(1)简介域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS 协议也是应用层的协议,DNS 使用客户-服务器模式运行在通信的端系统之间,在通信的端系统之间通过下面的端到端运输协议来传送 DNS 报文。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。(2)DNS服务器1、本地域名服务器LDNS
2021-08-01 15:32:41
1053
原创 SpringCloud总结
一、SpringCloud(1)简介Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,做到一键启动和部署。(2)设计目标协调各个微服务,简化分布式系统开发。(3)优点1、组件丰富,功能齐全。Spring Cloud 为微服务架构提供了非常完整的支持。2、Spring Cloud 社区活跃度很高,教程很丰富,遇到问题很容易找到解决方案3、服务拆分粒度更细,耦合度比较低,有利于资源重复利用,有利于提高开发效率
2021-07-16 00:23:52
518
原创 计算机网络总结
一、计算机网络体系(1)OSI分层 (7层)物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。(2)TCP/IP分层(4层)网络接口层、 网际层、运输层、 应用层。(3)五层协议 (5层)物理层、数据链路层、网络层、运输层、 应用层。二、五层协议(1)应用层应用层(application-layer)的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。HTTP协议超文本传输协议(HT
2021-07-14 22:23:15
384
3
原创 Mybatis总结
一、Mybatis(1)简介MyBatis 是一款优秀的持久层框架,一个半 ORM(对象关系映射)框架,它支持定制化SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects)为数据库中的记录。(2)优点1、基于SQL语句编程,相当灵活。SQL写在XML中,解除sql与程序代码的耦合,便于统一
2021-07-13 23:10:22
291
原创 SpringBoot总结
一、SpringBoot(1)简介SpringFramework:最重要的特征是依赖注入。所有 SpringModules 不是依赖注入就是 IOC 控制反转。使用 DI 或者是 IOC 的时候,可以开发松耦合应用。松耦合应用的单元测试可以很容易的进行。Spring MVC:提供了一种分离式的方法来开发 Web 应用。通过运用像 DispatcherServelet,MoudlAndView 和 ViewResolver 等一些简单的概念,开发 Web 应用将会变的非常简单。SpringBo
2021-07-11 21:26:14
383
原创 Spring MVC总结
一、Spring MVC(1)介绍Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架。通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。(2)优点1、可以支持各种视图技术,而不仅仅局限于JSP;2、与Spring框架集成(如IoC容器、AOP等);3、清晰的角色分配:前端控制器(dispatcherServlet) ,请求.
2021-07-11 19:09:41
788
原创 Spring Aop总结
一、什么是AOP面向方面的编程(AOP)是一种编程技术,是面向对象编程的补充,它也提供了模块化。在面向对象编程中,关键的单元是对象,AOP的关键单元是切面,或者说关注点。一些切面可能有集中的代码,但是有些可能被分散或者混杂在一起,它允许程序员模块化横切关注点或行为,这些问题或行为跨越典型的责任分工,例如日志记录和事务管理。二、关注点和横切关注点(1)关注点应用的模块中实现的行为。关注点可以被定义为:我们想实现以解决特定业务问题的方法。(2)横切关注点贯穿整个应用程序的关注点。像
2021-07-11 11:38:51
442
原创 Java JVM总结
一、jvm参数1)内存-Xms-Xmx-Xss-Xloggc:file-Xprof-XX:+DisabledExplicitGC-XX:PreBlockSpin-XX:CompileThreshold2)Parallel-XX:SurvivorRatio-XX:PreTenureSizeThreshold-XX:MaxTenuringThreshold-XX:+ParallelGCThreads-XX:+UseAdaptiveSizePolicy.
2021-06-21 22:12:40
380
原创 常用解题算法总结
一、四大基本算法分治法动态规划贪心算法穷举法二、其他算法异或法和差法头尾双指针快慢指针三、算法的复杂度优先级 算法 时间复杂度 空间复杂度 1 O(1) 0或O(1) 2 O(N) 0或O(1) 3 O(NlogN) 0或O(1) 4 O(N) O(N) 5 O(NlogN) O(N) 6 ...
2021-06-11 21:33:29
371
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人