自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

牧_风的博客

开心快乐码代码!

原创 知识点总结(目录)

找工作知识点一、JAVA基本知识点 1、String、StringBuffer、StringBuilder的区别: http://blog.csdn.net/hbtj_1216/article/details/70305992 JAVA集合 java集合: http://www...

2017-07-15 14:52:55 1450 0

原创 9-ACK消费者消息确认机制

待办

2020-05-17 22:14:10 22 0

原创 8-Confirm发送者消息确认机制

待办

2020-05-17 16:28:12 25 0

原创 7-主题模式(Topics)

待办

2020-05-14 20:39:29 22 0

原创 6-路由模式(Routing)

待办

2020-05-13 20:06:51 30 0

原创 5-发布订阅模式(Publish、Subscribe)

待办

2020-05-13 17:24:43 37 0

原创 4-工作队列模式(Work Queues)

待办

2020-05-12 16:20:30 60 0

原创 3-简单队列模式(Simple Queue)

待办

2020-05-05 18:24:43 54 0

原创 2-rabbitmq概念

基本概念 Connection:代表一个socket连接。 Channel:信道是多路复用连接中的一条独立的双向数据流通道,消息发布接受订阅都依靠信道完成。 Producer:生产者,发送消息。 Consumer:消费者,接收消息。 Queue:队列,缓存生产者产生的消息并传递给消费者,只有一个...

2020-05-05 18:17:23 38 0

原创 1-安装rabbitmq

参考官方文档 rabbitmq版本:3.8.3 1、拉取镜像 以rabbitmq 3.8.3为例,镜像分为两种: rabbitmq:3.8.3不带控制台 rabbitmq:3.8.3-management带控制台,登录地址http://localhost:15672,默认登录用户为guest,...

2020-05-05 18:16:25 38 0

原创 RabbitMQ学习笔记——目录

目录 1-安装rabbitmq 2-rabbitmq概念

2020-05-05 18:14:53 55 0

原创 docker网络配置

参考官方文档 docker版本:v19.03 docker的网络驱动 docker通过驱动实现了可插拔的网络子系统。 安装Docker时,它会自动创建三个内置的网络驱动: bridge:默认使用的网络驱动。此模式会为每一个容器分配IP等,并将容器连接到一个docker0的虚拟网桥。 host:...

2020-04-09 19:27:15 52 0

原创 docker快速搭建centos7

1、首先拉取centos:7镜像: docker pull centos:7 2、然后创建并运行容器 如果希望在创建的centos容器中使用systemctl命令,在创建容器的时候需要加上两个东西: 使用--privileged参数 /usr/sbin/init作为容器的启动命令 创建并运行...

2020-03-31 19:10:45 63 0

原创 docker快速搭建redis容器

通过docker命令快速搭建redis容器 首先下载redis镜像,使用5.0.7版本: docker pull redis:5.0.7 通过docker image inspect redis:5.0.7可以看到容器的数据是存在/data里面的。 我们在宿主机器创建保存数据的目录以及redis...

2020-03-08 17:09:52 84 0

原创 docker快速搭建postgresql容器

使用docker命令快速搭建postgresql 首先下载postgresql镜像,本文选择的是pg 12: > docker pull postgres:12 首先在宿主机器上面创建一个文件夹,用来保存数据: /home/docker/postgresql/data 执行以下命令创建并...

2020-03-08 16:20:33 109 0

原创 Dockerfile学习笔记整理

docker build 命令 通过docker build命令来构建一个Docker镜像。docker build会读取Dockerfile文件并将context一起构建成一个镜像。 context可以是PATH或者URL。PATH是本地文件系统中的一个目录,URL是远程git仓库地址。 con...

2020-03-04 20:28:31 50 0

原创 【Java设计模式13】——命令模式

命令模式是一种行为模式,通过将动作封装成对象实现命令请求者和命令接收者之间的解耦。调用者只需要简单的下达命令,然后等待命令完成即可,对执行者如何处理命令完全不关心。 命令模式中的角色: Command(命令接口):为所有命令声明一个公共接口,定义一个execute()方法。 ConcreteC...

