- 博客(32)
- 收藏
- 关注
原创 CAS理解
在jdk5 之前java是靠synchronized来保证同步的,这样就引入了锁,这样会有以下问题:1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。2)一个线程持有锁会导致其它所有需要此锁的线程挂起。3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。volatile是轻量级的同步机制,是不错的机制,但是volatile不能保证原子性。因此对于同步最终还是要回到锁机制上来。独占锁是一种悲观锁,synchronized就是
2021-12-19 21:06:43
762
原创 多线程系列--创建线程的2种方式(二)
常用的两种方式,Thread 和RunnableThread 是一个类,它实现了Runnable 接口。Runnable 是一个接口。采用继承的方式实现多线程:打印的结果:Thread-1 卖票:ticket10Thread-1 卖票:ticket9Thread-1 卖票:ticket8Thread-1 卖票:ticket7Thread-1 卖票:ticket6Thread-1 卖票:ticket5Thread-1 卖票:ticket4Thread-1 卖票..
2021-11-22 16:01:31
277
原创 多线程系列--基础知识(一)
线程基础知识线程有五种状态:新建状态(New) 线程对象被创建后,处于新建状态。Thread thread = new Thread();就绪状态(Runnable) 也可称为'可执行状态',线程对象被创建后,其它线程调用了该对象的start()方法,从而来启动该线程。thread.start()处于就绪状态的线程,随时可能被CPU调度执行。运行状态(Running) 线程获取CPU权限进行执行。线程只能从就绪状态进入到运行状态。阻塞状态(Blocked)阻塞状态是线程因为某种原...
2021-11-18 14:43:30
142
原创 持久化之AOF操作(九)
AOF 是将除了读操作外的操作全部记录下来,重新执行下!以日志的形式来记录每个写操作,将Redis执行过的所有指令记录下来(读操作不记录),只许追加文件 但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件 的内容将写指令从前到后执行一次以完成数据的恢复工作。redis 默认是关闭的,开启的话,只需要把no 改为yes,appendfilename 是保存文件的名称,重启redis 即可aof 默认每秒执行一次记录,可能会丢失这1s 的数据,
2021-04-06 17:26:13
324
原创 持久化之RDB操作(八)
Redis 为内存数据库,即断电即失,所以Redis提供了持久化操作,RDB和AOF 两种方式。首先介绍RDB 方式:redis 默认采用的方式。Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程 都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的。 这就确保了极高的性能。如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那 RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数
2021-04-06 17:12:54
223
原创 Redis.conf文件详解(七)
从上到下,依次:网络bind 127.0.0.1 # 绑定的ipprotected-mode yes # 保护模式port 6379 # 端口设置通用generaldaemonize yes 以守护进程的方式运行,默认是no ,改为yes 之后则可以后台运行。pidfile /var/run/redis_6379.pid 如果是后台运行,则需要指定一个pid 文件。日志:loglevel notivelogfile "" 日志的文件位置 为空则直接打印datab.
2021-04-01 14:34:34
204
原创 SpringBoot2 集成redis(六)
java 直接操作redis 默认采用的是Jedis,是官方推荐的redis 连接工具。新建maven 工程,导入pom 文件 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.5.2</version> </dependency><dependenc
2021-04-01 11:32:47
249
原创 Redis 远程代码连接(五)
①.首先是远程服务器的防火墙要关闭Centos7 的关闭命令:查看防火墙的运行状态:firewall-cmd --state关闭防火墙:systemctl stop firewalld.service禁止防火墙随机启动:systemctl disable firewalld.service②.修改redis.conf 的配置一,vim 打开redis.conf 注释掉bind 127.0.0.1 保证所有ip 都可以访问这里提供一个在文本中搜索的方法:/127.0.0.1 回车.
2021-03-31 17:37:17
148
原创 Redis 的数据类型及命令(三)
String 字符串类型redis 不区分大小写设置值:set name 123获取值:get name获取所有的key :keys *判断某一个key 是否存在:exists name追加字符串:append name 456 (如果这个key 不存在,则相当于set key)获取字符串的长度:strlen name判断某个博客的浏览量可以使用,自增:set views 0 初始化浏览量为0自增1 incr views获取当前浏览量:get views自减.
2021-03-31 15:58:32
160
原创 Redis 事务(四)
Redis 事务本质上是一组命令的集合,一个事务中的所有命令都会被序列化,在执行事务的过程中,会按照顺序执行。Redis 没有隔离级别的概念,Redis 的单条命令可以保证原子性,但是事务不能保证原子性redis 的事务:开启事务(multi),命令入队(set get),执行事务(exec) 取消事务(discard)不能保证原子性的意思就是关系型数据库,在某一个失败了,会执行回滚操作,而redis 并不会,在事务执行的过程中,如果某一个命令有错误,前面执行成功的会成功,中间失败的就失败,直接
2021-03-31 15:58:06
95
原创 Redis补充(二)
Redis 是单线程的Redis 处理数据是很快的,因为它是基于内存操作的,Redis 的性能瓶颈在于机器的内存和带宽,CPU不是Redis 的瓶颈。多线程操作redis 的话,会涉及到CPU的来回切换,这个切换虽然时间很短,但是对于redis 来讲,这个时间总计加起来就很多了,耗时的操作,而对于内存的操作,全部在内存中完成,没有上下文的切换,效率最高,读写全部在CPU中完成,这是最快的方案。Redis 的官方提供的数据是每秒处理100000+ QPS,完全不比key,value的memecac
2021-03-31 09:04:41
105
原创 Redis 入门(一)
Redis 入门(一)Redis 是什么鬼?Redis 是一个开源的使用C语言写的,基于内存运行并且可持久化的日志型,key-value数据库,并支持多种语言。特点:免费开源,是当下最热门的NoSql数据库之一,也被称为结构化数据库!Redis 能干哈?1、内存存储、持久化,内存中是断电即失、所以说持久化很重要(rdb、aof)2、效率高,可以用于高速缓存3、发布订阅系统4、地图信息分析5、计时器、计数器(浏览量!)特性:支持多样化数据类型,持久化,事务,集群…Redis 的安装Wi
2021-03-30 18:01:19
123
原创 java用Nexus搭建maven私服
今天再更新一波。。。。。。maven仓库分为两大类:1.本地仓库,2.远程仓库,而远程仓库又分为中央仓库,私服仓库,其他公共库私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。当Maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。我们...
2020-03-18 14:35:52
1090
1
原创 集成工具Jenkins入门到进阶
Jenkins 的三大特点,持续部署,持续集成,持续交付持续部署:Jenkins 保证 项目在开发的过程中,在做完一部分功能,自己通过测试后,通过自动化的方式把项目部署在服务器上运行,解决了手动部署的问题,并且可以不间断的部署。持续集成:项目是分小组开发的,自己测试没问题,但并不能保证全部整合完之后,部署到服务器没有问题,经常性的,频繁的把所有模块集成在一起测试,有问题尽早发现,这就是持续...
2020-03-13 19:13:33
270
原创 Springboot处理字符串。。。
我们在进行开发的过程的难免会进行对象的返回,比如一个用户对象User,以及一个集合list,Map等等。在这篇博客中我们就是需要学习一下怎么对一个对象中某些属性的处理。需要补充的一点就是SpringBoot采用的是JackSon进行的序列化以及反序列化,不用我们自己去进行实现,它是自动实现。我们也可以改变它实现的方式或者说我们可以自己去定义序列化和反序列化。当然,因为SpringBoot帮我们做的...
2019-05-15 11:21:55
3693
原创 datanode服役新节点
随着公司业务的增长,数据量越来越大,原有的数据节点的容量已经不能满足存储数据的需求,需要在原有集群基础上动态添加新的数据节点。准备:克隆一台机器,保证IP的正确性以及配置ssh免密登录。重新解压一个新的hadoop.tar.gz服役新节点的具体步骤:(1)在新克隆的机器上的/opt/module/hadoop-2.7.2/etc/hadoop下创建文件dfs.hosts然后v...
2019-05-14 09:41:07
171
原创 namenode,secondary namenode和datanode的工作机制
namenode的工作机制:第一阶段:namenode启动(1)第一次启动namenode格式化之后,创建fsimage和edits文件。如果不是第一次启动,则直接加载编辑日志和镜像文件到内存。(2)客户端对元数据进行增删改的请求。(3)namenode记录操作日志,更新滚动日志。(4)namenode在内存中对数据进行增删改查第二阶段:Secondarynamenode工...
2019-05-14 09:28:08
349
原创 Hadoop的集群安全模式
namenode 启动时,首先将镜像文件fsimage载入内存,并执行编辑日志edits中的各项操作。一旦在内存中成功建立文件系统元数据的镜像,则创建一个新的faimage文件和一个空编辑日志。此时,namenode开始监听datanode请求。但是此刻,namenode运行在安全模式,即namenode的文件系统对于客户端来说是只读的。系统中的数据块的位置并不是由namenode维护的,而是...
2019-05-14 09:09:22
315
原创 Hadoop中namenode出现故障的解决方法
Namenode故障后,可以采用如下两种方法恢复数据。方法一:将SecondaryNameNode中数据拷贝到namenode存储数据的目录方法二:使用-importCheckpoint 选项启动namenode守护进程,从而将SecondaryNamenode中华数据拷贝到namenode目录中。①:手动拷贝SecondaryNameNode数据:1)kill -9 nameno...
2018-09-03 10:40:51
3350
原创 Hadoop完全分布式搭建
本文绝对是自己搭建完成之后写的,测试什么的都没问题之后,才放出来的,包括遇到的问题也会一一列举。首先声明我用的hadoop-2.9.0的版本的1.准备三台虚拟机,我分别定义为hadoop102,hadoop103,hadoop104然后第一步是java的安装,这个相对来说简单些,略过,不过我提一个命令查找java的安装路径,包裹其他的也一样,$JAVA_HOME,回车你就可以看到你的j...
2018-09-02 23:50:00
503
原创 Zookeeper的安装(本地)
1.首先百度Zookeeper,下载tar.gz文件。http://zookeeper.apache.org这是他的官网,download 我现在的是3.4.10.tar.gz上传至服务器或者虚拟机,这里提供一个命令,知道请忽略首先 执行这个命令:yum -y install lrzsz 之后 直接输入rz 选择要上传的文件,就能把文件上传至服务器或虚拟机。解压:ta...
2018-08-31 17:44:34
1799
原创 Zookeeper的介绍
Zookeeper 是一个开源的分布式的,为分布式应用提供协调服务的 Apache 项目。特点:1.Zookeeper是由一个领导者(leader),多个跟随者(follower)组成的集群。2.leader负责进行投票的发起和决议,更新系统状态。3.follower用于接收客户端请求并向客户端返回结果,在选举Leader过程中参与投票。4.集群中只要有半数以上的节点存活,Zo...
2018-08-31 17:19:08
153
原创 Hadoop-2.8.4.tar.gz在centos6.9上编译
1.首先是JDK的安装:选择版本jdk1.8_172(略)2.安装依赖包:yum -y install gcc-c++ build-essential autoconf automake libtool cmake zlib1g-dev pkg-config libssl-devua svn openssl-devel ncurses-devel3.安装maven,推荐maven...
2018-08-19 22:31:45
438
原创 springboot使用fastjson处理json数据
首先是引入pom文件: <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.15</version> &am
2018-08-07 16:43:33
959
原创 gitlab的搭建
没事搭个gitlab玩玩。步骤:1.配置yum源vim /etc/yum.repos.d/gitlab-ce.repo复制以下的内容: [gitlab-ce] name=Gitlab CE Repository baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/...
2018-08-07 14:05:04
3462
原创 fastDFS的安装(单机版)
FastDFS的安装 1.两台新机器,192.168.163.145 192.168.163.146下面的步骤两台机器同时安装执行在usr/local下新建software文件夹,把相关文件上传至该文件夹下传完之后安装下依赖:ym install make cmake gcc gcc-c++sudo yum -y install gcc automake
2017-11-30 10:01:33
443
原创 lombok插件
下载lombok.jar https://projectlombok.org/download.html2.运行lombok.jar:jar -jar C:\Users\admin\Desktop\lombok.jar C:\Users\admin\Desktop\lombok.jar这是windows下的路径数秒后将弹出一框,确认eclipse的安装路径3.确认完路径之后,点击i
2017-11-28 16:52:27
251
原创 Springboot实现热部署
所谓的热部署:比如项目的热部署,就是在应用程序在不停止的情况下,实现新的部署而Springboot在我们每次修改完代码之后,可能只是修改下打印的信息,就得重新启动App类,这样太浪费时间,有没有一种修改完代码让程序自动重启的方法呢,答案是有的:spring-boot-devtools 是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去。原理是在发现代码有
2017-11-28 16:48:06
11624
原创 Springboot之输出json数据
接着上一篇的helloworld来说:可以在pom文件中引入lombok.jar省去set,get代码<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId></dependency>...
2017-11-28 16:36:52
4201
原创 Springboot-HelloWorld
SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置Springboot的特性:1.创建独立的Spring应用程序2.嵌入的Tomcat,无需部署WAR文件3.简化Maven配置4.自动配置Spring5.提供生产就绪型功能,如指标
2017-11-28 16:17:12
356
原创 dubbo监控中心的安装
步骤:1.首先百度dubbo,在github上把源码下载下来,解压,不建议直接下载网上编译好的war包,因为那些war包是在他们的环境下编译产生的,放在咱们自己的环境中不一定好使,包括jdk,tomcat,maven等环境2.上个图把:3.打开cmd黑窗口,进入dubbo-master文件夹4.执行命令:mvn clean install -Dmaven.test.skip
2017-11-26 17:56:22
355
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人