- 博客(67)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 RocketMq 延时队列
RocketMq 延时队列延时队列先说一下,基本的概念,什么是延时队列,实际的业务场景就是,一个人下订单后多久没有支付,然后取消订单,这个多久就是延时,这个逻辑可以用延时队列实现。2. RocketMq 延时队列首先,RocketMq本身提供,几类的延时队列,详细可以看源码org.apache.rocketmq.store.config.MessageStoreConfigprivate String messageDelayLevel = "1s 5s 10s 30s 1m 2m 3m
2021-12-21 21:43:03
730
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 RocketMq源码阅读系列-顺序消费
RocketMq顺序消费源码阅读RocketMq顺序消费顺序消费顺序消费需要什么RocketMq顺序消费最近在做需求时候发现,有场景是需要严格的顺序消费的,比如订单需要先下单,然后取消,其他的操作,如果不是业务的正常顺序进行消费的时候,可能会出现取消的消息先被消费到,结果导致查询不到数据的情况。下面我们一起看一下什么是顺序消费。顺序消费顺序消费,表示我们可以按照业务逻辑的顺序,定制顺序,同时顺序消费分为全局顺序和局部顺序。全局顺序,一个Topic内所有的消息按照先进先出的顺序进行发布和消费。相当
2021-06-04 18:42:36
302
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 blockQueue阻塞队列
阻塞队列的实现ArrayBlockingQueue 实现了BlockingQueue接口,主要的变量是 /* * Concurrency control uses the classic two-condition algorithm * found in any textbook. */ /** Main lock guarding all access */ final ReentrantLock lock; /** Condition
2021-01-04 16:50:08
173
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 ConcurrentHashMap
conccunrentHashMapConcurrentHashMapput方法首先获取hash值然后判断是否已经初始化过,判断数组是否为空,然后就进行初始化,这个初始化的过程,会用一个sizeCtl的变量表示,是否有线程在初始化,如果有让出cpu的时间片,Thead.yield()sizeCtl :默认为0,用来控制table的初始化和扩容操作-1 代表table正在初始化-N 表示有N-1个线程正在进行扩容操作,m+1个线程在初始化,把sizeCtl设为长度的0.75倍,此时sizeCt
2021-01-03 16:39:21
604
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 java线程池源码解析(一)
java线程池源码解析java线程池源码解析java线程池源码解析直接看一下这个execute线程池执行任务的api public void execute(Runnable command) { if (command == null) throw new NullPointerException(); /* * Proceed in 3 steps: * * 1. If fewer tha
2020-12-22 22:08:04
158
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 事务是如何回滚的
先举个栗子:大家应该都用过office Word,之前一直盛传如果电脑突然断电了,文档会丢失,这个是很早的时候的问题了,现在已经解决了,我们看一下是如何解决的,当我们在编辑文档的时候,每隔一段时间,word会自动把当前的编辑记录记下来,我们可以把每一次的开始编辑作为一次事务的 Begin,每一次的保存作为事务的 Commit,不保存退出作为事务的 Rollback。之后如果正常保存后,就清除这些log,如果突然断电了,再次打开的时候软件发现有日志,就提示用户是rollback还是commit。这
2020-08-19 11:29:25
2068
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 java并发之AQS
AQS 是什么简单来说,就是来说就是一个数+一个FIFO的双端队列如图所示:当state成为我们想要的值,线程可以进行运行,否则进行排队在CLH末尾加入,state使用cas算法进行操作,可以解决并发时的安全问题。CAS 是一种比较交换算法,现代的计算机的CPU有这条指令,jdk5.0后,jdk提供了使用的方式,大概的逻辑就是如果另一个线程看到的值还是expect,代表没有被其他...
2019-10-08 09:54:41
207
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 一些常见的linux命令总结
awkawk 比grep功能更多的awk -F ‘{print $0}’ -F 加分隔符 默认 tab${0} 等于分割后的第几个元素sortsort 用于排序sort -nr 按照数字倒序排列uniquniq 用于检查及删除文本文件中重复出现的行列uniq -c 在每列旁边显示该行重复出现的次数uniq -d 显示出现次数大于一的, 可以用来查询重复行列子查询出现次数最...
2019-09-29 14:05:50
219
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 最近面试总结和经验
项目经历和具体业务具体的看简历上的描述,尽量可以描述的清楚,可以画个流程图java基础在个人的面试中,问的问题大概可以分为基本流程和细节下面的知乎的一面:基本流程和一些细节ArrayList和linkedList区别spring mvc 初始化流程spring 事务控制java 多线程synchronized怎么使用及区别 类锁bean 的作用域使用过的bloc...
2019-09-20 20:31:43
225
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 mongodb 数据迁移
今天有个需求,将测试环境的有些配置从测试环境的mongo迁移到线上环境。 首先想到类似mysql的办法,使用可视化工具进行操作,但是发现RoboMongodb不支持,在网上查了查也没有找到有合适的工具。 在搜索的过程中,找到mongodb有自己写好的轮子,不用再造轮子了。 mongodump 备份命令 生成json bson json 是表结构 bson 是表数据 具体命令:./...
2018-08-21 21:29:57
4254
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 storm (一)
storm是流式处理框架 Storm有如下特点: 编程简单:开发人员只需要关注应用逻辑,而且跟Hadoop类似,Storm提供的编程原语也很简单 高性能,低延迟:可以应用于广告搜索引擎这种要求对广告主的操作进行实时响应的场景。 分布式:可以轻松应对数据量大,单机搞不定的场景 可扩展: 随着业务发展,数据量和计算量越来越大,系统可水平扩展 容错:单个节点挂了不影响应用 消息不丢失:保证...
2018-05-31 17:07:52
249
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 flume和kafka
agent里面包含3个核心的组件:source—->channel—–>sink,类似生产者、仓库、消费者的架构。 source:source组件是专门用来收集数据的,可以处理各种类型、各种格式的日志数据,包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy、...
2018-05-28 18:38:38
287
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 mongodb 初步
mongodb 简单记录 mongodb的结构有点类似mysql 如下为其对比: mondodb mysql database database collection table document row column fieldmongodb存放的数据类似于json,叫bson 例子:db.col.in...
2018-03-13 16:25:39
228
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 shell编程(一)
shell 编程定义变量 `x=664` 在变量名.等号和值之间不能有空格输出指令 `echo` echo $x引号的区别 "" '' ""会将空格和分割都不转意,''会将值原样赋值export 将变量升为全局变量$()或`` 可以获取命令的返回值$? 表示上一个命令退出的状态$$ 表示当前进程编号$0 表示当前脚本名称$n 表示n位置的输入参数(n代表数字,n>=1)$# 表
2017-09-23 12:02:31
298
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 java 多线程随笔(三)
java 多线程跳表和无锁Skip List是 William Pugh 在1989年创建出来的(又见一个位神牛), 主要的目的就像他描述的那样,是用来替代平衡树的。跳表是一种随机性的数据结构,相对于平衡树来说,跳表更加的简单,能一口气实现红黑树,AVL这样的平衡树的人,还是太少了,而且内部确实复杂,调试, 用起来太麻烦。 同样跳表还可以做到平衡树那样的查找时间,特别是在并发的场景下面,由于红黑树的
2017-08-14 16:17:49
252
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 java 多线程随笔(二)
继续上一篇文章,synchronized 的功能扩展,重入锁。ReenterLock 重入锁 为什么叫重入锁呢?因为锁是可以反复进入的,针对一个线程来说的 与synchronized 比较写一下 第一 ReenterLock 需要手动释放锁,synchronized 不需要 第二 中断响应 对于synchronized 如果一个线程在等待,只有继续执行或等待,但是重入锁可以等待时,进行中断
2017-08-11 15:44:22
234
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 java 多线程随笔( 一)
多线程随笔最近在准备秋招,看了一些多线程的基础,个人记一下。多线程随笔线程与进程java 多线程线程的状态java多线程中的关键字线程与进程简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。 线程在执行过程中与进程还是有区别的。每
2017-08-09 17:27:13
401
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 spring boot dubbo 简单例子
spring boot dubbo demo首先spring boot简化了spring的配置,方便使用,写一下spring boot dubbo 的整合的文章。先下载zookeeper,然后解压就行。在这个目录,双击zkServer.cmd就行。linux的用命令行./zkServer.sh start 上代码前,介绍一下dubbo DUBBO是一个分布式服务框架,致力于提供高性能和透明化
2017-07-24 16:11:05
5018
3
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 SSL证书和spring boot的配置
Https配置和spring boot的使用Https配置和spring boot的使用生成ssl证书创建spring boot项目http转到https配置生成ssl证书首先了解一下ssl证书,在B/S中SSL是使用https协议来实现的 那么在使用SSL时,首先需要证书 在java环境下,查看JAVA_HOME/bin 中的keytool.exe是一个证书管理工具,可以用来生成自签
2016-11-23 18:20:41
12246
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 spring boot 加快springmvc开发
最近接触了spring boot对其理念非常认同,spring 4.0提倡约定优于配置,spring boot对spring的配置进行简化,几乎零配置。同时对spring 需要的jar 也进行了整合,解决jar冲突的问题。下面是从spring boot 官方的开源代码,写的demo,spring boot github地址是(https://github.com/spring-projects/sp
2016-06-21 13:59:16
29519
原创 dubbo 系列之Spi(一)
Dubbo SpiDubbo SPIJdk的Spi的实现功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入Dubbo SPIDubbo中最核心的扩展逻辑就是Spi机制了,我们今天来看Jdk的Spi的实现将一下为啥要用这个功能吧
2022-05-22 11:12:53
333
原创 dubbo spi 源码随笔
Dubbo spiExtensionLoader获取到对应的加载器public static <T> ExtensionLoader<T> getExtensionLoader(Class<T> type) { if (type == null) { throw new IllegalArgumentException("Extension type == null"); } if (!ty
2022-05-06 23:06:45
436
原创 Netty随笔(一)
Netty writeAndFlush源码分析public class RequestSampleHandler extends ChannelInboundHandlerAdapter { @Override public void channelRead(ChannelHandlerContext ctx, Object msg) { String data = ((ByteBuf) msg).toString(CharsetUtil.UTF_8); R
2022-04-07 15:20:47
177
原创 spring xsd 加载问题
spring xsd 加载问题首先spring的xml配置,在文章头部会有http://www.springframework.org/schema/beans/spring-beans.xsd 类似于这种地址。 加载顺序为: 1.首先在jar包中找,在jar中有个META-INF文件夹,其中有文件为spring.handlers·spring.schemas 文件中会将uri的xsd...
2018-09-10 19:03:59
1097
原创 mongodb(二)
1、db.collection.aggregate()可以多个管道,能方便的进行数据的处理。 2、db.collection.aggregate()使用了MongoDB内置的原生操作,聚合效率非常高,支持类似于SQL Group By操作的功能,而不再需要用户编写自定义的JavaScript例程。 3、 每个阶段管道限制为100MB的内存。如果一个节点管道超过这个极限,MongoD...
2018-05-28 10:29:45
185
原创 git使用(二)
git 使用最近在公司中,使用git,对git的开发规范进行了一下了解,和大家分享一下,首先公司使用的是GitLab,然后进行多人协同开发,之前也使用过git,但是感觉和svn没有什么区别,可能之前自己的项目都是直接提交到master上,并没有使用分支管理。 git 分支 个人理解就是自己独立的‘master’,和其他人没有冲突的,可以自己在上面进行开发。 那么用...
2018-03-01 16:00:53
171
原创 redis sentinel简单记录
redis sentinel简单记录首先说一下Redis,Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(g
2018-02-02 17:10:00
1496
原创 git使用(一)
git使用之前也一直在用git,只是上传和下载都在ide上进行的,最近用到了命令 小结一下吧。 git init 通过命令 git init 把这个目录变成git可以管理的仓库 git add . 把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点“.”,意为添加文件夹下的所有文件 git commit -m ‘first commit’...
2017-10-25 16:53:08
313
原创 正则表达式随笔
正则表达式最近在用hibernate validator时用到了正则表达式,随手一记。 需求是1m-2880m 所以首先将1-2880拆分为 1m-999m ^([1-9]\d{0,2}[m]) 大概说一下^匹配开始[1-9]指第一位为1-9任意数\\d{0,2}最多两位任意数[m]代表m1000m-1999m ^(1\d{3})[m] 2000m-2799m ^(2[0-7]\
2017-09-25 17:51:33
266
原创 tomcat 8.5部署报错
tomcat 8.5.4部署报错最近在服务器部署时,使用了tomcat 8.5,结果把war包一放上去,启动就报错,大概是-Xmx大小配置的问题,在网上找了一下,改了却发现tomcat8.5不支持,后来找到了解决办法. 在/bin路径下新建setenv.sh 并配置JAVA_HOME=/usr/lib/jvm/java-1.8.0/export JAVA_OPTS="-server -Xms5
2017-06-19 22:36:14
1971
1
原创 spring boot+mybatis+freemarker
之前写过一篇spring boot简单入门介绍,没想到访问量这么多,今天我就继续了! 不说废话,上代码! application.properties配置文件logging.level.com.peng.demo=debuglogging.level.org.springframework=debugserver.port=8990spring.datasource.type=com.ali
2017-06-19 22:20:58
4114
1
原创 nginx简单配置
nginx +tomcatnginx 是web应用服务器,作为高性能服务器,拥有许多功能,反向代理,静态化,负载均衡等 今天实现对静态文件的配置 用nginx对请求进行处理,tomcat负责后台业务逻辑 首先,在linux安装nginx yum install nginx service nginx start 然后对nginx进行配置vim /etc/nginx/conf.d/def
2017-06-19 22:00:21
343
原创 webservice(二)
上次写到我们生成xml,我们想到xml要是可以生成接口不就是可以实现了吗,那我们试一下! 如图所示,wsimport -s +保存地址 -p 包名 +wsdl文档url 生成了一些java类 这时我们可以直接用MyServiceImpl生成接口 webClient.javapackage test;import javax.xml.namespace.QName;import ja
2017-02-26 23:06:46
273
原创 webservice (一)
最近在写项目时,用到了webservice,顺便学了一下,略有感想,在此分享。 webservice 是可以跨平台的,跨语言的,用http和xml规范的对不同系统进行协调,合作的通讯技术。 比如,幼儿园的管理系统是.net编写的,但是我们现在要在加一个财务管理系统,由于我是java开发的,因此产生跨语言,跨平台的问题。 而webservice正是应用于此,webservice是用http协议,
2016-12-10 00:37:42
384
转载 Java 归并排序实现
package com.peng;import java.util.Arrays;/** * Created by Administrator on 16-11-3. */public class SortTest { /** * 归并排序 * 简介:将两个(或两个以上)有序表合并成一个新的有序表 即把待排序序列分为若干个子序列,每个子序列是有序的。然后再
2016-11-03 13:44:58
376
原创 jsp 错误
今天在写ajax时,对其进行post请求时, serlet 转发时,前端获取不到页面但是在浏览器中调试时,发现有页面的返回值是整个jsp,想了好久,发现是serlet的转发被当成ajax的返回值了 so,随笔一记,以后避免!!!!
2016-11-01 19:54:26
241
原创 hadoop dns解析
因为 hadoop 集群之间通过主机名互相访问,所以必须设置 dns 解析。使用 gedit 编辑 dns 解析文件 在文本最后追加一行, “192.168.80.100 hadoop” ,注意 ip 与主机名之间使用空格分2016-07-31 21:47:24,985 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: java.net
2016-08-01 14:08:55
2401
转载 vm 的异常
无法打开内核设备“\\.\Global\vmx86”: 系统找不到指定的文件是虚拟机服务没有开启:用管理员权限打开cmd 输入一下语句net start vmcinet start vmx86net start VMnetuserifsc config vmci=autosc config vmx86=auto
2016-07-27 15:35:30
366
原创 做Echar报表的错误总结
mybatis 多个参数报错 在做select时,经常需要穿多个参数,同时进行判断 多个参数经常用#{i},i代表传入的参数位置 但是当我对mybatis进行动态语言时,报错 List<SdMealAll> selectAllByLeaderAndTime(@Param(value = "uid")String uid,@Param(value = "time") String time);这
2016-07-22 18:05:58
372
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人