- 博客(626)
- 问答 (4)
- 收藏
- 关注
原创 10、jenkins实现基础的CD操作
jenkins实现基础的CD操作。第四步、jenkins使用build with Parameters了,构建指定的版本
2024-06-08 18:02:47 107
原创 6、 Jenkins介绍(持续集成、持续部署(CI、CD))
持续集成、持续部署(CI、CD)说明!!!!CI阶段(持续集成(每次都是开发最新的代码))代码可以持续的集成到我们的主干上,并自动构建和测试名词说明集成到我们的主干: 也就是永远是最新的提交的代码自动构建和测试: 也就是例如镜像可以自动的放置到私库harbor中,并且测试服务器自动拉取镜像启动镜像。完全不需要测试的手动操作。我们的操作只有两步:1、开发push代码,我们的操作只有两步:1、开发push代码,2、jenkins构建操作(拉取代码,构建代码,推动到目标服务器(测试服务器)自动跑起来)
2024-06-02 23:09:01 301
原创 2、Devops管理软件生命周期
PLAN:开发团队根据产品需求指定开发计划CODE:根据plan后开始编写代码,并提交不同的版本。BUILD:编码成功后(Maven或者image),将代码打包并给放置到私库中(jar包/docker镜像都可以,例如harbor)TEST: 成功构建项目后,拉取对心的harbor中的镜像进行测试代码是否存在bug或者错误DEPLOY(部署):代码在经过手动测试,自动化测试后,任务代码已经稳定了,就会交给运维团队OPERATE(运转):运维团队将代码部署到生产环境中MONITOR:项目部署上线后需
2024-06-02 01:02:38 224
原创 4、DDD架构建模(实现面向对象模型(停车场案例))
根据我们的需求输入我们面向对象领域模型uml,(是没有发生系统改变,但是我们若是放置到查询模块就把逻辑泄漏出去了,而且此并不是一个复杂查询所以此处放置到命令模块)进场,出场,付费事件可以得出。由进场出场事件可以得出。进场出场失败事件得出。
2024-03-10 14:29:22 300
原创 3、DDD与CQRS(命令与查询分开)
CQRS(命令和查询职责分离)职责分离(架构上做分解,也就是一个查询模块,一个命令模块(查询模块依赖命令模块))1、查询模块依赖命令模块我们一般都是稳定的去依赖不稳定的了,查询模块是稳定的,命令模块是不稳定的了2、查询和命令模块,不是简单的读写分离,用来构造一些什么需要读取数据结构的也是属于查询模块的(也就是组装也是在查询模块来做的)3、查询模块和命令模块使用的数据库或者表可以相同也可以不相同,甚至与可以是不同的类型数据库
2024-03-09 17:39:11 498
原创 2、DDD六边形架构
代码名称清晰,代码参数清晰我们不能根据参数是如何组装数据的debug才知道这个代码是干什么的,例如代客下单,那么我们需要命名为createOrderForCustomerBySystem(CustomerID),而不能是createOrder(id)这样(RPC调用)就会很不清晰。我们得debug才知道情况
2024-03-09 17:38:00 232
原创 1、DDD架构核心方法论
软件设计应该被领域来驱动(也就是领域驱动模型,模型驱动软件设计)领域: 产品需求的问题域模型:是具体写代码设实体类前的挖掘需求和如何设计的考量思考,其中的产出可能就是我们的uml图,或者就在我们脑海中没有具体的uml产出。软件设计: 具体的写实体类了,写对应方法了如何来解释上面的这句话,软件设计就是我们要写的代码,模型就是我们再写代码前的思考架构建立的模型。例如,我们的整体产品是创建一台全知全能的机器人,其中这个机器的一个领域就是说话,那么我们就对说话这个功能进行建模,其中需要机器人id来定位机器人
2024-03-09 15:04:24 382
原创 11、高性能架构(CAP理论)
在分布式系统中,在其中的读写操作中,我们想要操作的有三种特性(一致性(C)、可用性(A)、分区容错性(P))但是我们只能保证其中三者中的两个,另外一个是肯定会被牺牲的一致性(C)Consistency :就是对应我们客户端来说每次从数据库得到的都是最新的数据,写的什么数据,我就需要读到什么数据。可用性(A)Availablity :一个好的节点(服务器或者说数据库),在合理的时间返回正确的响应(不能是错误的响应的超时的响应,不然这个节点就不是一个好的节点了)分区容错性(P)Parttion Toler
2023-09-16 22:03:10 63
原创 22、7大参数自定义线程池(核心线程数,最大核心线程数。。。拒绝策略(4种))
第二种拒绝策略:(CallerRunsPolicy(哪来的去哪里))这里我们是main线程创建的,所以就是main线程去处理。第一步:5个人进去(2个核心数处理,3个再阻塞队列里面,最大5个个核心线程数(3个在等待阻塞队列满了唤醒))第三个拒绝策略(DisCarPolict(队列满了,丢掉任务(不处理)不会抛出异常))第二步:进去6个人(就会使用2个核心线程和,一个最大线程数里的了,(3个再阻塞队列里))7大参数模型:(这里也说下线程池的运行逻辑)走this方法里(可以看到有7个参数)
2022-11-16 15:54:06 1107
原创 9、8锁现象彻底的理解锁(锁的只有两个东西,一个是对象,一个是Class模板(static修饰))
问题三:(我们在资源类中在给他一个没有锁的方法。问题7:(一个静态同步方法(static syn(休眠4s)),一个普通同步方法(syn),然后只有一个对象,两个线程使用)(先打电话,再等4s输出发短信)问题8:(一个静态同步方法(static syn(休眠4s)),一个普通同步方法(syn),然后两个实例对象)(还是先打电话,再等4s才是发短信)问题4:(我们准备两个对象,一个线程让对象1去调用发短信(还是睡眠4s的),一个线程让对象2去调用打电话)(这里是先打电话再等4s输出发短信了)
2022-11-15 09:28:30 234
原创 48、Nio(Io模型(异步(异步和同步)))
异步是没有阻塞的,只要异步非阻塞。!!!场景:(完成一次数据交流)电话是同步的:什么交数据交流,一来一回才叫交流。这里的要确定接电话就是获取结果(完成交流),这里是一个线程。微信聊天是异步的:一个人发消息过来是一个线程,我们不用确定接不接消息。我们再回消息才是完成数据交流(两个线程)!!!!我们这里是看前面的阻塞/非阻塞/多路复用是同步还是异步的。例如阻塞是同步的就是同步阻塞。第一步:同步阻塞(阻塞io是同步的),是自己线程发起read,数据复制后还是给的前面的线程(自己得结果所以是同步的)
2022-11-14 17:26:56 352
原创 47、Nio(Io模型(多路复用))
多路复用(最开始就是一个单线程加selector)在select阻塞(等待事件)后,返回的是一堆事件(而不是前面阻塞io一个事件一个事件的返回了),然后就让他再下面循环里全部处理完了。所以他就不用前面的等待连接,等待数据了(select前面是已经等待事件完成了,我们select后只需要马上向下运行即可(不需等待了))。我们在等待事件的时候将所有的等待了。(若是单线程其中,虽然返回的也是一批事件,循环处理,但是其中处理的时候还是一个一个事件处理的,阻塞一个后面也会阻塞,所以我们加多线程去分别处理事件)!!
2022-11-14 17:24:20 190
原创 2、Jvm类加载器和双亲委派机制
双亲委派机制(我们创建一个类,类加载器收到这个类加载的请求,他会先向上找类(委托)),找到后再从最上上面检查是否能够加载这个类,能加载就结束,就使用这个类加载器,若无法加载就抛出异常,让子加载器加载)重复步骤。流程是只有当我们的类被委托到最上面再往下查找加载都没有才会是我们自己的AppClassLoader加载我们自己写的类,然后执行main方法。实践2(可以用我们Student类下面的main方法打印类对象的toSting方法)实践1、(无法用我们写的Sting类的main方法)
2022-11-08 08:48:06 151
原创 22、jenkins使用git的Jenkinsfile维护流水线脚本
jenkins中维护脚本文件的问题若是有新的流水线流程需要进入jenkins来进行维护脚本,十分麻烦,将git的仓库的地址放置到jenkins的scm中指定
2024-06-10 22:45:06 180
原创 21、Jenkins流水线语法体验
Jenkins流水线语法 拉取git仓库代码通过maven构建项目通过sonarqube做代码质量检测通过docker制作自定义镜像将自定义镜像推送到harbor通过Publish Over SSH通知目标服务器拉取运行镜像jenkins项目部署流程
2024-06-10 22:28:37 112
原创 20、Jenkins流水线任务体验
1、jenkins存在的问题(未使用流水线)现在我们部署次mytest工程的时候,都打印在一个控制台之中,随着业务流程越来越复杂,那么日志会越来越多,可能自己会清晰,但是其他人或者交接的人就不是很清晰了
2024-06-10 22:10:02 125
原创 19、完成基于Harbor的最终部署
【代码】19、完成基于Harbor的最终部署。Jenkins执行前面再服务器中准备的脚本文件第一步、将服务器中的脚步文件移动到环境变量中(目的让脚本文件在什么情况下都可以执行)
2024-06-10 21:59:47 211
原创 18、目标服务器准备脚本文件(jenkins通知(执行服务器脚本文件)拉取镜像并运行)
【代码】18、目标服务器准备脚本文件(jenkins通知(执行服务器脚本文件)拉取镜像并运行)
2024-06-10 18:08:46 247 1
原创 17、Jenkins实现制作自定义镜像并推送到harbor私有镜像库中
【代码】17、Jenkins实现制作自定义镜像并推送到harbor私有镜像库中。我们使用的宿主机的docekr那么我们的镜像就在宿主机的镜像中(为什么不在jenkins中安装docker使用,那么镜像下载在jenkins中,可能就会有空间大小问题了)
2024-06-10 17:34:04 212
原创 16、jenkins容器内部使用Docker
jenkins需要拥有docekr的可执行权限第一种方案:在jenkins容器内部去安装一下docker(安装成本比较高,不推荐)第二种方案:让jenkins使用使用我们宿主机中的docekr
2024-06-10 17:09:54 288
原创 14、Harbor镜像仓库的介绍和安装
1、之前架构流程的问题(若是我们后续有多台的服务器,需要多台部署,那么多台服务器都自定义镜像的构建复杂)我们之前的流程是jenkins将tar包推送至我们的服务器,然后我们的服务器再通过项目中的dockerfile、docker-compose等文件来自己制作进行镜像然后运行
2024-06-10 16:08:49 312
原创 13、SonarQube整合jenkins
若是点击添加没有反应的话则刷新一下或者应用后再重新进一下我们的jenkins登录sonarqube的凭据我们使用之前的token,若是忘记了也可以重新自己去sonarqube重新生成一下
2024-06-10 15:47:24 277
原创 8、配置Jenkins
build配置maven(将服务器中的maven和jdk放置到我们的jenkins的数据卷data中(mv命令))cd datamv /usr/local/jdk/ ./mv /usr/loccal/maven/ ./4、配置jenkins如何连接目标服务器(Publish Over SSH),并让目标服务器自动拉取代码,并且跑起来(后续再完成,此处先配置好了连接服务器)这里配置的SSH的系统配置了(在最下面,我们以账号密码的形式连接)
2024-06-03 00:59:29 248 2
原创 7、安装jenkins
1、拉取jenkins版本(2.3.19.1.lts)docker pull jenkins/jenkins2.3.19.1.lts
2024-06-03 00:58:11 252
原创 5、linux安装docker
步骤1、下载docker依赖组件yum -y install yum-utils device-mapper-persistent-data lvm22、设置下载docker镜像源为阿里云yum xxxxx3、安装docker服务yum -y install bocker-ce4、安装成功后,启动docker并且设置为开机自启systemctl start dockersystemctl enable docekr
2024-06-02 22:42:36 265
原创 4、build阶段安转mvaen
解压mvaen和jdk(liunx版都是需要.tar.gz)tar -zxvf jdkxxxx -C /usr/loccal 解压压缩包到user/localtar -zxvf mavenxxx -C /usr/localmv jdkxxx/ jdk/ 修改一下名称mv mavenxxx/ maven/
2024-06-02 22:25:30 179
原创 3、code阶段GitLab安装
以docekr安装GitLab步骤确认docekr环境和docekr-compose环境docker versiondocker-compose version
2024-06-02 02:28:57 271
原创 1、Devops介绍
devops如何解决开发运维痛点。 开发团队需要等待测试团队的反馈,而测试团队也需要等待最新的代码(测试团队也不能每天都部署一遍新的代码环境吧)。那么这就很大延长了整个软件开发的周期。
2024-06-02 00:24:43 379
原创 4、vue3的recative和ref函数
recative()函数接收一个对象 类型数据的参数传入并返回一个响应式的对象(也就是可以被修改的)步骤:导入vue中的reactive,然后在用recative进行转换
2024-05-26 02:08:51 349
原创 3、Vue3组合式Api-setup选项
1、setup选项的写法和执行时机setup是一个函数setup的执行时机比 beforeCreate还要早
2024-05-26 02:07:09 214
原创 1、create-vue搭建Vue3项目
2、使用create-vue创建项目2.1、 前提条件(环境)node.js的版本必须为16.0以上的版本查看node.js版本 => node -v
2024-05-26 02:04:32 297
原创 架构之冷热数据分离
如何实践区分冷热数据业务代码修改(对代码侵入较高,无法按照时间区分)监听数据库日志(对代码无侵入,但无法按照时间区分)定时任务扫描(可以按照时间区分)热数据:被频繁更新的,还会有所变化的数据,响应时间有要求冷数据: 不允许进行更新的数据(当然具体业务具体分析了),偶尔被查询;响应时间没有要求。
2024-05-14 00:42:40 436
原创 QPS、TPS、RT、并发数
QPS(Queries Per Second):每秒查询数,指的是系统在单位时间内处理的请求数量。QPS通常用于衡量系统的处理能力,特别是在高并发情况下,能够反映系统的性能水平。在网络领域,QPS常用于评估服务器的负载能力,对于网站、API等服务来说,QPS越高,系统的吞吐量就越大,性能就越好。TPS(Transactions Per Second):每秒事务数,指的是系统在单位时间内完成的事务数量。事务可以是数据库的一次读写操作、网络请求的一次处理等。
2024-03-24 22:45:57 1156
原创 1、数据脱敏方案
数据脱敏就是将数据展示进行转换用我们的脱敏符号展示,例如手机号1234,前端展示为1*我们要是一个一个的用序列化器那就很麻烦了,所以我们使用一个自定义注解将各种序列化规则集成一下@JacksonAnnotationsInside注解的功能:注解不关注下面的类,而是上面的注解,我们就是要使用@JsonSerialize( using = DesensitizeSerialize.class)来进行序列化器。我们想要强调是这个其表明是JackSon这里包下面的处理json的。/*** 一个强大的各种序列化器*/
2023-12-31 16:01:16 951
JUC最详细思维导图,一次了解读写锁,可重入锁,Cas原理,volatile 关键字原理
2023-06-27
idea 双击没有反应
2022-12-10
项目发送到码云上会提示冲突。
2022-09-15
打开jsp界面为代码
2022-07-08
此URL不支持Http方法GET
2022-07-08
读取jbdc.properties配置文件读取不到
2022-07-06
sql设置自增长一直报错
2022-07-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人