2020-02-16 20:14:41 182 0

原创 Servlet中的8大监听器

1 概述 Listener用于监听servlet中的事件,例如context、request、session对象的创建、修改、删除,并处罚响应事件。 Listener是观察者模式的实现,在servlet中主要用于对context、request、session对象的生命周期进行监控。在servl...

2020-02-16 19:05:57 1498 0

原创 使用Feign调用服务接口

Feign是一个声明式的REST客户端。Feign具有可插拔的注解特性,支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。 引入依赖 使用Feign,需要引入spring-cloud-starter-openfeign依赖,同时为了配合 ...

2020-02-10 14:33:47 325 0

原创 Raft协议

算法论文:https://web.stanford.edu/~ouster/cgi-bin/papers/raft-atc14 Raft是工程上使用较为广泛的 最终一致性、去中心化、高可用 的分布式协议。 Raft是一个 共识算法。 Raft增强了可理解性,但是在性能、可靠性、可用性方面不输于P...

2020-02-09 21:21:35 143 0

原创 Spring Cloud Consul 实现服务注册/发现

前置条件:首先根据 搭建Consul集群 搭建好Consul集群。 下面使用Spring Cloud Consul 实现服务注册/发现。 Spring Cloud 版本:Greenwich.SR5 ‘Spring Boot’ 版本:2.2.4.RELEASE Consul 版本:1.6.3 ...

2020-02-07 23:17:07 160 0

原创 搭建Consul集群

下载安装包 wget https://releases.hashicorp.com/consul/1.6.3/consul_1.6.3_linux_amd64.zip 解压 unzip consul_1.6.3_linux_amd64.zip

2020-02-07 14:30:01 134 0

原创 CentOS 7通过yum安装Docker和docker-compose

参考: http://www.imooc.com/article/16448 需要linux内核版本在3.10以上,可以通过uname -r查看。 1、切换为root用户 2、卸载旧版本(如果安装过旧版本的话) $ yum remove docker \ docker-common ...

2020-02-03 18:16:26 71 0

原创 Docker知识点导航

待完成…

2020-02-03 18:05:30 36 0

原创 初识Consul

参考:http://blog.didispace.com/consul-service-discovery-exp/ 1 Consul是什么 Consul是基于GO语言开发的开源工具,主要面向分布式、服务化的系统提供服务注册、服务发现和配置管理的功能。 Consul的功能都很实用,其中包括: ...

2020-02-02 20:44:28 70 0

原创 Spring Cloud 知识点导航

导航:

2020-02-02 17:17:57 64 0

原创 垃圾收集算法(理论)

分代收集理论 一般至少会把Java堆划分为 新生代(Young Generation) 和 老年代(Old Generation) 两个区域。 在新生代中,每次垃圾收集时都发现有大批对象死去,而每次回收后存活的少量对象,将会逐步晋升到老年代中存放。 在新生代用复制算法,在老年代用标记-清理或标记-...

2020-02-02 16:16:41 50 0

原创 强引用、软引用、弱引用、虚引用

