自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (6)
  • 问答 (1)
  • 收藏
  • 关注

原创 记一次完整的Jmeter性能测试经验

其实网上介绍Jmeter测试的文章有很多,这次更多是从一次需求逻辑的角度去考虑怎么做一次性能测试。一、确定需求说是性能测试,但用到了Jmeter,其实大多数场景下更恰当说应该是叫做压力测试更合适一点,因为Jmeter发起请求更多的是对接口发起的请求,从该接口去看整个系统的一个极限性能在哪里,从而发现资源或逻辑处理瓶颈进行对应的优化。本文的出发点便来于此。 之前同事基于开源框架Californium实现了一个关于物联网Coap协议的消息组件,功能是将设备上送的Coap协议数据转换成系统可见的格式传输到物

2021-04-08 22:14:23 438 2

原创 RocketMQ-消息存储(四)、消息消费队列和索引文件构建机制

当消息生产者提交的消息存储在CommitLog文件中时,会及时更新ConsumeQueue、IndexFile。RocketMQ通过开启一个线程ReputMessageService来准实时准发CommitLog文件更新事件,相应的任务处理器根据转发的消息及时更新consumeQueue、IndexFile文件。消息消费转发的核心实现在StoreMessage的doReput方法中实现:1、返...

2020-01-17 16:37:40 401

原创 RocketMQ-消息存储(二)、内存映射机制

RocketMQ的存储文件RocketMQ的存储文件包括CommitLog文件、ConsumerQueue文件和IndexFile文件。CommitLog :消息存储文件,所有消息主题的消息都存储在 CommitLog 文件中。Commitlog 文件存储目录为${ROCKET_HOME }/ store/commitlog 目录,每一个文件默认lG,一个文件写满后再创建另外一个,以该文件...

2020-01-17 15:53:38 803

原创 RocketMQ-消息存储(一):写入过程

1、当前broker停止工作或为slave则拒绝写入;消息主题长度超过256个字符、消息属性长度超过65536个字符则拒绝该消息写入2、如果消息的延迟级别大于0 ,将消息的原主题名称与原消息队列 ID 存入消息属 性中,用延迟消息主题 SCHEDULE TOPIC 、消息队列 ID 更新原先消息的主题与队列,这是并发消息消费重试关键的一步3、获取当前可以写入的commitLog文件:Comm...

2020-01-17 15:39:02 1708

原创 RocketMQ-消息发送(三)、消息发送异常机制

消息发送高可用主要通过两个手段重试与Broker 规避。首先消息发送端采用重试机制 ,由 retryTimesWhenSendFailed 指定同步方式重试次数,异步重试机制在收到消息发送结构后执行回调之前进行重试。由retryTimes WhenSendAsyncFailed 指定,接下来就是循环执行,选择消息队列 、发送消息,发送成功则返回,收到异常则重试。选择消息队列有两种方式send...

2020-01-17 15:29:34 1543

原创 RocketMQ-消息发送(二)、消息队列负载机制

消息生产者启动之后,我们就可以按照需要发送消息了,消息发送之前,首先需要获取主题的路由信息,只有获取了这些信息我们才知道消息要发送到具体的Broker节点。查找主题的路由信息tryToFindTopicPublishlnfo 是查找主题的路由信息的方法。如果生产者中缓存了 topic 的路由信息,如果该路由信息中包含了消息队列,则直接返回该路由信息,如果没有缓存 或没有包含消息队列, 则向 N...

2020-01-17 15:19:07 632

原创 RocketMQ-消息发送(一)、消息生产者启动流程

RocketMQ 支持 3种消息发送方式 :同步(sync)、 异步(async)、单向( oneway )。同步:发送者向 MQ 执行发送消息 API 时,同步等待,直到消息服务器返回发送结果。异步:发送者向 MQ 执行发送消息 API 时,指定消息发送成功后的回掉函数,然后调 用消息发送 API 后,立即返回,消息发送者线程不阻塞 ,直到运行结束,消息发送成功或失败的回调任务在一个新的线程...

2020-01-17 14:55:49 416

原创 RocketMQ之消息存储篇(一):Java也能做高性能存储?

一、RocketMQ存储概要设计RMQ主要存储的文件包括commitlog文件、consumeQueue文件、IndexFile文件。CommitLog是消息存储文件,所有消息主题的消息都存储在CommitLog文件中;ConsumeQueue是消息消费队列文件,消息达到commitlog文件后将被异步转发到消息消费队列,供消息消费者消费;IndexFile是消息索引文件,主要存储的是key和...

