- 博客(86)
- 收藏
- 关注
原创 全链路灰度实现
灰度发布是指在 黑和白(0和1)之间,能够平滑过渡的一种发布方式。灰度发布,只升级部分服务,即让一部分用户继续用老版本,一部分用户开始用新版本,如果用户对新版本没什么意见,那么逐步扩大范围,把所有用户都迁移到新版本上面来。
2025-04-19 11:14:16
913
1
原创 硅谷甄选项目笔记
在vue框架中事件分为两种:一种是原生的DOM事件,另外一种自定义事件。原生DOM事件可以让用户与网页进行交互,比如click、dbclick、change、mouseenter、mouseleave…自定义事件可以实现子组件给父组件传递数据自定义事件可以实现子组件给父组件传递数据.在项目中是比较常用的。比如在父组件内部给子组件(Event2)绑定一个自定义事件在Event2子组件内部触发这个自定义事件<template><div><h1>我是子组件2</h1>
2025-04-08 16:15:30
724
1
原创 JDK 17 和JDK 8 相比新特性
因此,在使用 Vector API 时,开发人员需要注意相应的限制和注意事项,并进行适当的测试和优化,以确保代码的正确性和性能。Vector API 的设计基于 Java 语言和 Java 虚拟机的现有基础,因此开发人员可以使用熟悉的 Java 语言和工具来编写和调试使用向量操作的代码,同时利用硬件的 SIMD 功能获得更高的性能。除此之外,JDK 17还包括一些改进和优化,如:ZGC 改进,G1 改进,统一的 JVM 日志系统,可过滤的 JVM 日志,强化了java.net.URL 类的安全性等。
2024-12-13 14:56:26
1228
1
原创 如何控制多线程的顺序执行
之间的同步,依赖synchornized,wait & notify,AQS和基于Lock的各种实现。9种方法实现多线程的顺序执行,定义thread1、thread2、thread3,要求执行顺序为:thread1 > thread2 > thread3。
2024-12-12 10:11:01
979
1
原创 系统性能优化
性能优化的目标:是提高系统或应用程序的响应时间、吞吐量、效率和可伸缩性等方面的性能指标。性能优化需要有一些技巧:对于一个整个产品或项目而言,比如可以从前端优化、后端优化、架构优化、高并发优化、Linux内核优化、常用中间件优化等方便去优化,当然每个方面侧重点不同,用的技术点也不同。当然除了上述从技巧方面做优化,我们也必须通过使用性能测试工具进行性能基准测试,并根据测试结果进行有针对性的优化。注意的是,性能优化需要结合具体的应用场景和问题进行分析和调整,避免过度优化和过早优化。
2024-12-11 10:56:02
1672
1
原创 虚拟机3种网络模式
桥接模式就是将主机网卡与虚拟机的网卡利用虚拟网桥进行通信。在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。在桥接模式下,虚拟机ip地址需要与主机在同一个网段,如果需要联网,则网关与DNS需要与主机网卡一致。桥接模式的设置和联网需要注意点1、先要记住物理机的ip段、网关、DNS(两者需在同一网段,网关,DNS)2、设置完虚拟机后需要重启网络服务,才能生效。
2024-10-02 11:03:58
3689
1
原创 Logback的使用
logger.error("日志输出,ERROR日志---{}", output);logger.warn ("日志输出,WARN 日志---{}", output);logger.info ("日志输出,INFO 日志---{}", output);logger.debug("日志输出,DEBUG日志---{}", output);logger.trace("日志输出,TRACE日志---{}", output);
2024-09-30 16:22:42
1754
1
原创 Map中的put、putIfAbsent、compute、computeIfAbsent、computeIfPresent使用方法
Map是做软件开发中使用频率最高的数据结构之一。它的最大特点是能够快速地进行查找和更改数据,经常被用做缓存以及数据重复检查场景中。很多人在给Map赋值过程中只知道最基础的put方法,下面我将给大家详细介绍下其他赋值方法的区别。
2024-09-29 15:53:51
733
1
原创 java开发jmeter采样器
当测试的接口响应时间很短时,例如1ms以下,测试如果直接压测spring工程代码,那么spring框架的耗时占比较高,导致实际测试结果的tps误差较大,此时需要自己开发采样器插件,尽可能减少框架对测试结果的影响。将上面所有的jar包全部拷贝到jmeter的lib\ext文件夹目录下,注意不要覆盖jmeter原有的包,否则jmeter不能正常启动。主要有3个类:取样器,取样器界面,sdk接口封装类。3.1 将sdk源码和采样器源码打成jar包。核心逻辑是配置界面,绑定界面与取样器的参数。
2024-09-24 15:40:33
588
2
原创 使用JMH做Java微基准测试
JMH 是 Java Microbenchmark Harness 的缩写。中文意思大致是 “JAVA 微基准测试套件”。官网:http://openjdk.java.net/projects/code-tools/jmh/首先先明白什么是“基准测试”。基准测试是指通过设计科学的测试方法、测试工具和测试系统,实现对一类测试对象的某项性能指标进行定量的和可对比的测试。可以简单的类比成我们电脑常用的鲁大师,或者手机常用的跑分软件安兔兔之类的性能检测软件。
2024-09-19 16:03:20
1833
1
原创 Selenium定位不到元素原因及解决办法
这个是最常见的原因,首先要理解下frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位。编写好Xpath路径,可以直接复制到搜狐浏览器的firebug查看html源码,通过Xpath搜索:如下红色框,若无报错,则说明编写的Xpath路径没错。.设置等待页面的某个元素出现,比如一个文本、一个输入框都可以,一旦指定的元素出现,就可以做操作。但是该定位方式能够有效定位绝大部分的元素,建议掌握。
2024-09-18 07:47:24
1951
2
原创 分布式锁三种方案以及Redisson
原理:通过主键或者唯一索性两者都是唯一的特性,如果多个服务器同时请求到数据库,数据库只会允许同一时间只有一个服务器的请求在对数据库进行操作,其他服务器的请求就需要进行阻塞等待或者进行自旋。可以理解为同一时间只有一个请求能够拿到锁,当方式执行完成过后,对锁进行释放过后,其他请求就可以拿到锁再对数据库进行操作,这样就避免了数据不安全问题。其实原理一致,都是采用一个唯一的标识进行判断是否加锁。
2024-06-20 16:03:30
462
原创 分布式事务
2.本地事务总结:数据库事务在实现时会将一次事务的所有操作全部纳入到一个不可分割的执行单元,该执行单元的所有操作要么都成功,要么都失败,只要其中任一操作执行失败,都将导致整个事务的回滚
2024-06-18 19:01:14
393
原创 数据库悲观锁/乐观锁
在数据库的中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。悲观锁在关系数据库管理系统里,悲观锁是一种并发控制的方法。它可以阻止一个事务以影响其他用户的方式来修改数据。如果一个事务执行的操作都某行数据应用了锁,那只有当这个事务把锁释放,其他事务才能够执行与该锁冲突的操作。悲观并发控制主要用于数据争用激烈的环境,以及发生并发冲突时使用锁保护数据的成本要低于回滚事务的成本的环境中。
2024-06-16 10:09:54
782
2
原创 原子类 AtomicReference 详解
通过对 AtomicInteger、AtomicBoolean 和 AtomicLong 分析我们发现,这三个原子类只能对单个变量进行原子操作,那么我们如果要对多个变量进行原子操作,这三个类就无法实现了。那如果要进行多个变量进行原子操作呢?操作方式就是,先把 多个变量封装成一个类,然后通过 AtomicReference 进行操作。
2024-03-31 17:44:45
2112
1
原创 Jmeter 配置说明之线程组
线程组元件是任何一个测试计划的开始点。在一个测试计划中的所有元件都必须在某个线程组下。所有的任务都是基于线程组:通俗理解:· 线程组:就是一个线程组,里面有若干个请求;· 线程:一个线程就是一个“虚拟用户”;· 请求:一个线程组里面有若干个请求。对应关系:例如:1个线程组里面有10个请求,线程数为10个,跑完后得到:理解为:(10个线程数)10个人,每个人都要跑这10个请求,所以:10*10=100:并发数:100;线程数:10;PS:线程组也可以看作是一个虚拟用户组。
2024-03-29 19:21:47
2726
原创 BlockingQueue(阻塞队列)详解
在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。一旦获得了锁之后,如果队列为空,那么将阻塞;否则调用dequeue()出队一个元素。
2023-10-09 15:55:58
1053
2
原创 vue3详细介绍
ant-design-vue (opens new window)Ant Design Vue 2.0版本,社区根据蚂蚁 ant design 开发。element-plus (opens new window)基于 Vue 3.0 的桌面端组件库。现在主流组件库都已经发布了支持vue3.0的版本,其他生态也在不断地完善中,这是趋势。3、Suspense - 异步加载组件的loading界面。2、Teleport - 瞬移组件的位置。2、将原来的全局API转移到应用对象。3、 新的生命周期函数。
2023-09-03 23:02:02
598
3
原创 Nexus私有仓库+IDEA配置远程推送
代码有代码的管理平台,比如GitHub、GitLab、码云等。镜像也有镜像的管理平台,比如DockerHub,以及本文中的nexus。Nexus是当前最流行的Maven仓库管理软件。本文讲解使用nexus作为docker镜像仓库。快照版本,在 maven 中 SNAPSHOT 版本代表正式发布(release)的版本之前的开发版本,在 pom 中用 x.y-SNAPSHOT 表示。
2023-08-24 15:03:46
1817
1
原创 Jenkins+Docker 实现一键自动化部署项目
安装J enkins注:因为Jenkins容器里的用户是Jenkins,而主机用户不是Jenkins,就算是root也一样会报错:/var/jenkins_home/copy_reference_file.log: Permission denied,这个时候就需要在主机上面给主机地址赋予访问Jenkins容器的权限,Jenkins内部用的是uid 1000的user。-privileged=true让容器具有root权限,便于进入容器。
2023-07-21 09:43:09
578
原创 kubesphere的CICD
请先安装 Helm,以便后续使用该工具安装 SonarQube。执行以下命令安装 SonarQube 服务器。查看 Helm 版本。
2023-07-16 19:56:17
447
原创 java反射
这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象。例如:一个类有:成员变量、方法、构造方法、包等等信息,利用反射技术可以对一个类进行解剖,把个个组成部分映射成一个个对象。 在java中万物皆对象成员变量也是对象,它拥有操作一个对象的成员变量的能力。方法和字段上获取注解的方式和类上获取注解的方式是一样的。用于测试的自定义注解和添加了自定义注解的类。(2)从方法、字段、类上获取注解中的值。
2023-06-21 17:50:50
312
1
原创 docker搭建flink集群
注意:云服务器需要设置安全策略放行8081端口,否则访问失败。注意:docker-compose.yml文件同级目录执行。需要设置安全策略放行8081端口,否则访问失败。编写yaml配置文件。
2023-06-11 18:29:54
1136
原创 Kubernetes第3天
Pod是kubernetes的最小管理单元,在kubernetes中,按照pod的创建方式可以将其分为两类:自主式pod:kubernetes直接创建出来的Pod,这种pod删除后就没有了,也不会重建控制器创建的pod:kubernetes通过控制器创建的pod,这种pod删除了之后还会自动重建什么是Pod控制器。
2023-05-17 20:36:08
1133
原创 Kubernetes第2天
每个Pod中都可以包含一个或者多个容器,这些容器可以分为两类:用户程序所在的容器,数量可多可少Pause容器,这是每个Pod都会有的一个根容器,它的作用有两个:可以以它为依据,评估整个Pod的健康状态可以在根容器上设置Ip地址,其它容器都此Ip(Pod IP),以实现Pod内部的网路通信这里是Pod内部的通讯,Pod的之间的通讯采用虚拟二层网络技术来实现,我们当前环境用的是Flannel。
2023-05-17 20:34:23
675
原创 Kubernetes第1天
kubernetes,是一个全新的基于容器技术的分布式架构领先方案,是谷歌严格保密十几年的秘密武器----Borg系统的一个开源版本,于2014年9月发布第一个版本,2015年7月发布第一个正式版本。 kubernetes的本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理。自我修复:一旦某一个容器崩溃,能够在1秒中左右迅速启动新的容器弹性伸缩:可以根据需要,自动对集群中正在运行的容器数量进行调整服务发现。
2023-05-17 20:32:11
520
原创 Kubernetes第4天
在kubernetes中,pod是应用程序的载体,我们可以通过pod的ip来访问应用程序,但是pod的ip地址不是固定的,这也就意味着不方便直接采用pod的ip对服务进行访问。 为了解决这个问题,kubernetes提供了Service资源,Service会对提供同一个服务的多个pod进行聚合,并且提供一个统一的入口地址。通过访问Service的入口地址就能访问到后面的pod服务。
2023-05-17 20:30:10
978
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人