自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Addison艾迪生博客

学好Java,用好Java。

  • 博客(32)
  • 资源 (1)
  • 收藏
  • 关注

原创 linux支持vGPU方案

no-opengl-files #只安装驱动文件,不安装OpenGL文件。-no-nouveau-check #安装驱动时禁用nouveau。-no-x-check #安装驱动时关闭X服务。问题处理:nvidia部分模块已经加载内核中的问题。

2024-04-26 13:44:34 74

原创 虚拟机备份和还原

备注:-f:源文件格式,-p:备份进度,-O:输出文件格式 ubuntu233.qcow2:源文件 ubuntu20.04_202306_233.raw:目标文件。备注:--name:虚拟机名字,--ram:内存大小,--vcpus:处理器数量,path:磁盘镜像文件路径。备注:出现该问题先删除:rmmod floppy;注意:eth0是否存在: dhclient eth0,如果不存在,查询可用的网络设备:ip a。2.1 打开hyper-v管理客户端,创建虚拟机交换机。2.3 启动虚拟机,配置网络。

2024-04-24 10:14:47 216

原创 rabbitmq集群配置

2,配置postStart函数,在Pod容器启动后执行的命令:脚本主要用于在RabbitMQ容器启动后,配置DNS,然后等待RabbitMQ服务启动并健康检查,最后判断并处理节点是否已加入集群的情况。RABBITMQ_ERLANG_COOKIE:设置Erlang Cookie用于节点间通信安全验证,值来自/nfs/rabbitmq/lib/.erlang.cookie文件内容。

2024-04-24 09:53:10 91

原创 rabbitmq集群概念讲解

Classic queues support dead letter exchanges (经典队列支持死信交换机):无法被消费的消息(包括:过期的消息、消息被拒绝且不重新入队、队列达到最大长度),这些消息称为死信,死信会被自动路由到死信交换机,进而转发至绑定死信交换器的队列中。故障处理的明确性: 经典镜像队列在处理故障时可能缺乏明确的、易于理解的语义,这可能导致用户在面对故障时难以做出正确的决策,或者在恢复过程中遇到不确定性。但是其他节点也能感知到这个队列的存在,且能代理客户端对该队列的请求。

2024-04-24 09:49:26 651

原创 vitess介绍

VTTablet :是一个位于 MySQL 数据库前面的代理服务器, Vitess 实现中每个 MySQL 实例前面都有一个 VTTablet 进程。Keyspace: 键空间(数据库):键空间(Keyspace) 是一种逻辑数据库,相当于 MySQL 中的 Database 概念。VTGate :是一个轻型代理服务器,它接收客户端请求,将流量路由到正确的vttablet,并将合并的结果返回给客户端。从应用的角度看,键空间就是一个单独的数据库,从键空间读数据就像从 MySQL 数据库读数据一样。

2024-04-24 09:31:47 337

原创 容器工作流

具体算法是,观察Job下的Pod已调度数量是否满足了最小运行数量,当Job的最小运行数量得到满足时,为Job下的所有Pod执行调度动作,否则,不执行。举例来说,有3个团队,共享一个集群上的资源池:A团队最多使用总集群的40%,B团队最多使用30%,C团队最多使用30%。目前某平台使用计算容器和解析容器,这两种容器目前通过rabbitmq消息来进行链接,形成容器工作流,使用容器工作流框架可以省去两个容器中间环节的控制,不需要再使用java代码对容器的操作,通过容器工作流框架即可控制容器之间的启动。

2024-04-24 09:10:45 471

原创 K8S探针分享

livenessProbe:存活探针,用于判断容器是不是健康;如果探测失败,Kubernetes就会重启容器。readinessProbe:就绪探针,用于判断是否可以将容器加入到Service负载均衡池中,对外提供服务。区别:如果提供了启动探测,其他两个探针将会被暂时禁用,直到满足配置,启动探针满足一次探测后,后续不再进行探测。上图中的配置如果容器启动时间超过20s,就会启动重启策略。如果调高失败次数,服务挂了以后不能及时重启服务。startupProbe:启动探针,判断容器内的应用程序是否已启动。

