自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 【kafka】深入理解kafka第一章-初识kafka

1、kafka分布式流式处理平台,以高吞吐、可持久化、可水平扩展、支持流数据处理等而被广发使用 2、kafka三大角色 消息系统:系统解耦、冗余存储、流量削峰、缓冲、异步通信、扩展性(增加分区达到水平扩展)、可恢复性、消息顺序保障(分区消息顺序性)、回溯消费 存储系统:消息持久化、多副本机制...

2020-01-12 10:51:25 109 0

原创 【攻克RabbitMQ】常见问题

消息什么情况下会丢失?配合mandatory参数或备份交换器来提高程序的健壮性 发送消息的交换器并没有绑定任何队列,消息将会丢失 交换器绑定了某个队列,但是发送消息时的路由键无法与现存的队列匹配 预估队列的使用情况? 在后期运行过程中超过预定的阈值,可以根据实际情况对当前集群进行扩容或者...

2018-08-22 09:47:46 3113 2

原创 【JVM】基于BTrace的监控调试

BTrace简介 BTrace可以动态地向目标应用程序的字节码注入追踪代码 JavaComplierApi、JVMTI、Agent、Instrumentation+ASM BTrace安装入门 本机安装 新建环境变量BTRACE_HOME 添加Path:%BTRACE_HOM...

2018-08-18 15:41:46 576 1

原创 【JVM】JVisualVM可视化监控

各版本插件中心: https://visualvm.github.io/pluginscenters.html 根据自己JDK的版本选择合适的插件中心 安装常用插件: 工具——插件 本人安装了两个常用插件 监控本地Tomcat 监控远程Tomcat 添加远程主机 ...

2018-08-18 14:40:54 276 1

原创 【JVM】Jconsole、Jvisualvm检测死锁

查看java进程 jps -l 打开Jconsole工具,连接指定的Java进程 点击如下死锁

2018-08-18 11:11:42 338 1

原创 【JVM】Jstack实战死循环与死锁

死锁检测 # 查看Java PID(进程号) [root@localhost ~]# jps -l # 控制台输出线程的dump信息 [root@localhost tomcat]# jstack PID [root@localhost tomcat]# jstack Usage: ...

2018-08-18 10:53:07 1118 1

原创 【JVM】Jmap+MAT实战内存溢出

导出内存映像文件 #第一种:内存溢出自动导出 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./ #第二种:使用jmap命令手动导出 [root@localhost ~]# jmap -dump:format=b,file=heap.hpr...

2018-08-18 08:30:48 639 1

原创 【JVM】基于JDK命令行监控

JVM参数类型 标准参数 # 此类参数相对比较稳定 -help -server -client #指定JVM的类型 -version #就是查看当前机器的java是什么版本,是什么类型的JVM(Server/Client),采用的是什么执行模式。 -showversion #运行一个...

2018-08-16 20:24:34 298 0

原创 【SpringCloud NetFlix】网关Zuul(四)功能进阶

