自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 资源 (1)
  • 收藏
  • 关注

转载 如何保障消息中间件100%消息投递成功

参考文章

2019-05-06 09:40:38 366

原创 CentOS7 安装RocketMQ

服务启动:https://blog.csdn.net/wh211212/article/details/77932591可视化管理界面:https://blog.csdn.net/weixin_34260991/article/details/87446681

2019-03-29 16:10:26 352

转载 Spring中@Async用法总结

引言: 在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的;但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在Spring 3.x之后,就已经内置了@Async来完美解决这个问题,本文将完成介绍@Async的用法。1. 何为异步调用?在解释异步调用之前,我们先来看同步调用的定义;同步就是整个处理过程顺序执行,...

2019-03-11 15:06:00 259

原创 Docker build 异常

Jan 02, 2019 7:53:16 PM com.spotify.docker.client.shaded.org.apache.http.impl.execchain.RetryExec executeINFO: I/O exception (java.io.IOException) caught when processing request to {}->unix://loc...

2019-01-02 20:21:35 4711

原创 docker私有仓库搭建与使用

  安装docker run --name docker-registry -d -p 5000:5000 registry支持http协议推送正常情况下,应用服务器推送镜像到仓库用的是https,此处我们通过命令行来测试推送用的是普通的http,所以需要修改docker的启动参数,使之允许以http协议工作{"registry-mirrors": ["https://...

2019-01-01 02:23:08 470

转载 JAVA注解

注解的好处:1.能够读懂别人写的代码,特别是框架相关的代码。2.本来可能需要很多配置文件,需要很多逻辑才能实现的内容,就可以使用一个或者多个注解来替代,这样就使得编程更加简洁,代码更加清晰。3.(重点)刮目相看。(但是怎么样才能让别人刮目相看呢?会用注解不是目的,最重要的是要使用自定义注解来解决问题。)举个栗子:如果面试的时候,你跟老板说你会使用注解,老板觉得你这个人还行;但是如...

2018-12-15 17:16:55 199

转载 Thread

一.线程的状态在正式学习Thread类中的具体方法之前,我们先来了解一下线程有哪些状态,这个将会有助于后面对Thread类中的方法的理解。线程从创建到最终的消亡,要经历若干个状态。一般来说,线程包括以下这几个状态:创建(new)、就绪(runnable)、运行(running)、阻塞(blocked)、time waiting、waiting、消亡(dead)。当需要新起一个线程来执行...

2018-12-15 17:07:21 275

转载 ThreadLocal

参考:http://www.iteye.com/topic/103804http://www.iteye.com/topic/777716源码分析  为了解释ThreadLocal类的工作原理,必须同时介绍与其工作甚密的其他几个类ThreadLocalMap(内部类) Thread  首先,在Thread类中有一行: /* ThreadLocal values...

2018-12-15 16:01:53 198

转载 详解ThreadLocal为何存在内存泄漏

ThreadLocal是Java中用于保证线程安全的一种措施,通过给每个线程分配一个专属的值存储空间,保证线程各自维护自己的变量,从而不会发生并发访问问题。但是ThreadLocal是存在着内存泄漏风险的,如果使用不当,容易发生memory leak错误。首先解释什么是内存泄漏。内存泄漏memory leak :是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏似乎不会有大的...

2018-12-15 14:59:06 771

转载 简述 Docker

简述 DockerDocker 是 Golang 编写的, 自 2013 年推出以来,受到越来越多的开发者的关注。如果你关注最新的技术发展,那么你一定听说过 Docker。不管是云服务还是微服务(Microservices),越来越多的厂商都开始基于 Docker 作为基础设施自动化的工具。那么什么是 Docker?Docker与传统的虚拟机有什么区别?为何要采用 Docker?如何使用 Do...

2018-12-15 10:48:52 232

原创 SpringBoot-访问页面

1.首先在pom文件中引入模板引擎jar包,即:<dependency>   <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>2.在a...

2018-12-06 15:35:09 193

转载 Curator深入使用

阅读目录开始 1.Apache Curator简介 2.Apache Curator Recipes 3.Apache Curator Framework 4.Apache Curator Utilities 5.Apache Curator Client 回到顶部1.Apache Curator简介    Curator提供了一套Java类库,可以更容易的使用Zo...

2018-12-03 15:11:53 330

转载 Zookeeper

一、            zookeeper是什么官方说辞:Zookeeper 分布式服务框架是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。好抽象,我们改变一下方式,先看看它都提供了哪些功能,然后再看看使用它的这些功能能做点什么。 二、            ...

2018-11-29 15:52:02 144

原创 Docker部署Tomcat及Web应用

https://blog.csdn.net/qq_32351227/article/details/78673591https://blog.csdn.net/leafage_m/article/details/72082011

2018-11-22 16:46:05 192

转载 Docker安装tomcat、redis、mysql 8.0

一、CentOS7安装Docker1、检查内核版本,必须是3.10及以上[root@iz2zeizzt8ihoeoyopzzyhz ~]# uname -r3.10.0-514.26.2.el7.x86_642、使用 yum install docker进行安装[root@iz2zeizzt8ihoeoyopzzyhz ~]#yum install docker下载确...

2018-11-22 16:36:49 644

转载 Spring事务传播行为详解

前言Spring在TransactionDefinition接口中规定了7种类型的事务传播行为。事务传播行为是Spring框架独有的事务增强特性,他不属于的事务实际提供方数据库行为。这是Spring为我们提供的强大的工具箱,使用事务传播行可以为我们的开发工作提供许多便利。但是人们对他的误解也颇多,你一定也听过“service方法事务最好不要嵌套”的传言。要想正确的使用工具首先需要了解工具。本文...

2018-11-21 16:18:35 155

转载 RPC

转载:深入浅出 RPC - 浅出篇转载:RPC框架与Dubbo完整使用转载:深入浅出 RPC - 深入篇转载:远程调用服务(RPC)和消息队列(Message Queue)对比及其适用/不适用场合分析一、RPC1. RPC是什么RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解...

2018-11-16 10:21:50 511

转载 在 Shell 脚本中调用另一个 Shell 脚本的三种方式

先来说一下主要以下有几种方式:fork: 如果脚本有执行权限的话,path/to/foo.sh。如果没有,sh path/to/foo.sh。exec: exec path/to/foo.shsource: source path/to/foo.shforkfork 是最普通的, 就是直接在脚本里面用 path/to/foo.sh 来调用 foo.sh 这个脚本,比如如果是 foo...

2018-11-07 10:27:51 1188

转载 RabbitMQ系列-实现RPC异步调用

使用Spring AMQP实现RPC异步调用示列服务器端应用启动类代码,import org.springframework.context.annotation.AnnotationConfigApplicationContext;import org.springframework.context.annotation.ComponentScan;import java...

2018-10-12 17:52:48 2430

原创 RabbitMQ系列-异常处理

1.当AcknowledgeMode=AUTO时 @Bean(value = "myRabbitListenerContainer") public SimpleMessageListenerContainer simpleMessageListenerContainer(ConnectionFactory connectionFactory) { SimpleMes...

2018-10-12 11:38:20 3266

原创 RabbitMQ系列-公平分发

 RabbitMQ 均衡调度(公平分发机制)均衡调度是针对Consumer来说的。现在有两个Consumer请求同一个队列的消息。RabbitMQ会将序号为奇数的消息发给第一个Consumer,会将序号为偶数的消息发送给第二个Consumer。如果第一个Consumer处理消息的时间需要很久,而第二个Consumer很快就处理完已经收到的消息,这样看来,第一个Consumer很忙,第二个C...

2018-10-12 11:12:22 322

原创 RabbitMQ系列-Queue参数

参数解释Message TTL(x-message-ttl):设置队列中的所有消息的生存周期(统一为整个队列的所有消息设置生命周期), 也可以在发布消息的时候单独为某个消息指定剩余生存时间,单位毫秒, 类似于redis中的ttl,生存时间到了,消息会被从队里中删除,注意是消息被删除,而不是队列被删除, 特性Features=TTL, 单独为某条消息设置过期时间AMQP.BasicPrope...

2018-10-12 10:39:26 1251

原创 RabbitMQ系列-消息消费

消费消息的两种方式:1.SimpleMessageListenerContainer @Bean(value = "myRabbitListenerContainer") public SimpleMessageListenerContainer simpleMessageListenerContainer(ConnectionFactory connectionFactory)...

2018-10-12 10:24:10 833

原创 RabbitMQ系列-延迟队列

什么是延迟队列延迟队列存储的对象肯定是对应的延迟消息,所谓”延迟消息”是指当消息被发送以后,并不想让消费者立即拿到消息,而是等待指定时间后,消费者才拿到这个消息进行消费。场景一:在订单系统中,一个用户下单之后通常有30分钟的时间进行支付,如果30分钟之内没有支付成功,那么这个订单将进行一场处理。这是就可以使用延迟队列将订单信息发送到延迟队列。场景二:用户希望通过手机远程遥控家里的智能设...

2018-10-12 10:18:14 283

转载 RabbitMQ系列-MessageListener

Spring AMQP 源码分析 04 - MessageListener## 测试代码gordon.study.rabbitmq.springamqp.AsyncConsumer.java ### 分析## MessageListenerorg.springframework.amqp.core.MessageListener 是 Spring AMQP 异步消息投递...

2018-10-11 17:41:11 7063

原创 RabbitMQ系列-持久化

消息的可靠性是RabbitMQ的一大特色,那么RabbitMQ是如何保证消息可靠性的呢——消息持久化。 为了保证RabbitMQ在退出或者crash等异常情况下数据没有丢失,需要将queue,exchange和Message都持久化。queue的持久化如过将queue的持久化标识durable设置为true,则代表是一个持久的队列,那么在服务重启之后,也会存在,因为服务会把持久化的que...

2018-10-10 16:16:33 955

原创 RabbitMQ系列--异常:com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'rabbitMQSender': Unsatisfied dependency expressed through field 'admin'; nested exception is org.sprin...

2018-10-10 16:05:16 18107 2

原创 RabbitMQ系列-SpringBoot创建三种类型交换机

@Configuration@PropertySource(value = "classpath:application.properties")public class RabbitMqConfig { @Value("${rabbitmq.host}") private String host; @Value("${rabbitmq.port}") p...

2018-09-30 11:02:09 2031

转载 JDK1.8 中文开发帮助文档

JDK1.8 中文开发帮助文档转载的目的,在于方便浏览与查看;但是该文章目前还没有找到原文的出处,找到了马上附加上!!! 英文版:Oracle 官网在线 JDK1.9 文档:https://docs.oracle.com/javase/9/docs/api/Oracle 官网在线 JDK1.8 文档:https://docs.oracle.com/javase/8/do...

2018-09-27 19:36:54 16107 1

原创 Java8 -- Fork/Join

  Fork/Join框架是Java 7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。Fork/Join框架要完成两件事情:  1.任务分割:首先Fork/Join框架需要把大的任务分割成足够小的子任务,如果子任务比较大的话还要对子任务进行继续分割  2.执行任务并合并结果:分割的子任务分别放到双端队列里,然后几个启动线程...

2018-09-27 19:10:35 369

原创 Java8 -- Optional

Optional       Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。Optional 类的引入很好的解决空指针异常。 创建 /** * 创建Optional对象 * empty : 创建一个空的Optional对象 * of : 不能为空 *...

2018-09-27 16:13:04 185

原创 Java8 -- List转Map

实体类public class User { private Integer id; private String username; private Integer age;}1.Guava方法/** * uniqueIndex(唯一索引): 通过指定key值创建Map * * 但是该方法存在两个问题: *...

2018-09-25 14:35:56 595

原创 Java8 -- Collectors

Collectors API1.toList()public List&lt;User&gt; toList(List&lt;User&gt; users) { return users.stream().filter(c -&gt; c.getAge() &gt; 25L).collect(Collectors.toList()); }2.toSet()...

2018-09-21 17:54:38 438

原创 乐观锁和悲观锁的区别

悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不...

2018-09-14 16:56:54 132

原创 修改Ubuntu的apt-get源

1、复制原文件备份sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak2、编辑源列表文件sudo vim /etc/apt/sources.list3、将原来的列表删除,添加如下内容deb http://mirrors.163.com/ubuntu/ precise main universe restricted ...

2018-09-13 20:17:40 202

原创 解决虚拟机没ip的问题

虚拟机没ip和连不上网的解决办法https://blog.csdn.net/ylmf_yyz/article/details/46646449https://blog.csdn.net/menlinshuangxi/article/details/7968955https://jingyan.baidu.com/article/ad310e8014d12d1848f49e6f.html...

2018-09-13 17:49:56 1062

原创 Ubuntu下配置DNS

方法一: 通过/etc/network/interfaces,在它的最后增加一句(多个dns之间用空格分隔):auto eth0iface eth0 inet static address 192.168.201.100 netmask 255.255.255.0 gateway 192.168.201.254 dns-nameservers 114.114...

2018-09-13 17:44:41 2501

原创 IDEA 快捷键

idea 快捷键快捷键 操作 shift+F6 修改类名(鼠标右键 refactor-&gt;rename) Ctrl + J 快速打开代码模板 Ctrl + R 在当前文件进行文本替换 Ctrl + Y  删除光标所在行 或 删除选中的行 Ctrl + W 递进式选择代码块。可选中光标所在的单词或段落,连续按会在原有选中的基础上再扩展选...

2018-09-05 15:03:29 199

原创 NIO与传统I/O之间I/O的区别

要想讲清楚nio的原理和它的优点得先清楚Java应用程序的文件读写原理和虚拟内存的原理。Java文件读取原理可参见如下图:当应用程序需要读取文件的时候,内核首先通过DMA技术将文件内容从磁盘读入内核中的buffer,然后Java应用进程再从内核的buffer将数据读取到应用程序的buffer。为了提升I/O效率和处理能力,操作系统采用虚拟内存的机制。虚拟内存也就是我们常说的交换内存,它...

2018-09-04 12:30:39 466

原创 网络编程---I/O模型

一、同步、异步、阻塞、非阻塞常见的分类有以下: 同步阻塞IO 同步非阻塞IO 异步非阻塞IO 阻塞:是否阻塞主要体现在调用的线程是否可以干别的,关注的是程序的等待状态同步:是否同步体现在消息通信机制上 。也就是说同步和异步说的是消息的通知机制,阻塞非阻塞说的是线程的状态 。如果说以上的定义依然无法判别,我们可以从输入操作的两个阶段来看:一般来说,一...

2018-09-01 23:21:27 354 2

https权威指南

https权威指南 在服务器和WEB应用上部署SSL TLS和PKL 高清 电子书 下载 pdf [(英)LVAN RISTIC著;杨洋,李振宇,蒋锷,周辉,陈传文译][人民邮电出版社][2016.09][418页]sample.pdf

2018-05-12

空空如也

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

TA关注的人

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