自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

中年闰土的博客

以铜为镜可以正衣冠,以人为镜可以明得失,以史为镜可以知兴衰!

  • 博客(192)
  • 资源 (60)
  • 论坛 (2)
  • 收藏
  • 关注

原创 开发进阶当前阶段-心得篇

学习微服务框架,不如学习演进式架构(Evolutionary Architecture)。学习新的编程语言,不如学习代码整洁之道、设计模式、领域驱动设计(DDD)。学习 LeSS 和规模化敏捷框架(SAFe),不如学习精益生产原则(Lean manufacturing principles)。学习 Hystrix,不如学习容错模式(Fault Tolerance Patterns)。...

2019-10-08 15:01:17 754

原创 我对JAVA的堆外内存与NIO零拷贝的理解

在JAVA中,JVM内存指的是堆内存。在机器内存中,不属于堆内存的部分即为堆外内存。堆外内存也被称为直接内存。当我们的java程序对操作系统所管理的磁盘文件等进行读写时候(IO操作),并不是直接与IO外设打交道读写jvm的内存,而是操作系统会首先把磁盘文件读取到他所管理的一块内存中,然后我们的程序再把这个内存中的数据拷贝到jvm所管理的内存中,很显然这就多了一道工序,为何要这么做呢?如...

2020-01-16 11:54:39 850 1

原创 细品Spring Bean的生命周期

spring bean的生命周期官方的流程图如下:接下来 我们用代码验证一下是否如图所愿:首先定义一个testBeanimport org.springframework.beans.BeansException;import org.springframework.beans.factory.BeanFactory;import org.springframework.be...

2019-12-13 09:52:02 743

原创 开发中常用的shell脚本&数据处理

watch.sh(生产环境日志异常监控shell脚本)#!/bin/bash#--------------------------------------------# 监听程序异常日志, 如果出现异常则发送通知# author:RUNTU# weixin: classmisschen#--------------------------------------------# ...

2019-09-20 11:21:50 1100

原创 EMQ X 生产环境鉴权配置详解(连接认证与访问控制)

EMQ的应用场景、下载、运行,官方文档都说的很细,本篇主要总结一下生产环境下,暴露于外网下的EMQ的访问鉴权配置。警告:建议版本是3.2.2,请不要使用3.1版本(bug:任何人可以直接通过DashBoard的18083端口调用rest api创建用户)EMQ X 消息服务器的鉴权主要有连接认证和访问控制俩部分组成,提供了的一系列相关的认证插件(Plugins)。 连接认证: EMQ...

2019-08-21 15:52:16 258854 2

转载 针对Mysql的CentOS系统参数主要调优

内核相关参数(/etc/sysctl.conf)# 以下参数可以直接放到sysctl.conf文件的末尾net.core.somaxconn = 65535net.core.netdev_max_backlog = 65535net.ipv4.tcp_max_syn_backlog = 65535# 加快TCP连接的回收:net.ipv4.tcp_fin_timeout = 1...

2019-05-28 14:59:35 274256

原创 可能这是关于BIO-NIO-AIO-Netty处理模型最好理解的文章了

无意中看到别人总结BIO-NIO-AIO-Netty的前世今生,也在往上翻阅了一些帖子,总感觉讲的太过于繁杂,往往一个简单的概念层层拓展,盖过了文章的主题,所以我想图文并茂的,层层递进,简单点、再简单点的讲出来。所以本文中不会出现代码。讲的不好的,或者错误的请指正!!BIO(Blocking Input/Output)处理步骤: 启动服务端,并循环监听客户端连接,每监听到一个请求,创建...

2019-05-01 10:21:05 274867 1

转载 阿里云外网映射配置(rinetd)

原帖地址:https://help.aliyun.com/document_detail/43850.html?spm=a2c4g.11186623.2.16.38b36ca62clfMn前提条件如果您需要从本地 PC 端访问 Redis 实例进行数据操作,可以通过在 ECS 上配置端口映射或者端口转发实现。但必须符合以下前提条件: 若 Redis 实例属于专有网络(VPC),ECS...

2019-03-21 17:05:23 280171 1

转载 常见的&必知必会的JAVA面试题清单-(长更)

面试题模块介绍内容包含了很多java方方面面,包含模块有:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 。如下图所示:适宜阅读人群...

2019-03-11 09:36:22 235784 2

原创 jetty启动logback阻塞控制台空白或者抛出I/O error occurred while parsing xml file