参考:深入理解Java虚拟机:JVM高级特性与最佳实践(第3版) 周志明 著 在JDK 1.2版之后,Java对引用的概念进行了扩充,将引用分为4种(引用强度依次减弱): 强引用(Strongly Re-ference) 软引用(Soft Reference) 弱引用(Weak Referen...

2020-02-02 00:40:33 23 0

原创 引用不可达的对象什么时候才会被真正回收?

参考:深入理解Java虚拟机:JVM高级特性与最佳实践(第3版) 周志明 著 在可达性分析算法中判定为不可达的对象,也不是“非死不可”的,要真正宣告一个对象死亡,至少要 经历两次标记过程。 第一次标记 如果对象在进行可达性分析后发现没有与GC Roots相连接的引用链,那它将会被第一次标记。 第...

2020-02-02 00:29:16 56 0

原创 JVM如何判断Java对象是否存活,是否要被GC回收?

GC在对堆内存进行垃圾清理之前,需要判断哪些Java对象不再被使用,需要被回收。通常有两种算法:引用计数算法、可达性分析算法。 引用计数算法(已被淘汰) 引用计数算法:在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可...

2020-02-02 00:11:23 44 0

原创 【Kafka学习笔记3】Kafka的基本概念

来源: 1、《Apache Kafka实战》胡夕 著 2、Kafka官方文档 1、kafka是什么 kafka既是消息引擎,也是一个分布式流式处理平台。 kafka的处理流程概括起来如下图: kafka是一个集群 依托zookeeper进行服务的协调管理 kafka能够接收生产者发布的消息到...

2020-01-29 21:36:57 72 0

原创 【Kafka学习笔记2】Kafka2.4.0搭建分布式集群

Kafka版本:2.4.0 现在来搭建有3个节点实例的Kafka集群。 1、准备三份配置文件 首先复制2份conf/server.properties文件: > cd /opt/kafka_2.12-2.4.0/ > cp config/server.properties confi...

2020-01-28 21:09:44 402 0

原创 【Kafka学习笔记1】CentOS7安装Kafka2.4.0以及快速入门

kafka版本:2.4.0 操作系统:CentOS 7.8 1、下载软件包 > wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.4.0/kafka_2.12-2.4.0.tgz 2、解压 > tar -zxvf kaf...

2020-01-28 16:17:12 489 0

原创 CentOS 7安装jdk1.8

1、下载jdk jdk-8u202-linux-x64.tar.gz 2、解压 tar -zxvf jdk-8u202-linux-x64.tar.gz 3、复制到想要安装的目标位置 mv jdk1.8.0_202/ /opt/jdk1.8.0_202 4、添加环境变量 vim /etc/...

2020-01-27 16:05:17 107 0

原创 【SpringBoot笔记17】使用JMS操作ActiveMQ

ActiveMQ版本:5.15.11 1 JMS原始API操作ActiveMQ 1.1 queue点对点模式 ActiveMqConfig.java: package com.tao.springbootdemo.mq.activemq; import org.apache.activemq....

2020-01-20 14:59:23 56 0

原创 tcpdump抓包命令和wireshark过滤条件

1、抓包 tcpdump -i any -s 0 -w asd.cap tcp 这个是http的(不指定端口) tcpdump -i any -s 0 -w asd.cap tcp port 6041 这个是http的(指定端口) 2、wiresha...

2020-01-14 15:54:30 40 0

原创 【SpringBoot笔记16】使用JdbcTemplate和NamedParameterJdbcTemplate操作数据库

参考:官方教程 #1 JdbcTemplate基本用法 1.1 查询 查询记录条数 String sql = "select count(*) from tb_user"; int count = jdbcTemplate.queryForObject(sql, In...

2019-09-04 09:42:25 581 0

原创 InheritableThreadLocal传递父线程的线程本地变量给子线程

1 概念 在Java多线程编程中,通过ThreadLocal实现了线程本地变量机制,通过空间换时间达到了线程隔离的目的。 但是,现在有这样一个需求:父线程中的线程本地变量需要传递给子线程使用。 针对这种情况,通过ThreadLocal是无法完成的,因为ThreadLocal中保存的是线程的本地变量...

2019-09-03 09:56:48 416 0

原创 深入理解ThreadLocal

1 定义 ThreadLocal是存储线程局部变量的容器。 它为每一个使用该变量的线程都提供了一个变量值的副本,是Java中一种较为特殊的线程绑定机制。 每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本发生冲突。 2 原理分析 在Java中,Thread类代表线程。 查看Thread源...

2019-09-02 17:03:56 43 0

原创 【Java设计模式06】—— 装饰者模式

1 定义 装饰者模式:装饰者模式是以对客户端透明的方式动态地将责任附加到对象上,已达到扩展对象功能的目的。 如果要扩展对象的功能,装饰者模式提供了比继承更有弹性的替代方案。 装饰者模式的职责: 动态地为一个对象增加新的功能。 装饰者模式是一种用于代替继承的技术,无须通过继承增加子类就能扩展对...

2019-08-29 21:43:23 50 0

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