2019-03-01 15:39:57 834

原创 RocketMQ之Producer篇:可靠的消息传输

一、消息数据结构RMQ的消息封装在org.apache.rocketmq.common.message类中,属性: private String topic; //消息所属topic private int flag; //消息flag private Map<String, Strin...

2019-02-28 10:35:21 1524 1

原创 RocketMQ之Namesrv篇:优雅的服务管理

Namesrv就是RMQ中的路由服务,相当于ZK在Kafka中的作用,实现了路由管理、服务注册、服务发现等功能。一、功能接收broker的请求注册broke路由信息(包括master和slave):broker启动时向所有NameSrv注册,Producer在发送消息前先从Namesrv获取Broker服务器地址列表,通过负载算法选择对应服务器进行消息发送。Namesrv与每台broker保...

2019-02-17 10:49:01 4431

原创 RocketMQ之源码环境篇:搭建Debug环境

源码地址:https://github.com/apache/incubator-rocketmq导入方式:因为源码托管在git上,使用git命令行导入或者IDE导入都是很方便的,这里就不赘述,我用eclipse直接导入后的源码结构如下:运行环境:现在直接调试源码肯定是不行的,需要做一些代码的修改:1、org.apache.rocketmq.namesrv.NamesrvStart...

2019-02-17 10:48:05 496

原创 Java并发学习(四)-J.U.C之工具类

1、总览CountDownLatch允许一个或多个线程等待某些操作完成Semaphore Java版本的信号量实现CyclicBarrier 一种辅助性的同步结构,允许多个线程等待到达某个屏障Exchanger 在线程间交换数据的一种手段2、CountDownLatch当一个或多个线程需要等待其他线程完成操作时,就可以使用CountDownLatch了,当然,最简单的你也可以使用j...

2019-01-31 14:54:45 253

原创 Java并发学习(三)- J.U.C之Atomic包

线程安全性定义:当多个线程访问某个类时,不管运行时环境采用何种调度方式,或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的,线程安全类一般具有这几个特性:原子性:提供了互斥访问,同一时刻只能有一个线程来对它进行操作可见性:一个线程对主内存的修改可以及时的被其他线程观察到有序性:一个线程观察其他线程中的指令执行顺序...

2019-01-23 14:08:33 206

原创 Hadoop学习之旅(二)-YARN

一、YARN产生背景二、YARN概述三、YARN架构四、YARN执行流程五、YARN环境搭建六、提交作业到YARN上执行

2018-10-09 09:58:33 510

原创 Hadoop学习之旅(一)-HDFS

一、分布式文件系统的设计思路1.1、为什么要使用分布式文件系统1)、不管文件多大,都存储在一个节点上,在进行个数据处理的时候很难进行并行处理,节点可能就成为网络瓶颈,很难进行大数据的处理2)、存储负载很难均衡,每个节点的利用率很低1.2、简单原理示例为了保证文件的可用可靠性,分布式存储的主要原理就是副本机制,文件以多副本的方式进行存储。 file1:node1 node2 node3...

2018-10-08 22:42:51 225

原创 Java并发编程和高并发学习总结(二)-Java内存模型

Java内存模型1.1、主内存和工作内存Java内存模型规范了Java虚拟机和计算机内存是如何协同工作的,规定了一个线程何时和如何查看和修改其他线程共享的变量的值以及在必须时如何同步的访问共享变量。从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存(main memory)中,每个线程都有一个私有的本地内存(local memory),本地内存中存储了该...

2018-09-27 22:54:42 191

原创 Java并发编程和高并发学习总结(一)-大纲

开篇语想写这样一个东西很久了,在慕课网上学完某老师的课程(避免打广告的嫌疑就不贴出来了,感兴趣的同学可以去慕课网上去搜来看看,是个付费课程)之后就觉得应该有这样的一个学习总结的东西来,后来因为懒又有其他事情耽误了,然后又上了新项目(正好拿来练手了,当然也只用了其中的某几项手段来用),在前前后后又读了几本书,就觉得更有必要写一些东西来总结一下。文章脉络这应该会是一个系列的文章,东西太多一篇总结...

2018-09-24 10:53:06 783

原创 支付项目的一次总结