解决办法很简单,把logback.xml的dtd注释掉。Java程序在解析xml文件时,如果xml文件中指定了dtd,在默认会从指定的url下载dtd文件,但是很多情况下如果网络连接不上,或者防火墙原因,dtd文件无法下载下来导致程序报连接超时异常,解析xml失败。我的就是因为这个dtd文档地址被墙了,折腾我好久。。。xmlns,schema,dtd,我就不科普了...

2018-12-28 20:30:22 284314

原创 Spring Cloud微服务解决方案 ⑩:Spring Cloud Config

网上先搂一段简介:Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持。使用Config Server,您可以为所有环境中的应用程序管理其外部属性。它非常适合spring应用,也可以使用在其他语言的应用上。随着应用程序通过从开发到测试和生产的部署流程,您可以管理这些环境之间的配置,并确定应用程序具有迁移时需要运行的一切。服务器存储后端的默认实现使用git,因此它轻松...

2018-12-23 12:00:40 283670

原创 Spring Cloud微服务解决方案⑨:Sidecar异构

比如我当前项目需要调用一个php或者node的接口,怎么把这个服务整合到当前java的微服务中呢。源码下载路径在:https://download.csdn.net/download/qq_22075041/10869452,代码参考microservice-sidecar模块pom文件 <dependency> <groupId>org.s...

2018-12-22 19:30:49 234300

原创 Spring Cloud微服务解决方案⑧:Zuul(API网关)

简单的来说,我们把zuul这个项目启动起来,注册到eurake上,那么他就可以代理eurake上面的服务(默认),各种玩法听我细细道来。源码下载路径在:https://download.csdn.net/download/qq_22075041/10869452,代码参考microservice-gateway-zuul模块。首先加入zuul的依赖<dependency>...

2018-12-19 22:03:30 286365

原创 Spring Cloud微服务解决方案⑦:Turbine(断路器集群监控)

上一篇文章末尾我们已经实现了Hystrix Dashboard对单个服务实例的监控,在实际应用中,我们更需要的是一个集群系统的监控信息,这时我们就需要引入Turbine。Turbine能够汇集监控信息,并将聚合后的信息提供给Hystrix Dashboard来集中展示和监控。简单的说,就是Turbine是一个项目,把其他启用了Hystrix的项目信息配置进去启动起来,有一个访问地址还是复制上一篇文...

2018-12-18 21:34:53 233334

原创 Spring Cloud微服务解决方案⑥:Hystrix的使用

在一个分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,如何能够保证在一个依赖出问题的情况下,不会导致整体服务失败,这个就是Hystrix需要做的事情。Hystrix类库提供了熔断、隔离、Fallback、cache、监控等功能,能够在一个、或多个依赖同时出现问题时保证系统依然可用。demo下载地址:https://download.csdn.net/download/qq_...

2018-12-16 21:21:53 283612

原创 Spring Cloud微服务解决方案⑤:eurake的常用配置项以及eurake、feign、ribbon常见问题总结

 常见问题总结文档在这里:https://download.csdn.net/download/qq_22075041/10854420常用配置项官方文档链接:https://cloud.spring.io/spring-cloud-static/Finchley.SR2/single/spring-cloud.html#_appendix_compendium_of_configuratio...

2018-12-16 20:56:36 233851

原创 Spring Cloud微服务解决方案④:Feign的使用

Feign是一个声明web服务客户端,这便得编写web服务客户端更容易,使用Feign 创建一个接口并对它进行注解,它具有可插拔的注解支持包括Feign注解与JAX-RS注解,Feign还支持可插拔的编码器与解码器,Spring Cloud 增加了对 Spring MVC的注解,Spring Web 默认使用了HttpMessageConverters, Spring Cloud 集成 Ribbo...

2018-12-16 15:00:22 284304

原创 Spring Cloud微服务解决方案③:Ribbon的使用

先来一段介绍:Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。Spring Cloud Ribbon虽然只是一个工具类框架,它不像服务注册中心、配置中心、API网关那样需要独立部署,但是它几乎存在...

2018-12-14 21:59:57 285277

原创 Spring Cloud微服务解决方案 ②:注册服务到Eureka上

首先你的把上一篇文章中的Eureka服务启动起来,源码地址:https://download.csdn.net/download/qq_22075041/10851487本文对应microservice-consumer-movie和microservice-provider-user子模块,他俩为调用关系,作为Eureka客户端的话,配置一样,只是为后文做铺垫。以下是microservice...

2018-12-14 21:08:24 233692

