HelloWorld搬运工

HelloWorld搬运工

排序:
默认
按更新时间
按访问量

redis监控系统redis-stat应用

Redis需要监控才知道具体运行信息,虽然Redis也提供了info等命令行,但是毕竟不方便而且不能保存历史信息。redis-stat是一个用ruby写成的监控redis的程序,基于info命令获取信息,而不是通过monitor获取信息。安装ruby环境Redis-stat用ruby写成,第一步当...

2018-06-27 17:14:50

阅读数:35

评论数:2

redis info信息详解

为了方便对redis进行监控管理,一些公司会自己开发监控,或在已有的系统中添加功能。对redis info信息的获取是必须要处理的。Redis Info信息包括Server,Clients,Memory,Persistence,Stats,Replication,CPU,Commandstats,...

2018-06-20 10:51:50

阅读数:115

评论数:0

这 30 个常用的 Maven 命令你必须熟悉!

maven 命令除了常用的几个,大部分经常记不住,整理一下,方便查询。maven 命令的格式为 mvn [plugin-name]:[goal-name],可以接受的参数如下。-D 指定参数,如 -Dmaven.test.skip=true 跳过单元测试;-P 指定 Profile 配置,可以用于...

2018-06-14 21:05:17

阅读数:76

评论数:0

G1与CMS垃圾回收