本文将做支付的一些问题以及近期学习的spring-boot一些东西总结一下,算是对过去一段时间段的总结吧关于Springboot的学习下面的链接是我觉得除了看书之外学习spring-boot的一个很好的途径,它每个项目的功能都是单独切割开来的,可以单独学习你所需要的某一项,整合功能也是一件蛮有成就感的事情: https://github.com/dyc87112/SpringBoot...

2018-09-05 09:10:10 3214 1

原创 Linux常用命令集合

Linux常用命令集合下文中的一些linux命令是我在工作中用到收集而来的,较为碎片化,然后,不定时更新:rpm命令查看软件是否安装。列出所有安装的dockerrpm -qa | grep docker软件是否安装rpm -q | grep docker列出软件包安装的文件rpm -ql docker查看软件所有安装包的文件存储位置rpm...

2018-04-12 13:55:45 175

原创 Mybatis框架及原理分析

框架主要类层次结构1、Mybatis主要做的工作:1、根据JDBC规范建立与数据库的连接2、通过反射打通Java对象与数据库参数交互之间相互转化关系2、主要类的层次关系SqlSessionFactoryBuilder类通过各种构造器方法,将所有的配置信息维持在Configuration类中,返回一个SqlSessionFactory;SqlSessionFactory中的o

2018-02-06 15:10:53 2171 1

原创 微信APP支付Java后台总结

微信APP支付大致的流程和支付宝APP支付有很大不同(想了解支付宝APP支付的同学点这里),其中略坑的一点就是MD5加密的方法需要自己写,好在微信官方给出了测试地址。前置准备微信的东西比支付宝要复杂一点,要先去注册开发者账号,然后一系列巴拉巴拉……,然后得到下面列出的我们开发需要的参数,下面的参数中TOKEN和CERT_PATH是需要退款和设计到其他功能才需要的,如果只做APP支付功能

2018-01-22 14:07:45 5798 5

原创 支付宝支付Java后台总结

这个支付的流程是前端H5(APP等)需要支付时调用后台的接口拿到我们加密的签名去调起支付宝的支付界面(支付宝APP)进行支付操作,并且前端在支付成功后,支付宝后台会回调一个我们在签名时写入的一个接口地址进行支付结果的异步通知。前置准备1、在整个编写过程中使用到的变量主要有私钥、公钥以及你的APPID(H5支付不需要),这些都是你在蚂蚁金服注册之后拿到的。2、使用到的jar包:ali

2018-01-17 15:11:52 2986

原创 Redis学习小结

什么是RedisRedis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis特性更多的数据结构Redis支持的数据格式有String、List、Set、Sorted Set、Hash。这里的区别用一张表阐述: 持久化Redis将数据存储于内存中,或被配置为使用虚拟内存。Redis的所有数据都是保存

2017-11-16 09:47:03 179

原创 阿里OSS上传总结

关于项目官方文档地址: https://help.aliyun.com/document_detail/32008.html?spm=5176.doc31960.6.660.6Ate8V项目介绍这里将OSS的上传做成一个jar包,跟系统里的其他服务独立开来,其他项目可直接拿去用。 项目的执行流程: 项目的源码文件地址:

2017-11-13 13:03:50 877

原创 Maven技术小结

Maven技术小结花了几个小时看了下Maven,写下此篇以备查录。 目录 - Maven基础 - *文件目录* - *执行流程* - Maven核心 - *常见构建命令* - *自动创建目录骨架* - *Maven中的坐标和仓库* - *Maven完整项目的构建过程* - *Maven生命周期*Maven基础文件目录执行流程compile -> pom -> 本地仓库 -> 远程

2017-05-21 23:53:35 376

Java并发编程和高并发解决方案-总结思维导图

Java并发编程和高并发解决方案-总结思维导图,里面是对JUC包和高并发应用的学习思维导图和总结

2018-09-24

PayUtil.rar

这是第三方支付使用到的一些工具类,里面包含了支付宝支付微信支付和银联支付的一些常用基础方法,自己照着例子去写对java基础也是一个很好的检验

2018-01-19

payCommonUtil.java

里面集成了一些第三方支付方法需要的工具类,直接放入项目中使用即可!

2018-01-19

阿里支付的两个jar包

里面包含了2个jar包,下载下来解压放进自己的maven仓库里就好了

2018-01-17

阿里云OSS服务的aliOss.jar

封装的阿里云的OSS上传的jar包,不想写代码的同学可以直接拿去用

2018-01-17

整理的Redis思维导图

菜鸟上整理的Redis思维导图,整理了关于Redis的一些服务配置还有数据类型的细节,很详细!

2017-11-16

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除