原创 Spring Cloud微服务解决方案①:Eureka服务端的构建

Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,以实现SpringCloud的服务发现功能。包含两个组件:Eureka Server和Eureka Client。Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界...

2018-12-14 18:06:47 233321

原创 调用Spring所管理的bean的方法时候,为何不会出现线程安全问题?

首先jvm会在内存中开辟一块存储空间做为线程栈空间,每个线程都有自己的栈(后进先出)。调用方法时,会在栈中压入一个栈帧,用来存储这个方法的参数和局部变量;方法返回时 ,栈帧就会弹出,方法的参数和局部变量就会清除;方法调用时,调用栈不断处于涨落之中,如果调用的层级过深,调用栈可能会溢出Spring创建的bean默认是singleton的,线程调用某个bean时,是持有一个bean对象...

2018-11-08 10:39:28 238618

原创 Spring bean 通过实现 InitializingBean ,DisposableBean 接口实现初始化方法和销毁前操作

关于在spring  容器初始化 bean 和销毁前所做的操作定义方式有三种:第一种:通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作第二种:通过 在xml中定义init-method 和  destory-method方法第三种: 通过bean实现InitializingBean和 DisposableBean接口对于初始...

2018-11-08 10:20:44 233930

原创 nginx监控与性能调优

监控nginx有自带的监控模块,编译nginx的时候,加上参数 --with-http_stub_status_module#配置指令 ./configure --prefix=/usr/local --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module...

2018-11-01 16:49:24 286545

原创 Tomcat性能调优以及远程管理(Tomcat manager与psi-probe监控)

tomcat优化的我用到的几个点:1.内存优化2.线程优化 docs/config/http.html maxConnections acceptCount(配置的太大是没有意义的) maxThreads minSpareThreads 最小空闲的工作线程(不能设置的太小)4.配置优化 docs/config/host.html autoDepla...

2018-10-28 13:11:02 286295

原创 Tomcat远程DEBUG

在tomcat上做2个配置:1. tomcat bin下的start.sh,jpda是一种协议   exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"     在start 前面增加jpda 2.bin下的catlina.sh, 将下面的localhost修改为54321,代码段如下:if [ -z "$JPDA_ADDRESS" ]; t...

2018-10-28 12:52:20 283874 1

原创 你的Spring事务为什么不会自动回滚?

Spring的事务传播行为有七种,当前我说的是默认的那种。我们知道Spring的声明式事务是基于AOP的,那么就是AOP玩的又是代理对象,那你是不是就知道了,这个事务的大概实现原理了。。。首先我们要明确RuntimeException与Exception之间的关系与他们分别的含义:1.在Java中异常的基类为Throwable,他有两个子类Exception与Errors,同时Runt...

2018-10-24 22:48:22 286337 3

原创 jdk自带的JVisualVM的可视化监控

如果你前面看了我几篇关于jvm性能优化的文章,命令行操作是不是不直观,那么我们来使用这个JVisualVM吧,在jdk的bin文件夹里,这个官方文档都有中文版,插件啥的自己看着安装。https://visualvm.github.io/pluginscenters.html他主要有如下的功能:      1.监控本地Tomcat      2. 监控远程Tomcat      3....

2018-10-22 20:38:09 285668

转载 分布式自增ID算法snowflake (Java版)

概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移到Cassandra,因为Cassandra没...

2018-10-22 09:25:28 233323

原创 使用jstack(jstack是用于调试线程间的关系,解决阻塞,锁等问题)定位由死循环引起的cpu负载飙高或者死锁

在linux下:linux的top命令可以查看进程的pid,我们找到java程序的pid,然后执行 top -Hp pid 就可以查看到这个进程下线程的运行情况。 这样粗略可以看到哪些线程比较繁忙,这时候就用到jdk自带的小工具jstack(官方文档或者自行 百度)。我们执行jstack pid > abc.txt //意思是执行结果输出到这个文本。在这个文本中有很...

2018-10-21 14:13:54 232211

原创 使用jmap命令(用于输出对象,适用于解决对象内存溢出等问题)导出内存映象文件与堆内存异常分析 MAT

内存溢出自动导出参数://发生溢出时dump出来 -XX:+HeapDumpOnOutOfMemoryError//dump的路径 ./为项目启动根路径 -XX:HeapDumpPath=./内存溢出手动导出参数:jmap命令使用jdk安装后会自带一些小工具,jmap命令(Java Memory Map)是其中之一。主要用于打印指定Java进程(或核心文件、远程调试服务器)的共...

2018-10-21 13:34:27 283948