数字越小,优先级越高 自定义过滤器 shouldFilter方法 优先级 自定义ZuulFilter: public class MyFilter extends ZuulFilter { //判断要不要继续执行;ture为总是要执行 public boole...

2018-08-15 17:47:29 230 1

原创 【SpringCloud NetFlix】Hystrix监控

Hystrix监控 调用方引入依赖,监控客户端 <dependency> <groupId>org.springframework.boot&am...

2018-08-14 15:32:37 215 0

原创 【并发编程】8种单例模式

单例模式 1、饿汉式(静态常量)-可用 public class Singleton { private final static Singleton INSTANCE = new Singleton(); private Singleton(){} pu...

2018-08-12 15:02:46 242 2

原创 【Java并发编程的艺术】Java并发机制的底层的实现原理

    首先Java并发的实现依赖于JVM的实现和CPU的指令   【volatile】 定义:   Java线程内存模型确保所有线程看到的这个变量的值是一致性的。   特点:   保证变量修改在线程间可见   如何保证共享变量修改线程范围内可见性的? 大多数都存在的情况下...

2018-06-17 11:51:07 159 3

原创 【Spring Security】基本原理(一)

介绍 SpringSecurity核心功能:认证(身份校验,你是谁),授权(你能干什么),攻击防护(防止伪造身份) 原理 REST API:相当于应用的controller,用户的增删该查的一些服务 Spring Security过滤器链:这个是最核心的部分,相当于一组Filter...

2018-04-29 11:23:40 2687 23

原创 【设计之美】-重识封装、继承、多态、抽象

2020-05-31 20:33:46 23 0

原创 【踩坑】springboot项目集成redis和elasticsearch,解决启动冲突问题

启动类添加如下配置(已解决问题): System.setProperty("es.set.netty.runtime.available.processors","false"); 效果如下: 参考文档如下(文档中有两种方案,本人用第一种已解决)...

2020-03-31 23:05:44 119 0

原创 【MongoDB】MongoDB-Change Streams

前言 Change Stream是从mongodb3.6版本开始支持的一种新特性,是mongodb向应用发布数据变更的一种方式,即数据库中有任何数据变化,应用端都可以得到通知,类似于触发器的概念 方案思路 MongoClient去订阅mongodb数据库中某张表最新事件变化,类似于以事件驱动...

2020-02-29 21:31:18 71 0

原创 【SpringBoot】集成swagger

1、引入依赖 <!--swagger--> <dependency> <groupId>io.springfox</groupId> <artifact...

2018-10-29 21:55:19 285 2

原创 很不入流的总结

进入这一行差不多四年多了,这一路走来,有些事情不得不承认还是做得不够成熟。 为什么阳光总是照耀在别人身上。我总是被遗忘的角落,这个世界太不公。 你有这样的想法和感受吗? 其实那是因为你自己躲开了阳光,自己躲在了角落。 我以前也是这样...

2018-08-23 20:52:19 365 9

原创 【攻克RabbitMQ】多租户与权限的相关命令

多租户与权限 #建立vhost,大括号里的参数表示 vhost 的名称。 rabbitmqctl add vhost {vhost} #罗列当前vhost的相关信息,name标识vhost名称;tracing是否使用了RabbitMQ的trace功能 rabbitmqctl list vhost...

2018-08-22 09:49:55 310 2

原创 【攻克RabbitMQ】基础

​ 消息传递模式:点对点 (P2P, Point-to-Point) 模式和发布/订阅 (Pub/Sub) 模式 作用 ​ 解耦、冗余、扩展性、削峰、可恢复性、顺序保证、缓冲、异步通信 具体特点 ​ 可靠性、灵活的路由、扩展性、高可用性、多种协议、多语言客户端 消息队列的运转...

2018-08-22 09:39:28 161 1

原创 【攻克Redis】键值管理

键重命名 #重命名 #注意:如果newkey本身存在,这种重命名会覆盖存在的key rename key newkey #确保只有newkey不存在时候才被覆盖 renamenx key newkey 注意: 于重命名键期间会执行del命令删除旧的键,如果键对应的值比较大,会存在阻塞R...

2018-08-20 15:53:09 235 2

原创 【攻克Redis】集合类型

集合 ​ 集合不允许有重复元素,并且结合中的元素是无序的,不能通过索引下标直接获取,Redis支持集合内的增删改查,支持多个集合取交集、并集、差集 命令 集合内操作 #添加元素,返回结果为添加成功的个数 sadd key element [element ...] #删除元...

2018-08-20 15:49:20 186 1

原创 【攻克Redis】列表类型

列表 ​ 列表(list)类型是用来存储多个有序的字符串,在Redis中,可以对列表两端插入(push)和弹出(pop),还可以获取指定范围的元素列表、获取指定索引下标的元素等,列表是一种比较灵活的数据结构,它可以充当栈和队列的角色。 ​ 列表元素是有序的,元素是可以重复的。 命...

2018-08-20 15:47:23 136 1

原创 【攻克Redis】哈希类型

哈希 ​ 哈希类型是指键值本身又是一个键值对结构;哈希类型中的映射关系叫作field-value,注意这里的value是指field对应 的值,不是键对应的值,请注意value在不同上下文的作用。 命令 #设置值 hset key field value #获取值,若不存在返回n...

2018-08-20 15:45:33 500 1

原创 【攻克Redis】字符串类型

字符串 常用命令 #设置值 #ex seconds:为键设置秒级过期时间。 #px milliseconds:为键设置毫秒级过期时间。 #nx:键必须不存在,才可以设置成功,用于添加。 #xx:与nx相反,键必须存在,才可以设置成功,用于更新 set key value [ex sec...

2018-08-20 15:44:00 94 1

原创 【攻克Redis】全局命令、单线程模型

​ Redis有5种数据结构,它们是键值对中的值。 预备 全局命令 #查看所有键,时间复杂读O(n),线上环境禁止使用 keys * #键总数,不会遍历所有键,直接获取redis内置的键总数变量 dbsize #检查键是否存在 exists key #删除键 del key [k...

2018-08-20 15:41:12 87 2

原创 【攻克Redis】Linux安装Redis(源码安装)

安装 #下载Redis指定版本的源码压缩包到当前目录。 $ wget http://download.redis.io/releases/redis-3.0.7.tar.gz #解压缩Redis源码压缩包。 $ tar xzf redis-3.0.7.tar.gz #建立一个redis目...

2018-08-20 15:38:38 242 2

原创 【攻克Redis】Redis基本知识

发展史 Redis是一种基于键值对的Nosql数据库,Redis值可以是string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)、Bitmaps(位图)、 HyperLogLog、GEO(地理信息定位)等多种数据结构和算法组成 Redis会将所有数据都存...

2018-08-20 15:37:04 157 2

原创 【JVM】JVM基础

程序计数器 PC Register:JVM支持多线程同时执行,每一个线程都有自己的PC Register,线程正在执行的方法叫做当前方法,如果是Java代码,PC Register里面存放的就是当前正在执行的指令的地址,如果是C代码,则为空。 虚拟机栈JVM Stacks:Java虚拟机栈是...

2018-08-18 17:57:35 84 0

原创 【SpringCloud NetFlix】网关Zuul(三)路由配置

简单路由 SimpleHostRoutingFilter 配置连接池: ​ zuul.host.maxTotalConnections:目标主机的最大连接数,默认值为200。配置该项,相当于调用了PoolingHttpClientConnectionManager的setMaxT...

2018-08-15 17:44:39 319 0

原创 【SpringCloud NetFlix】 网关Zuul(二)集群中使用Zuul

建立集群项目 Eureka服务器 服务提供者 服务调用者 网关 Eureka服务器 依赖 <dependencies> <dep...

2018-08-15 08:32:42 618 0

原创 【SpringCloud NetFlix】 网关Zuul(一)介绍与使用

介绍 ​ 是Netflix的一个子项目 ​ 提供代理、过滤、路由等功能 编写第一个Zuul程序 ​ 建立服务项目:简单写一个restfull请求 @SpringBootApplication @RestController public class SourceApp...

2018-08-15 08:30:03 116 0

原创 【SpringCloud NetFlix】 SpringCloud整合Hystrix(三)整合Feign

SpringCloud整合Hystrix(三)整合Feign Feign整合Hystrix 回退机制配置 引入依赖 <dependency> &a...

2018-08-14 11:49:56 710 0

原创 【SpringCloud NetFlix】SpringCloud整合Hystrix (二)请求合并与缓存

SpringCloud整合Hystrix (二)请求合并与缓存 引入依赖 <dependency> <groupId>org.springframework.cl...

2018-08-14 11:13:38 265 0

原创 【SpringCloud NetFlix】SpringCloud整合Hystrix(一)整合与配置

SpringCloud整合Hystrix 由于服务调用者有可能调用服务挂掉的提供者,服务调用方整合Hystrix 引入依赖 <dependency> &...

2018-08-14 10:15:29 285 0

原创 【SpringCloud NetFlix】Eureka集群搭建

Eureka集群搭建 ​ 为了突出Eureka的高可用性,对其进行集群部署 两个服务器实例、两个服务提供者实例 在本机的“C:\Windows\System32\drivers\etc”下的hosts文件中添加如下配置: 127.0.0.1 slave1 slave2 Eurek...

2018-08-14 09:35:17 133 0

原创 【SpringCloud Netflix】运行第一个Eureka程序

微服务发布与调用 认识Eureka框架 Eureka提供基于REST的服务,在集群中主要用于服务管理。Eureka提供了基于Java语言的客户端组件,客户端组件实现了负载均衡的功能,为业务组件的集群部署创造了条件。使用该框架,可以将业务组件注册到Eureka容器中,进行集群部署。Eureka ...

2018-08-14 08:14:11 136 0

原创 【并发编程】线程安全性

线程安全性 原子性 定义 提供了互斥访问,同一个时刻只能有一个线程来对它进行操作 引入 多线程情况下,进行count++操作。为了保证线程安全性,通常对该操作进行加锁,保证在count++的时候同步操作。Java提供了很多封装好的原子操作类。如可以替代刚刚提到加锁方式的Ato...

2018-08-05 19:21:14 101 0

原创 【并发编程】JAVA内存模型

JAVA内存模型 定义 JMM决定一个线程对共享变量的写入何时对另一个线程可见。抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存中,每个线程都有一个私有的本地内存。本地内存中存储了该线程以读/写共享变量的副本。本地内存是JMM的一个抽象概念,并不是真实...

2018-07-31 15:09:22 84 5

原创 【并发编程】CPU多级缓存与缓存一致性

CPU多级缓存与缓存一致性 定义 cpu缓存是位于CPU与内存之间的临时存储器,它的容量比内存小的多,但是交换速度却比内存要快得多 为什么需要CPU cache? cpu的频率太快了,快到主存跟不上,这样在处理器时钟周期内,cpu常常需要等待主存,浪费资源。cache的出现,是为了...

2018-07-29 20:55:34 1324 9

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