- 博客(345)
- 收藏
- 关注
原创 Vue笔记11-Composition API的优势
使用传统Options API中,新增或者修改一个需求,就需要分别在data,methods,computed里修改,而这些选项分布在代码的各个地方,中间还穿插着其他Optional API,如果代码量上来以后,修改会比较麻烦。
2024-07-07 21:30:43 292
原创 Vue笔记12-新的组件
是一个内置组件,用来在组件树中协调对异步依赖的处理。它让我们可以在组件树上层等待下层的多个嵌套异步依赖项解析完成,并可以在等待时渲染一个加载状态,需要结合异步依赖,才能看到效果。在Vue3中,可以没有div根标签,如果没有的话,Vue3会将多个标签包装在一个。在Vue2中,template标签内,必须有一个div标签,作为根标签。是一个内置组件,可以将一个组件内部的模板传送到该组件DOM外部的位置去。
2024-07-07 21:30:26 383
原创 Vue笔记10-其它Composition API
标记一个对象,使其永远不会成为响应式对象,当有些值没必要设置成响应式的时候,可以跳过响应式转换提高性能,例如复杂的第三方类库等。生成的响应式对象转为普通对象,用于读取响应式对象对应的普通对象,对这个普通对象的操作,页面都不会更新。如果有一个对象数据,后序不会修改对象中的属性,而是生成新的对象来替换:使用。// 只考虑第一层数据的响应式,在修改salary的时候,是修改不成功的。:只处理基本数据类型的响应式,不进行对象的响应式处理。// 浅层次的readonly,深层次的可以修改。
2024-07-07 21:29:45 824
原创 Vue笔记09-常用Composition API
官方文档拉开序幕的setupsetup是Vue3中的一个配置项,它的值是一个函数。setup是所有Composition API(组合式API)的开始,在Vue2中使用的数据、方法等,都要配置在setup中,setup函数有两种返回值:返回一个对象,对象中的属性、方法、在模板中可以直接使用;返回一个渲染函数,可以自定义渲染内容。在Vue3中,尽量不要与Vue2混用。Vue2中的配置 (data、methods、computed等)可以访问到setup中的属性、方法,但是在Vue3中的setup不能访
2024-07-07 21:29:12 934
原创 技术分享-Jenkins
Jenkins是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建测试和部署等功能。中文官网:https://www.jenkins.io/zh/。
2023-12-19 15:12:22 1005
原创 ElasticSearch笔记03-ElasticSearch环境
单台Elasticsearch服务器提供服务,往往都有最大的负载能力,超过这个阈值,服务器性能就会大大降低甚至不可用,所以生产环境中,一般都是运行在指定服务器集群中。配置服务器集群时,集群中结点数量没有限制,大于等于2个结点既可以看做是集群了,一般高性能及高可用方面来考虑结点数量都是3个以上。
2023-07-02 15:56:32 546
原创 ElasticSearch笔记02-ElasticSearch入门
ElasticSearch的,视频教程里用的Version是7.8.0,所以,我们也是用7.8.0版本的ElasticSearch。,然后搜索7.8.0版本即可。按照视频里讲的,下载了Windows版本的ElasticSearch,当然,生产环境肯定是Linux版本的。
2023-06-17 17:47:30 1538 2
原创 ElasticSearch笔记01-ElasticSearch概述
Elastic Stack的核心:Elasticsearch是一个分布式、RESTful风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为Elastic Stack的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。The Elastic Stack,包括Elasticsearch、Kibana、Beats和Logstash(也称为ELK Stack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。
2023-05-27 15:02:49 802
原创 JUC并发编程与源码分析笔记14-ReentrantLock、ReentrantReadWriteLock、StampedLock讲解
无锁→独占锁→读写锁→邮戳锁无锁:读和写同时进行,会产生大量的错误数据。独占锁(synchronized,Lock接口,ReentrantLock):此时就将读、写线程进行了有序排列,每次只处理一个请求,不会产生数据错乱,保证了数据一致性读写锁(ReentrantReadWriteLock):读写互斥,读读共享,适用于读多写少的情况,不过会有写锁饥饿问题和锁降级问题邮戳锁(StampedLock)
2023-05-25 23:36:26 469
原创 JUC并发编程与源码分析笔记13-AbstractQueuedSynchronizer之AQS
SemaphoreAQS的同步状态state成员变量/*** state=0:可以操作* state>0:有线程占用阻塞→排队→队列=state变量+CLH双端队列。
2023-05-08 21:44:50 490
原创 JUC并发编程与源码分析笔记12-Synchronized与锁升级
在Java语言里面一个对象如果计算过哈希码,就应该一直保持该值不变(强烈推荐但不强制,因为用户可以重载hashCodc()方法按自己的意愿返回哈希码),否则很多依赖对象哈希码的API都可能存在出错风险。而作为绝大多数对象哈希码来源的Object::hashCode()方法,返回的是对象的一致性哈希码(ldentity Hash Code),这个值是能强制保证不变的,它通过在对象头中存储计算结果来保证第一次计算之后,再次调用该方法取到的哈希码值永远不会再发生改变。
2023-03-17 00:20:35 367
原创 JUC并发编程与源码分析笔记11-Java对象内存布局和对象头
在HotSpot虚拟机里,对象在堆内存中的存储布局可以划分为三个部分:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。
2023-03-05 12:05:25 500
原创 JUC并发编程与源码分析笔记10-聊聊ThreadLocal
i < 5;j ++) {System . out . println("总共:" + house . count);int count;count ++;} }i < 5;j ++) {System . out . println("总共:" + house . count);int count;count ++;} }i < 5;i ++) {
2023-03-04 11:30:45 398
原创 JUC并发编程与源码分析笔记09-原子类操作之十八罗汉增强
AtomicLong:线程安全,可允许一些性能损耗,要求高精度时使用,保证精度,性能代价,AtomicLong是多个线程对单个热点值value进行原子操作。LongAdder:需要在高并发下有较好的性能表现,对值精确度要求不高时候,可以使用,保证性能,精度代价,LongAdder是每个线程拥有自己的槽位,各个线程一般只对自己槽中的那个值进行CAS操作。场景:低并发下全局计算,AtomicLong能保证并发下计数的准确性,内部通过CAS来解决并发安全性问题。
2023-02-25 20:06:44 665
原创 JUC并发编程与源码分析笔记08-CAS
再次强调,由于CAS是一种系统原语,原语属于操作系统用语范畴,是由若干条指令组成的,用于完成某个功能的一个过程,并且原语的执行必须是连续的,在执行过程中不允许被中断,也就是说CAS是一条CPU的原子指令,不会造成所谓的数据不一致问题。一个线程获取到变量的值是A,它打算把变量的值改为B,不过这时候另一个线程优先级更高,提前将A改为了B,然后又将B改为了A,原始线程在进行CAS的时候,依然是成功的,但是原始线程并不知道,变量的值已经发生过变动,这可能就是有问题的。
2022-12-11 22:47:06 365
原创 JUC并发编程与源码分析笔记07-volatile与JMM
volatile可见性、禁重排、没有原子性。内存屏障︰是一种屏障指令,它使得CPU或编译器对屏障指令的前和后所发出的内存操作执行一个排序的约束,也叫内存栅栏或栅栏指令。volatile写之前的操作,都禁止重排序到volatile之后。volatile读之后的操作,都禁止重排序到volatile之前。volatile写之后volatile读,禁止重排序。
2022-12-11 17:51:09 493
原创 JUC并发编程与源码分析笔记06-Java内存模型之JMM
CPU的运行并不是直接操作内存而是先把内存里边的数据读到缓存,而内存的读和写操作的时候就会造成不一致的问题。JVM规范中试图定义一种Java内存模型(Java Memory Model,简称JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。JMM(Java内存模型Java Memory Model,简称JMM)本身是一种抽象的概念并不真实存在它仅仅描述的是一组约定或规范,通过这组规范定义了程序中(尤其是多线程)各个变量的读写访问方式并决定一个线程
2022-12-04 22:21:26 394
原创 JUC并发编程与源码分析笔记05-LockSupport与线程中断
LockSupport是包下的一个类,可以理解成是对Lock类的扩展。在里有三个方法:、、。一个线程不应该由其他线程来强制中断或停止,而是应该山线程自己自行停止,自己来决定自己的命运。所以,,,都已经被废弃了。在Java中没有办法立即停止一条线程,然而停止线程却显得尤为重要,如取消一个耗时操作。因此,Java提供了一种用于停止线程的协商机制―—中断,也即中断标识协商机制。中断只是一种协作协商机制,Java没有给中断增加任何语法,中断的过程完全需要程序员自己实现。若要中断一个线程,你需要手动调用该线程的
2022-12-03 23:38:25 520
原创 JUC并发编程与源码分析笔记04-说说Java“锁”事
认为自己在使用数据时不会有别的线程修改数据或资源,所以不会添加锁。在Java中是通过使用无锁编程来实现,只是在更新数据的时候去判断,之前有没有别的线程更新了这个数据。如果这个数据没有被更新,当前线程将自己修改的数据成功写入。如果这个数据已经被其它线程更新,则根据不同的实现方式执行不同的操作,比如放弃修改、重试抢锁等等。适合读操作多的场景,不加锁的特点能够使其读操作的性能大幅提升。
2022-11-28 23:33:55 255
原创 JUC并发编程与源码分析笔记03-CompletableFuture
Future接口(FutureTask实现类)定义了操作异步任务执行的一些方法,如获取异步任务的执行结果、取消任务的执行、判断任务是否被取消、判断任务执行是否完毕等。找到,看到里面定义的方法,这些方法就是我们需要关注的方法。Future接口可以为主线程开一个分支任务,专门为主线程处理耗时和费力的复杂业务。Future是Java5新加的一个接口,它提供了一个异步并行计算的功能,如果主线程需要执行一个很耗时的计算任务,我们就可以通过Future把这个任务放到异步线程中执行,主线程继续处理其他任务或者先行结束
2022-11-27 21:56:28 353
原创 JUC并发编程与源码分析笔记02-线程基础知识复习
如果用户线程全部结束意味着程序需要完成的业务操作已经结束了,守护线程随着JVM一同结束工作,方法必须在start()之前设置,否则报异常。
2022-11-26 17:10:59 600
原创 Shiro笔记03-与Spring Boot整合
创建一个Maven工程添加配置文件添加application.yml配置文件,注意修改数据库的连接参数。添加启动类实现登录认证后端接口服务实现创建用户表,这个在Shiro笔记02-基本使用里有。创建实体类,使用Lombok插件简化代码。创建mapper、service、serviceImpl。自定义Realm编写配置类编写Controller启动服务,测试代码,首先把数据库里的密码改成md5加盐加密3次后的结果,浏览器访问:http://localhost:8080/login
2022-11-26 12:04:58 445
原创 Shiro笔记02-基本使用
Shiro默认的登录认证是不带加密的,如果想要实现加密认证需要自定义登录认证,自定义Realm继承并重写方法。目前,没有集成SpringBoot,所以,配置信息,还要在ini文件里写,我们自定义了Realm,就要告诉Shiro,使用自定义的Realm,这个配置是写在ini文件里的。还是要回到刚才的Demo.java。
2022-11-12 01:21:16 499
原创 Shiro笔记01-入门概述
Authentication:身份认证/登录,验证用户是不是拥有相应的身份Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能进行什么操作,如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限Session Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境,也可以是Web环境的。
2022-11-06 18:22:52 109
原创 Hadoop笔记06-Hadoop-源码解析
模拟RPC客户端、服务端、通信协议的工作流程。先启动NNServer,此时服务端就监听8888端口,再启动HDFSClient,客户端向8888端口发送一个RPC请求,由服务端执行操作。当服务端启动后,可以使用jps命令查看到NNServer服务。...
2022-07-25 09:01:08 526
原创 Jenkins笔记05-基于KubernetesK8S构建Jenkins持续集成平台
Jenkins的Master-Slave分布式构建什么是Master-Slave分布式构建Jenkins的Master-Slave分布式构建,就是通过将构建过程分配到从属Slave结点上,从而减轻Master结点的压力,而且可以同时构建多个,有点类似负载均衡的概念。这节课要用到3台服务器:1台K8S-Master,2台K8S-Slave,提前准备出来,安装上Jenkins。如何实现Master-Slave分布式构建Manage Jenkins-Configure Global Security-A
2022-05-21 20:42:30 1568
原创 Jenkins笔记04-Jenkins+Docker+Spring Cloud微服务持续集成
资料有点多,放在云盘了,包括代码和SQL等。链接:https://pan.baidu.com/s/1-aAEhDP_OWvNH7dgbT2HPg提取码:pr5cJenkins+Docker+Spring Cloud微服务持续集成流程说明开发人员将代码提交到GitLab代码仓库Jenkins从GitLab拉取代码进行编译打包,构建成Docker镜像,将镜像上传到Harbor私有仓库Jenkins发送SSH远程命令,让生产服务器到Harbor私有仓库拉取镜像到本地,从而创建容器用户访问到容器
2022-05-21 20:41:08 746 1
原创 Jenkins笔记03-Jenkins构建Maven项目
Jenkins构建的项目类型介绍Jenkins中自动构建类型有很多,常用的有以下三种:自由风格软件项目(FreeStyle Project)Maven项目(Maven Project)流水线项目(Pipeline Project)每种类型都可以完成构建,只是在操作方式和灵活度上有所区别,实际使用的时候,根据需求和使用习惯选择,其中流水线项目的灵活度非常高。自由风格项目构建拉取代码在Jenkins里,新建一个FreeStyle Project。Source Code Management选
2022-05-21 20:40:27 3729
原创 Jenkins笔记02-Jenkins安装和持续集成环境配置
持续集成流程说明为了演示完整的步骤,我们需要准备服务器:代码托管服务器、持续集成服务器、测试服务器。首先,开发人员每天进行代码提交,提交到Git仓库然后,Jenkins作为持续集成工具,使用Git工具到Git仓库拉取代码到集成服务器,再配合JDK,Maven等软件完成代码编译,代码测试与审查,测试,打包等工作,在这个过程中每一步出错,都重新再执行一次整个流程最后,Jenkins把生成的jar或war包分发到测试服务器或者生产服务器,测试人员或用户就可以访问应用GitLab代码托管服务安装Gi
2022-05-21 20:39:39 601
原创 Jenkins笔记01-持续集成及Jenkins介绍
软件开发生命周期软件开发生命周期叫SDLC(Software Development Life Cycle),集合了计划、开发、测试、部署过程。需求分析第一阶段,根据项目需求,团队执行一个可行性计划分析,项目需求是公司内部或者客户提出。这个阶段主要是收集信息,也可能对现有项目进行改善和做一个新项目,还要分析项目预算时间从哪方面收益和布局。设计第二阶段,系统架构和满意状态,要做成什么样子,实现什么功能,创建一个项目计划,可以用图表、布局设计、文案方式呈现。实现第三阶段,项目经理和开发人员配合,开
2022-05-21 20:38:41 300
原创 Jenkins笔记-目录
视频教程来源B站黑马程序员前面的教程还能跟上,后面接触到K8S,就跟不上了,一方面是听不懂,另一方面出了错也不知道怎么解决,所以最后听得比较被动。Jenkins笔记01-持续集成及Jenkins介绍Jenkins笔记02-Jenkins安装和持续集成环境配置Jenkins笔记03-Jenkins构建Maven项目Jenkins笔记04-Jenkins+Docker+Spring Cloud微服务持续集成Jenkins笔记05-基于KubernetesK8S构建Jenkins持续集成平台...
2022-05-21 20:37:39 236
原创 Hadoop笔记05-Hadoop-生产调优手册
HDFS-核心参数NameNode内存生产配置每个文件块大约占用150Byte。在Hadoop 2.x中,通过修改hadoop-env.sh文件:HADOOP_NAMENODE_OPTS=-Xmx3072m 来设置NameNode的内存。在Hadoop 3.x中,hadoop-env.sh中描述内存是动态分配的,有时候是不合适的,需要进行修改,修改hadoop-env.sh文件。经验参考:https://docs.cloudera.com/documentation/enterprise/6/re
2022-04-12 15:09:45 772
原创 Hadoop笔记04-Hadoop-Yarn
Yarn资源调度器Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。Yarn基础架构YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成。Yarn工作机制MapReduce程序提交到客户端所在结点YarnRunner向ResourceManager申请一个ApplicationResourceMa
2022-04-12 15:08:44 2840
原创 Hadoop笔记03-Hadoop-MapReduce
MapReduce概述MapReduce定义MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。MapReduce优缺点优点MapReduce易于编程只需要简单实现接口,就可以完成一个分布式程序,程序可以部署到大量廉价的PC机器上运行。良好的扩展性当计算机资源不足的时候,可以通过简单的增加机器的方式来提高
2022-04-11 23:30:04 574
原创 Hadoop笔记02-Hadoop-HDFS
HDFS概述HDFS产出背景及定义随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS只是分布式文件管理系统中的一种。HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件;它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。HDFS的使用场景:适合一次写入,多次读出的场景
2022-04-11 23:28:50 600
原创 Hadoop笔记01-Hadoop-入门
Hadoop概述Hadoop是什么Hadoop是一个由Apache基金会开发的分布式系统基础架构Hadoop主要解决:海量数据的存储、海量数据的分析计算广义来说,Hadoop是指Hadoop生态圈,还包括HBase、Hive等Hadoop发展历史Hadoop的创始人是Doug Cutting,为了实现与Google类似的全文搜索功能,他在Lucene框架基础上进行优化升级,查询引擎和索引引擎。Lucene模仿谷歌开发出了微型版Nutch。2003-2004年,Google开源部分GFS
2022-04-11 23:26:34 1548
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人