原创 使用jstat(监控整体的class情况、gc情况)监控JVM

jstat是用于监视虚拟机运行时状态信息的命令,它可以显示出虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。命令格式jstat [options] VMID [interval] [count]参数[options] : 操作参数,一般使用 -gcutil 查看gc情况VMID : 本地虚拟机进程ID,即当前运行的java进程号(PID)[interval] : ...

2018-10-21 11:31:23 284918

原创 查看JVM运行时参数

常用的一些如下:-XX:+PrintFlagslnitial(可设置参数的初始值) 显示的参数如果是:=则表示是修改过的,=则表示是默认值-XX:PrintFlagsFinal-XX:UnlockExperimentalVMOptions解锁实验参数(先决条件)-XX:+UnlockDiagnosticVMOptions解锁诊断参数-XX:+PrintCommandLineFlag...

2018-10-19 16:44:11 233778

转载 JVM的参数类型

标准参数-help-server, -client-version, -showversion-cp, -classpathX参数 非标准化参数(在各个JDK版本中可能会变,但是变动比较小) -Xint : 解释执行 -Xcomp : 编译执行 第一次使用就编译成本地代码 -Xmixed :混合模式,JVM自己来决定是否编译成本地代码 XX...

2018-10-19 16:28:36 283826

原创 浅析设计高可用数据库连接池(多线程)的核心要点与技术原理以及处理线程的安全问题

前不久有俩个盆友和我探讨这些问题,我做了个简单的总结分享给打架,明天就是国庆了祝大家玩的开心,主要分享设计数据库连接池原理以及要处理关键点,本文只挑选某一种实现方式来简单阐述,暂不涉及事务相关。关于事务传播行为和跨库事务(包括2PC和TCC),过段时间再做分享!那我们先引出问题,就从没有数据库连接池的时候说起吧(图就不画了,网上截一个)!!!缺点:首先,每一次web请求都要建立一次数据...

2018-09-30 18:40:43 235572 1

转载 Spring事务传播行为详解

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

2018-09-28 21:46:24 233656 2

原创 SpringMVC与Springfox(Swagger2)整合详解以及涉及的问题处理

        Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。 作用:         1. 接口的文档在线自动生成。        2. 功能测试。       在做Spring+Spri...

2018-09-26 16:58:30 286910 1

转载 java多线程之Phaser

java多线程技术提供了Phaser工具类,Phaser表示“阶段器”,用来解决控制多个线程分阶段共同完成任务的情景问题。其作用相比CountDownLatch和CyclicBarrier更加灵活,例如有这样的一个题目:5个学生一起参加考试,一共有三道题,要求所有学生到齐才能开始考试,全部同学都做完第一题,学生才能继续做第二题,全部学生做完了第二题,才能做第三题,所有学生都做完的第三题,考试才结束...

2018-09-02 16:40:06 233371

转载 Java并发编程之Exchanger

概述  用于线程间数据的交换。它提供一个同步点,在这个同步点,两个线程可以交换彼此的数据。这两个线程通过exchange方法交换数据,如果第一个线程先执行exchange()方法,它会一直等待第二个线程也执行exchange方法,当两个线程都到达同步点时,这两个线程就可以交换数据,将本线程生产出来的数据传递给对方。  Exchanger 可被视为 SynchronousQueue 的双向形...

2018-09-02 16:37:38 233574

转载 Java并发编程之CyclicBarrier

概述  CyclicBarrier是一个同步工具类,它允许一组线程互相等待,直到到达某个公共屏障点。与CountDownLatch不同的是该barrier在释放等待线程后可以重用,所以称它为循环(Cyclic)的屏障(Barrier)。  CyclicBarrier支持一个可选的Runnable命令,在一组线程中的最后一个线程到达之后(但在释放所有线程之前),该命令只在每个屏障点运行一次。...

2018-09-02 16:29:19 233046

转载 java并发编程之使用 CountDownLatch 控制多个线程执行顺序

有时候会有这样的需求,多个线程同时工作,然后其中几个可以随意并发执行,但有一个线程需要等其他线程工作结束后,才能开始。举个例子,开启多个线程分块下载一个大文件,每个线程只下载固定的一截,最后由另外一个线程来拼接所有的分段,那么这时候我们可以考虑使用CountDownLatch来控制并发。    CountDownLatch是JAVA提供在java.util.concurrent包下的一个辅助类...

2018-09-02 16:01:07 283529

精通并发与Netty(共92讲)百度网盘地址.txt