G1 GC,全称Garbage-FirstGarbage Collector,通过-XX:+UseG1GC参数来启用,作为体验版随着JDK 6u14版本面世,在JDK 7u4版本发行时被正式推出,相信熟悉JVM的同学们都不会对它感到陌生。在JDK 9中,G1被提议设置为默认垃圾收集器(JEP 24...

2018-06-13 20:00:33

阅读数:35

评论数:0

关于java流的几个概念:IO、BIO、NIO、AIO,有几个人全知道?

关于同步、阻塞的知识我之前的文章有介绍,所以关于流用到这些概念与之前多线程用的概念一样。下面具体来看看java中的几种流IO/BIOBIO就是指IO,即传统的Blocking IO,即同步并阻塞的IO。这也是jdk1.4之前的唯一选择,依赖于ServerSocket实现,即一个请求对应一个线程,如...

2018-06-04 21:28:50

阅读数:68

评论数:0

如何解决秒杀的性能问题和超卖的讨论

进入正文前先说一点个人感受,之前看淘宝的ppt感觉都懂了,等到自己出解决方案的时候发现还是有很多想不到的地方其实都没懂,再次验证了“细节是魔鬼”的理论。并且一个人的能力有限,只有大家一起讨论才能想的更周全,更细致。好了,闲话少说,下面进入正文。一、秒杀带来了什么?秒杀或抢购活动一般会经过【预约】【...

2018-06-04 21:17:31

阅读数:50

评论数:0

dubbo spi扩展实现机制javassist

Dubbo为了实现基于spi思想的扩展特性,特别是能够灵活添加额外功能,要能够动态生成一个叫做控制或适配并实现扩展或策略选择功能的类。当然对应已知需求如Protocol, ProxyFactory他们的策略选择的适配类代码dubbo直接提供也无妨,但是dubbo作为一个高扩展性的框架,使得用户能够...

2018-05-28 18:30:20

阅读数:57

评论数:0

类加载器与双亲委派模型

类加载器加载类的开放性类加载器(ClassLoader)是Java语言的一项创新,也是Java流行的一个重要原因。在类加载的第一阶段“加载”过程中,需要通过一个类的全限定名来获取定义此类的二进制字节流,完成这个动作的代码块就是类加载器。这一动作是放在Java虚拟机外部去实现的,以便让应用程序自己决...

2018-05-27 14:42:34

阅读数:22

评论数:0

Java命令学习系列(零)——常见命令及Java Dump介绍

一、常用命令:在JDK的bin目彔下,包含了java命令及其他实用工具。jps:查看本机的Java中进程信息。jstack:打印线程的栈信息,制作线程Dump。jmap:打印内存映射,制作堆Dump。jstat:性能监控工具。jhat:内存分析工具。jconsole:简易的可视化控制台。jvisu...

2018-05-23 08:20:54

阅读数:30

评论数:0

Java命令学习系列(四)——jstat

jstat(JVM Statistics Monitoring Tool)是用于监控虚拟机各种运行状态信息的命令行工具。他可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形的服务器上,它是运行期定位虚拟机性能问题的首选工具。jstat位于java的bin...

2018-05-23 08:15:29

阅读数:22

评论数:0

Java命令学习系列(三)——Jmap

什么是堆Dump堆Dump是反应Java堆使用情况的内存镜像,其中主要包括系统信息、虚拟机属性、完整的线程Dump、所有类和对象的状态等。 一般,在内存不足、GC异常等情况下,我们就会怀疑有内存泄露。这个时候我们就可以制作堆Dump来查看具体情况。分析原因。基础知识常见内存错误:outOfMemo...

2018-05-23 08:13:03

阅读数:37

评论数:0

Java命令学习系列(二)——Jstack

jstack是java虚拟机自带的一种堆栈跟踪工具。功能jstack用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。 线程出现停顿...

2018-05-23 08:09:55

阅读数:25

评论数:0

服务器性能指标(一)——负载(Load)分析及问题排查

        平常的工作中,在衡量服务器的性能时,经常会涉及到几个指标,load、cpu、mem、qps、rt等。每个指标都有其独特的意义,很多时候在线上出现问题时,往往会伴随着某些指标的异常。大部分情况下,在问题发生之前,某些指标就会提前有异常显示。  对于这些指标的理解和查看、异常解决等,是...

2018-05-22 08:00:11

阅读数:230

评论数:0

dubbo应用场景示例三

1、只注册如果有两个镜像环境,两个注册中心,有一个服务只在其中一个注册中心有部署,另一个注册中心还没来得及部署,而两个注册中心的其它应用都需要依赖此服务。这个时候,可以让服务提供者方只注册服务到另一注册中心,而不从另一注册中心订阅服务。禁用订阅配置<dubbo:registr...

2018-05-22 07:40:55

阅读数:220

评论数:0

互联网金融消息队列ZeroMQ

之前对消息队列服务中间件进行了对比,具体可以参看《消息队列选型》。一般互联网公司都使用消息队列来实现系统解耦,提速,广播,流量削峰等应用场景。ZeroMQ,低延时、高性能特性,被应用于实时性要求高的系统解耦。1、什么是ZeroMQ:据官方文档介绍,ZeroMQ是一个可伸缩的分布式或者高并发的异步网...

2018-05-21 18:58:23

阅读数:53

评论数:0

dubbo应用场景示例二

《dubbo应用场景示例一》中我们介绍了3种dubbo应用场景,今天我们接着聊聊dubbo几种应用场景。1、线程模型如果事件处理的逻辑能迅速完成,并且不会发起新的 IO 请求,比如只是在内存中记个标识,则直接在 IO 线程上处理更快,因为减少了线程池调度。但如果事件处理逻辑较慢,或者需要发起新的 ...

2018-05-21 18:55:27

阅读数:23

评论数:0

dubbo应用场景示例一

公司使用Dubbo做为服务治理工具搭建了微服务架构。幸运的是,Dubbo官方文档对于开发过程遇到的一些通用问题提供了解决办法。我们一起来看一下。1、启动时检查Dubbo 缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止Spring 初始化完成,以便上线时,能及早发现问题,默认 che...

2018-05-21 18:53:11

阅读数:56

评论数:0

Java高级特性入门——泛型、反射和注解

本次的分享主要围绕以下三个方面:一、泛型介绍二、反射机制三、注解的使用一、泛型介绍在日常编程的过程中,泛型在这三个特性之中使用频率是最高的。”泛型”一词中的泛字可以理解为泛化的意思,即由具体的、个别的扩大为一般的。Oracle对泛型的官方定义是:泛型类型是通过类型参数化的泛型类或接口。一言以蔽之,...

2018-05-20 21:53:05

阅读数:36

评论数:0

高并发的核心技术-幂等的实现方案

一、背景 我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。 例如: 1. 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。 2. 我们发起一笔付款请求,应该只扣用户账户一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱; 3. 发送消息,也应...

2018-05-20 21:18:35

阅读数:25

评论数:0

jdk命令行工具详解

由于java jdk命令行工具比较重要,加之看到一篇不错的总结,所以接下来详细讲解。很多java开发人员一旦发现应用无法响应、首先查看一下日志、在查找日志无果的情况下动不动就重启java应用先让其正常工作了再说。还有更为夸张的是听到过制作定时脚本每天半夜定时重启、并笑着说重启解决一切问题。这种解决...

2018-05-16 22:17:21

阅读数:15

评论数:0

jedis常用操作命令

1.对value操作的命令     exists(key):确认一个key是否存在     del(key):删除一个key     type(key):返回值的类型     keys(pattern):返回满足给定pattern的所有key     randomkey:随机返回key空间的一个k...

2018-05-15 21:56:35

阅读数:27

评论数:0

常用 Git 命令清单

我们每天使用 Git ,但是很多命令记不住。一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。下面是我整理的常用 Git 命令清单,清单是供大家查缺补漏的,大家可以预览下以下清单,看自己有哪些是不太熟悉或者不知道的,然后针对性的了解其用法。熟练了这些命令...

2018-05-15 21:36:38

阅读数:31

评论数:0

jvm基础总结概述

一、运行时数据区域程序计数器记录正在执行的虚拟机字节码指令的地址(如果正在执行的是本地方法则为空)。虚拟机栈每个 Java 方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、常量池引用等信息。每一个方法从调用直至执行完成的过程,就对应着一个栈帧在 Java 虚拟机栈中入栈和出栈的过程。可...

2018-05-14 21:13:07

阅读数:17

评论数:0

Linux中nohup与&区别和命令执行输出重定向

1、nohup与&的区别测试代码如下:是一个输出hello与循环轮数的死循环程序,每输出一行就休眠1秒。 使用 ./a.out 前台运行程序,会是什么效果呢?程序每隔一秒会在终端输出一个字符串。此时如果键入Ctrl+C ,程序会收到一个SIGINT信号,如果不做特殊处理,程...

2018-05-11 20:33:47

阅读数:33

评论数:0

逼格高又实用的 Linux 高级命令,开发运维都要懂

前言在运维的坑里摸爬滚打好几年了,我还记得我刚开始的时候,我只会使用一些简单的命令,写脚本的时候,也是要多简单有多简单,所以有时候写出来的脚本又长又臭。像一些高级点的命令,比如说 Xargs 命令、管道命令、自动应答命令等,如果当初我要是知道,那我也可能写出简洁高效的脚本。不管出于任何原因,我都想...

2018-05-10 22:18:54

阅读数:52

评论数:0

Linux常用的日志查看命令

对于大型网站来说,很多网站在可用性方面提出4个9或者5个9的要求,如果是4个9,那么网站全年的不可用时间不能超过52.6分钟,如果是5个9,全年不可用时间不能超过5.2分钟。这其实是很难的,无论多么厉害的程序员,他写过的代码不可能完全没有问题。而且有些时候,在线上发生问题的时候,我们大部分时间都用...

2018-05-07 22:55:08

阅读数:38

评论数:0

jdk8队列接口类汇总解析

这段时间研究了一下消息队列,关于消息队列选型可以参看《消息队列选型》。根据公司业务需要最终选择了RocketMQ,关于RocketMQ的安装应用可以参看之前如下文章。《阿里消息队列使用》《RocketMQ Java应用—NormalProducer(普通)模式》《阿里消息队列Java应用》Rock...

2018-05-06 22:27:10

阅读数:36

评论数:0

docker轻量级编排创建工具Humpback

Docker容器做为微服务的重要组成部分,伴随着微服务的流行,在很多公司已经落地并投入生产。不过,docker为dev和ops带来便利的同时,docker的编排和创建管理也带来了一些问题。纯手动操作docker,一个两个还好,多了估计能逼疯dev和ops,尤其是ops,用kubernetes, 仅...

2018-05-06 22:25:49

阅读数:97

评论数:0

PDF中动态添加图片和文字

公司在另一个项目中有个关于PDF的操作,在PDF中动态添加图片和文字。我们公司操作PDF的功能还蛮多的。不用说了,基于以前的技术积累,优先考虑itextpdf的实现方式。网上搜索后发现itextpdf也确实是比较好的实现。具体实现思路比较简单,使用福昕阅读器或adobe acrobat软件来为需要...

2018-05-06 22:23:53

阅读数:126

评论数:0

MapReduce思路生成PDF大文件解决方案

最近一段时间公司搞个项目,其中有个将数据按照一定的格式生成PDF文件的功能。在网上搜寻以后决定采用itextpdf插件来实现生成PDF的功能。最初的生成思路比较老套,简单四句话,将要输出的格式做成html,在程序中读取html文件,从数据库获取数据替换html文件中的替换符,用itextpdf将h...

2018-05-06 22:22:57

阅读数:16

评论数:0

RocketMQ环境搭建

在上篇《消息队列选型》中我们通过对目前比较流行的各个MQ产品的对比,结合公司具体业务需求,选择了RocketMQ做为我们的消息中间件,这篇分享我们介绍一下RocketMQ的安装配置。1、初步理解Producer/Consumer Group在安装RocketMQ之前我们先来理解Group概念,在R...

2018-05-06 22:21:50

阅读数:68

评论数:0

RocketMQ Java应用—顺序模式和事务模式

在《RocketMQ Java应用—NormalProducer(普通)模式》中我们谈了RocketMQ的普通模式,以及一些基本的功能。今天我们来聊一聊RocketMQ的顺序模式和事务模式。常见业务系统解耦用普通模式来实现一般情况下没什么问题。不过在日常开发中也有些业务希望消息队列完全按照生产顺序...

2018-05-06 22:20:01

阅读数:27

评论数:0

RocketMQ Java应用—NormalProducer(普通)模式

之前的文章《阿里消息队列使用》我们介绍了如何搭建RocketMQ的单Master环境,其它集群环境的搭建只要复制master,然后修改配置即可。这篇我们介绍如何在Java应用中使用RocketMQ来实现生产、消费者,快速体验RocketMQ。1、RocketMQ的模式概述RocketMQ提供了3种...

2018-05-06 22:17:55

阅读数:20

评论数:1

为什么HashMap非线程安全

上篇《HashMap底层数据结构原理》我们介绍了HashMap的底层实现方式。其中我们说HashMap是非线程安全的,那么这篇我们就来详细解释为什么HashMap是非线程安全的。小明:老师,上次讲了HashMap的底层实现原理,学到很多东西。但是HashMap为什么非线程安全呢,一直想不明白。可以...

2018-05-06 22:15:27

阅读数:12

评论数:0

消息队列技术选型

最近公司业务发展,需要对业务结构进行拆分。在业务异步处理的时候用到了消息队列,在此记录一下消息队列的选型过程。根据公司的业务需要,对消息队列有几个要求。第一:消息要能够按生产顺序消费;第二:性能(QPS)要好;第三:消息要能够持久化;最后要尽可能保证数据的幂等性。一、主流MQMQ,消息队列,Mes...

2018-05-06 22:13:44

阅读数:25

评论数:0

Java多线程编程概述

在开发中我们经常使用线程来优化程序,提高系统执行效率,今天我们就来简单概述一下Java开发过程中需要了解的多线程知识点。一、进程与线程进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。线程,有时被称为轻量级进程(Ligh...

2018-05-06 22:11:33

阅读数:11

评论数:0

HashMap底层数据结构原理解析

老师:JDK中我们最常用的一个数据类是HashMap。那么,谁可以回答一下HashMap的底层数据结构原理是什么呢?小明:老师,我知道。众所周知,HashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个数组当中,这个数组就是...

2018-04-18 22:00:53

阅读数:157

评论数:0

MySQL数据库的几个优化建议

性能是我们衡量应用的一种方式,而应用性能的一项指标就是用户体验,也就是平时我们常说的:“用户需要等待超过合理的时间,才能获得他们想要的东西吗?”在不同的情况和场景下,该指标会有所不同。比如说:对于移动购物应用来说,其响应时间不能超过几秒钟;而对于一个员工的人力资源页面而言,其响应时间则允许比几秒钟...

2018-04-18 21:57:27

阅读数:99

评论数:0

程序开发常用加密策略解析

系统开发中,为了系统数据安全,数据加密不可缺少,开发人员需要掌握常见的加密策略。一、数字摘要数字摘要也称为消息摘要,它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash函数对消息进行计算而产生。如果消息在传递的途中改变了,接收者通过对收到消息采用相同的Hash重新计算,新产生的摘要与...

2018-04-18 21:54:17

阅读数:89

评论数:0

常用数据结构总结

小明:最近常有人讨论数据结构和算法,听他们讨论时总是感觉晕乎好多都不懂,可以普及一下吗?老师:难得你这么爱学习,我们今天就普及一下数据结构的基础知识。数据结构与算法是程序设计的两大基础,是否熟练掌握可以在一定程度上证明你是否有良好的逻辑思维。我们先看一下常用数据结构和算法的整体内容。1.数据的逻辑...

2018-04-18 21:49:29

阅读数:25

评论数:0

高并发场景下缓存的常见问题

1缓存一致性问题当数据时效性要求很高时,需要保证缓存中的数据与数据库中的保持一致,而且需要保证缓存节点和副本中的数据也保持一致,不能出现差异现象。这就比较依赖缓存的过期和更新策略。一般会在数据发生更改的时,主动更新缓存中的数据或者移除对应的缓存。2缓存并发问题缓存过期后将尝试从后端数据库获取数据,...

2018-04-10 07:58:47

阅读数:150

评论数:0

常用SQL优化方法

1、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。3、应尽量避免在 where 子句中对字段进行 n...

2018-04-10 07:55:09

阅读数:91

评论数:0

数据结构-红黑树解析

小明:老师,红黑树是什么树呀?老师:红黑树是数据结构的一种,在JDK的TreeMap,TreeSet中都用应用,JDK8的HashMap中,当链表树超过8的时候链表会转换为红黑树可以提高查询效率。小明:好深奥哦,可以详细讲讲吗?老师:好吧,要学习红黑树,咱们需要先来理解二叉查找树(Binary S...

2018-04-08 17:54:00

阅读数:26

评论数:0

MD5算法如何被破解

小明:老师,上次您讲了MD5算法。用它生成的信息摘要,真的可以被破解吗?老师:有很多种方法可以破解,不过需要明确一点,这里所谓的破解,并非把摘要还原成原文。为什么呢?因为固定128位的摘要是有穷的,而原文数量是无穷的,每一个摘要都可以由若干个原文通过Hash得到。小明:如果是这样的话,网上所说的M...

2018-04-02 20:55:29

阅读数:652

评论数:0

MD5信息摘要算法解析

小明:老师,最近老板让我研究微信支付的接口文档,可是有个地方我总是弄不明白。老师:什么地方不明白,说来听听。小明:微信支付的接口有许多业务参数,还有一个参数Sign。微信方给了我一个Key,让我把业务参数和Key按一定规则拼接起来,生成Sign参数。着到底是什么鬼?老师:你连这个都不知道呀?这是为...

2018-04-01 21:48:08

阅读数:62

评论数:0

SHA算法系列介绍

小明:老师,有个问题不懂。老师:什么问题,说吧。小明:我最近在研究微信支付接口,发现它不仅支持MD5摘要的验签,还支持SHA-256摘要。这个SHA是什么鬼?老师:和MD5算法类似,SHA(Secure Hash Algorithm)也是一种生成信息摘要的算法。小明:可是我看到网上以SHA命名的算...

2018-04-01 21:44:18

阅读数:143

评论数:0

分布式应用唯一ID生成方式

分布式服务中经常会遇到这样的业务场景:l  一些服务发送消息到队列,另一些服务从队列消费消息,消息可能会重复,消费端需要做幂等,为了达到业务的幂等,希望有一个不能重复且趋势递增的编号存在;l  分库分表中需要生成不能重复且趋势递增的产品编号或者订单编号;为此,生成编号的机制需要满足如下条件:l  ...

2018-03-29 08:06:34

阅读数:65

评论数:0

微服务分布式锁解析

学过Java多线程的应该都知道什么是锁,没学过的也不用担心,Java中的锁可以简单的理解为多线程情况下访问临界资源的一种线程同步机制。在学习或者使用Java的过程中进程会遇到各种各样的锁的概念:公平锁、非公平锁、自旋锁、可重入锁、偏向锁、轻量级锁、重量级锁、读写锁、互斥锁等。一、为什么要使用分布式...

2018-03-27 15:21:20

阅读数:164

评论数:0

十个不错的 Linux 网络监视工具

保持对我们的网络的管理,防止任何程序过度使用网络、导致整个系统操作变慢,对管理员来说是至关重要的。有几个网络监视工具可以用于不同的操作系统。在这篇文章中,我们将讨论从 Linux 终端中运行的 10 个网络监视工具。它对不使用 GUI 而希望通过 SSH 来保持对网络管理的用户来说是非常理想的。i...

2018-03-22 22:04:48

阅读数:13

评论数:0

AES底层原理实现

上一次为大家介绍了AES算法的基本概念,我们是有追求的程序员,不能知其然不知其所以然。这一次,我来了解一下AES算法的底层原理。小明:老师,上一次你介绍了AES算法的基本概念,这一次可不可以讲讲AES的底层加密解密原理?老师:没问题,让我们先来回顾一下AES算法整体的关系图。上一篇我们已经对AES...

2018-03-19 22:50:25

阅读数:60

评论数:0

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