2024-04-23 17:26:23 813

原创 mvnd安装手册

路径C:\ProgramFiles\maven-mvnd-1.0-m6-m39-windows-amd64\mvn\conf\settings.xml。2. 添加环境变量,路径:C:\Program Files\maven-mvnd-1.0-m6-m39-windows-amd64\bin。一:Windows安装(mac需下载对应的darwin安装包)3. 配置mvnd,和原来maven配置文件配置一致即可;5. idea配置: 需安装maven help插件。6. 重启idea和使用mvnd。

2024-04-23 17:11:49 125

原创 jar包分离配置

<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!--start--> <configuration> <!--这里对应项目的主入口--> <main.

2021-06-22 10:30:57 120

原创 面试知识点总结

switch表达式 https://www.html.cn/qa/other/20952.htmlbyte,short,int 整型类型,字符类型char,String类型,枚举类型。内存分页 和 物理分页 https://www.cnblogs.com/cocoxu1992/p/10974325.html内存分页:先从数据库获取所有的数据,缓存到内存,然后再进行分页;例如:Mybatis 使用 RowBounds 对象进行内存分页物理分页:使用 sql 语句的 limit 分页参数 在数据

2021-06-22 10:22:04 241

原创 zuul过滤器类型及生命周期

在Zuul中定义了4种标准的过滤器类型,这些过滤器类型对应于一个服务请求的典型生命周期。1,·PRE过滤器:在请求被路由之前调用,可用来实现身份验证、在集群中选择请求的微服务、记录调试信息等。2,·ROUTING过滤器:在调用目标服务之前被调用,通常可以用来处理一些动态路由。比如,A/B测试,在这里可以随机让部分用户访问指定版本的服务,然后通过用户体验数据的采集和分析来决定哪个版本更好。另外,还可以结合PRE过滤器实现不同版本服务之间的处理。3,·POST过滤器:在目标微服务执行以后,所返回的结

2020-09-09 10:54:07 1356 1

原创 spring配置加载顺序

对于一个标准的Spring Boot应用,可以通过多种方式进行配置。比如前面一直使用的配置文件(properties或yml)、命令行参数,此外还有系统环境变量、JVM的参数等。下面我们来了解一下这些配置方式。·命令行参数:命令行参数使用--xxx=xxx格式在启动时传递,比如:--server.port=2300,就是将服务的端口设置为2300。这里的参考可以是Spring Boot框架的参数,也可以是我们自定义的参数或属性配置。·从java:comp/env加载的JNDI属性。·Java系统

2020-09-08 15:47:31 619

原创 eureke注册一个服务实例需要的时间

在实际进行微服务架构开发过程中,经常会遇到一个服务实例上线后需要很长一段时间才能够被其他服务调用者获取和使用,并不能在微服务一上线就立即被获取到,这是Eureka的机制造成的。在Eureak服务治理环境下,一个微服务上线有三处缓存处理和一处延迟处理,经过这些处理后才能够被服务消费方获取到并使用,它们分别是:·Eureka服务器对服务注册列表进行缓存,默认时间为30秒。所以即使一个服务实例刚刚注册成功,它也可能不会立即在/eureka/apps端点的结果中出现。·Eureka客户端(服务消费方)对注册的服

2020-09-07 14:06:45 455

原创 eureka自我保护模式

之前我们提到Eureka设计哲学采用的是AP原则,也就是宁可保留错误的服务注册信息,也不盲目注销任何可能健康的服务实例。因此,在Eureka中有一个自我保护模式,并默认开启。在自我保护模式下,Eureka服务器会保护服务注册表中的信息,不再注销任何服务实例。当开启自我保护模式时,在Eureka控制台将看到如图4-14所示的界面。在控制台将会以红色字体显示以下告警信息: EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTA...

2020-09-07 14:05:09 488

原创 eureka服务续约