精通并发与Netty(共92讲)直接看,无加密

2020-01-07

mybatis-generator-core-1.3.2.zip

mybatis-generator-core-1.3.2.jar,pojo带数据库注释jar

2019-06-19

MySQL性能管理及架构设计.pdf

MySQL性能管理及架构设计.pdf

2019-06-03

spring-cloud-docker-microservice-book-code-master

spring -cloud-docker-microservice-book-code-master

2018-12-22

Maven学习笔记

Maven学习笔记

2018-12-21

研磨设计模式PDF

研磨设计模式PDF

2018-12-20

Springcloud案例

Springcloud案例,全家桶 结合官方的说明踩坑记===Springcloud案例

2018-12-18

eurake、ribbon、feign常见问题总结

eurake、ribbon、feign常见问题总结,遇到的一些坑点,eurake的保护模式等等

2018-12-16

springclouddemo

springcloud全家桶demo,看不明白,请对照文章来看。 地址:https://blog.csdn.net/qq_22075041/article/details/85007816

2018-12-14

jdbc连接sqlserver2000 源码 jar

jdbc连接sqlserver2000 源码 jar 驱动包

2018-11-06

solr4.7中文企业开发参考文档

solr4.7中文企业开发参考文档.包含了检索建议,分组查询,各个参数代表的意义详细配置

2018-07-06

Oauth2实现java

oauth本身不是技术,而是一项资源授权协议,重点是协议!Apache基金会提供了针对Java的oauth封装。我们做Java web项目想要实现oauth协议进行资源授权访问,直接使用该封装就可以。

2018-07-01

RabbitMQ延时消息实现方案

RabbitMQ延时消息实现方案,主要是用于java开发中企业实际应用,有流程图,详细配置

2017-12-24

SQLyog.10.4.2支持图形化sql语句

激活注册:name : k4z3r0 license key : a56ea5da-f30b-4fb1-8a05-95f346a9b20b a0fe8645-3916-45d4-9976-cb6b88fecc6c b70d7f66-dac2-4462-bf51-c4e9347da763

2017-09-22

linux下activemq安装包和配置文档

linux下activemq安装包和配置文档

2017-08-26

Windows下activemq安装包

Windows下activemq安装包

2017-08-26

开源的java任务调度框架Quartz+文档

开源的java任务调度框架Quartz

2017-08-21

mycat权威指南文档

mycat权威指南文档

2017-08-20

Quartz一个开源的作业调度框架

Quartz是一个开源的作业调度框架

2017-08-20

HttpClient文档+jar包

HttpClient文档+jar包

2017-08-20

fastDFS文档+jar包

fastDFS

2017-08-20

mybatis的分页插件pagehelper-fix+文档

mybatis的分页插件pagehelper-fix+文档

2017-08-19

dubbo的监控中心war包

dubbo的监控中心war包

2017-08-19

mybatis逆向工程升级版工具

mybatis逆向工程升级版,支持主流数据库,分页,注释,改名

2017-08-18

java操作redis代码和redis工具类相关包资料

java操作redis代码和redis工具类相关包资料

2017-08-11

springmvc自定义属性编辑器和参数解析器

springmvc自定义属性编辑器和参数解析器

2017-08-03

solr详细配置教程与solrj的使用

solr详细配置教程与solrj的使用

2017-07-31

很详细的weblogic图文教程以及集群

weblogic图文教程以及集群配置

2017-07-27

maven详细使用教程

maven详细使用教程

2017-07-20

svn在linux下搭建文档和工具

svn在linux下搭建文档+工具

2017-07-12

最全Linux常用命令大全

最全Linux常用命令大全

2017-07-12

Odoo10开发之模型关联-中文

Odoo10开发之模型关联

2017-07-11

Spring boot中文参考手册

Spring boot中文参考手册

2017-07-10

odoo10-官方中文API

odoo10-官方中文API

2017-07-04

log4j使用手册.pdf

log4j使用手册.pdf

2017-06-27

java套接字编程笔记

套接字编程笔记

2017-06-07

java套接字聊天

java套接字聊天

2017-06-07

java反射与动态代理笔记

java反射与动态代理

2017-06-07

java多线程代码笔记

java多线程代码笔记

2017-06-07

solrj使用教程

solrj使用教程

2017-05-13

MC-闰土的留言板

发表于 2020-01-02 最后回复 2020-01-02

关于js的内置对象问题

发表于 2016-11-17 最后回复 2019-08-30

空空如也

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

TA关注的人 TA的粉丝

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