当服务启动并成功注册到Eureka服务器后,Eureka客户端会默认以每隔30秒的频率向Eureka服务器发送一次心跳(可以在配置文件中通过eureka.instance.lease-renewal-interval-in-seconds属性进行更改)。发送心跳起始就是执行服务续约(Renew)操作,避免自己的注册信息被Eureka服务器剔除。续约的处理逻辑和与服务注册逻辑基本一致:首先更新自身状态,然后同步到其他Eureka服务器节点。对于Eureka服务器来说如果在默认的时间内(9...

2020-09-07 14:02:09 895

原创 db2常用操作语句及命令

1,db2 查询被锁定的表语句:select * from sysibmadm.LOCKS_HELD WITH ur; 其中 with ur表示带脏数据的查询,即使表被锁也可查询。2,db2查询自增序列的值语句:select * from sysibm.SYSSEQUENCES a where a.SEQNAME = 'seq_demo';其中seq_demo为创建的序列名,自增序列可作为主键。3,db2创建序列语句:create sequence seq_demo as int start wi.

2020-09-03 15:51:13 1862

原创 idea 连接远程服务器

1,打开idea设置搜索:Deployment2,输入远程服务器地址,端口号,账号,密码3,打开ssh和remote host窗口

2019-12-05 15:53:59 846

原创 撤销git pull操作

1,使用 git reflog 查看git操作记录2,使用git reset --hard a1e4925 撤销pull操作

2019-12-02 15:12:22 190

原创 git pull 远程分支设置

1,在当前工作目录下打开git bash here,输入命令:git remote show origin查询远程仓库配置情况:2,设置本地仓库分支对应的远程分支,输入命令:git branch --set-upstream-to origin/master(origin/master:远程仓库和分支)...

2019-11-22 21:00:42 631

原创 tomcat中同名类加载顺序配置

1,打开tomcat下context.xml文件,在<Context></Context>里新增 <Resources> <PreResources base="/usr/local/www/web/webapps/ROOT/WEB-INF/lib/guava-19.0.jar" cla...

2019-11-21 21:26:07 945

原创 linux命令less使用

1,查看的文件过大,我们可以使用less命令。2,less 文件名3,输入 :G 转到文件底部,可以使用方向键向上查看文件内容。

2019-11-15 14:56:47 132

原创 vi命令使用

1,打开文件:vi 文件名2,编辑文件:按 i 进行鼠标定位3,退出保存:esc + : + wq

2019-11-13 15:51:35 85

转载 git分支操作

我们为什么需要分支分支的作用和重要性分支是在一个仓库的不同版本中同时开发的秘诀;使用合适的分支管理策略,能加速您和团队的研发效率;仓库通常有一个默认的master分支,我们从master拉出特性分支来开发新功能,然后再合入master分支。分支基本操作以下命令行需要您在 Git客户端 执行,不知如何安装Git客户端?下载Windows下的Git命令行客户端下载Win...

2019-11-12 13:33:40 69

转载 git标签操作

标签是什么标签的含义与作用标签是仓库某一历史时刻下的版本标志,对应某次提交,可理解为对应时刻下的仓库静态快照; 人们通常在发布软件版本的时候给仓库打上标签,通过标签您能标注仓库历史中的重要事件。标签基本操作下载Windows下的Git命令行客户端下载Windows下的Git小乌龟客户端下载MacOS下的Git客户端更新服务端的标签到本地仓库 git pull ...

2019-11-12 13:28:28 163

转载 提交第一行代码

在创建完仓库之后,用户可以通过如下方式,可以向仓库提交第一行代码。此处我们以用户账号下命名为HelloGitee的仓库为例。对应的仓库地址为:https://gitee.com/用户个性地址/HelloGitee.git,在实际实践中,你可以将用户个性地址替换为自己的地址。方法1、先将仓库clone到本地,修改后再push到码云的仓库仓库$ git clone https://g...

2019-11-04 10:58:08 104

原创 java开发常用命令

linux服务器1,查询tomcat启动情况:ps aux|grep tomcat2,杀死进程:kill -9 0000(代表进程号)3,查询某个端口号情况netstat -lanp|grep 80804,启动jar包nohup java -jar *.jar >*.log 2>&1 &window系统1,查询端口号情况n...

2019-11-01 09:11:12 164

原创 intellij idea 插件使用

1,lombok插件:减少set,get等方法生成,使代码看起来更加简洁,结合lombok jar包使用。2,jrebel热部署插件使用。3,阿里巴巴规约插件:Alibaba java coding Guidelines4,mybatis插件:sql参数填充:mybatis log pluginmapper映射:free mybatis plugin5,接口查询:restf...

2019-11-01 08:59:11 183 1

原创 intellij idea 远程联调配置

1,远程联调:在catalina.sh文件里新增配置:CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"2,启动本地远程服务3,如果连接不上的话,可能是远程服务器端口未对外开放!!!!!4,需要重启远程tomcat服务。...

2019-10-31 17:55:46 893

原创 策略模式的使用

场景使用:对接多家硬件厂商接口1,定义统一的服务接口。2,实现各家的统一服务接口,然后使用注解进行唯一标识(用于从容器寻找该bean),且标记为service服务。3,获取平台类:用于获取具体实现平台的bean,从map中进行枚举获取。枚举类型为(平台代码,平台具体实现bean)。4,定义一个类:用于填充map。实现 BeanFactoryPostProcessor,Applicati...

2019-10-28 10:32:08 82

原创 git拉取开源中国仓库代码

1,从开源中国找到需要自己fork的工程。在开源中国自己的仓库里,设置公钥:公钥来自本地安装的git,2,在本地安装git,设置自己git账号,获取公钥。3,通过intellij idea获取开源中国自己仓库里的代码:ssh方式。...

2019-10-28 10:31:41 249

原创 appium无线连接移动端

1,安装Wireless ADB 工具(需要root权限)2,移动端和当前的连接的appium是同一个网段,设置Wireless ADB 端口号,默认55553,在cmd命令下运行:adb connect  4, 最后检查appium连接的设备:adb devices

2017-07-31 16:59:37 698

原创 appium自动化测试流程

移动端自动化测试流程

2017-07-31 16:23:36 654

Java面试题.docx

面试题目: 1-10题: 1、java中==和equals和hashCode的区别 2、int与integer的区别 3、String、StringBuffer、StringBuilder区别 4、什么是内部类?内部类的作用 5、进程和线程的区别 6、final,finally,finalize的区别 7、Serializable 和Parcelable 的区别 8、静态属性和静态方法是否可以被继承?是否可以被重写?以及原因? 9、成员内部类、静态内部类、局部内部类和匿名内部类的理解,以及项目中的应用 10、string 转换成 integer的方式及原理 11-20题: 11、哪些情况下的对象会被垃圾回收机制处理掉? 12、静态代理和动态代理的区别,什么场景使用? 14、Java中实现多态的机制是什么? 16、说说你对Java反射的理解 17、说说你对Java注解的理解 18、Java中String的了解 19、String为什么要设计成不可变的? 20、Object类的equal和hashCode方法重写,为什么? 21-40题 21、List,Set,Map的区别 26、ArrayMap和HashMap的对比 29、HashMap和HashTable的区别 30、HashMap与HashSet的区别 31-40题 31、HashSet与HashMap怎么判断集合元素重复? 33、ArrayList和LinkedList的区别,以及应用场景 34、数组和链表的区别 35、开启线程的三种方式? 36、线程和进程的区别? 38、run()和start()方法区别 39、如何控制某个方法允许并发访问线程的个数? 40、在Java中wait和seelp方法的不同 41-50题 41、谈谈wait/notify关键字的理解 42、什么导致线程阻塞?线程如何关闭? 43、如何保证线程安全? 44、如何实现线程同步? 45、线程间操作List 46、谈谈对Synchronized关键字,类锁,方法锁,重入锁的理解 49、synchronized 和volatile 关键字的区别 51-58题 51、ReentrantLock 、synchronized和volatile比较 53、死锁的四个必要条件? 56、什么是线程池,如何使用? 56、什么是线程池,如何使用? 58、有三个线程T1,T2,T3,怎么确保它们按顺序执行?

2020-02-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除