9 clypm

尚未进行身份认证

我要认证

松弛的琴弦,永远奏不出时代的强音

等级
TA的排名 1w+

Java 应用性能调优实践指南

Java 应用性能优化是一个老生常谈的话题,典型的性能问题如页面响应慢、接口超时,服务器负载高、并发数低,数据库频繁死锁等。尤其是在“糙快猛”的互联网开发模式大行其道的今天,随着系统访问量的日益增加和代码的臃肿,各种性能问题开始纷至沓来。Java 应用性能的瓶颈点非常多,比如磁盘、内存、网络 I/O 等系统因素,Java 应用代码,JVM GC,数据库,缓存等。笔者根据个人经验,将Ja...

2019-07-05 10:18:52

SpringBoot四大神器之Actuator

Spring Boot有四大神器,分别是auto-configuration、starters、cli、actuator,本文主要讲actuator。actuator是spring boot提供的对应用系统的自省和监控的集成功能,可以对应用系统进行配置查看、相关功能统计等。目录1. 开启Actuator2. 端点(Endpoints)2.1 启用端点2.2 暴露端点2.3 ...

2019-02-15 09:26:48

使用Docker在本地搭建kafka分布式集群

一、下载下载地址:http://kafka.apache.org/downloads.html    我这里下载的是Scala 2.11对应的 kafka_2.11-1.1.0.tgz二、kafka安装集群规划IP 节点名称 Kafka Zookeeper Jdk docker  172.17.0.2 master Kafka...

2019-01-14 15:42:59

使用Docker在本地搭建Flink分布式集群

Flink典型的任务处理过程如下所示:Flink安装包下载地址:http://flink.apache.org/downloads.html ,选择对应Hadoop的Flink版本下载 Standalone 模式快速入门教程地址:https://ci.apache.org/projects/flink/flink-docs-release-1.6/quickstart/set...

2019-01-11 15:56:40

如何优化Java垃圾回收机制

为什么需要优化GC或者说的更确切一些,对于基于Java的服务,是否有必要优化GC?应该说,对于所有的基于Java的服务,并不总是需要进行GC优化,但前提是所运行的基于Java的系统,包含了如下参数或行为:已经通过 -Xms 和–Xmx 设置了内存大小 包含了 -server 参数 系统中没有超时日志等错误日志换句话说,如果你没有设定内存的大小,并且系统充斥着大量的超时日志时,你就需要...

2018-09-29 09:56:06

JVM参数总结及JVM监控工具

JVM参数总结Java线程状态线程的五种状态* 新建:new(时间很短)* 运行:runnable* 等待:waitting(无限期等待),timed waitting(限期等待)* 阻塞:blocked* 结束:terminated(时间很短)Jvm监控工具一、jstack介绍:jstack用于打印出给定的java进程ID或core file或...

2018-09-26 10:31:39

设计模式-结构型模式之代理模式

代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。代理模式的结构  所谓代理,就是一个人或者机构代表另一个人或者机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。  代理模式类图如下:    在代理模式中的角色:  ●  抽象对象角色:声明了目标对象和代理对象的共同接口,这样一来在任...

2018-07-09 10:32:30

设计模式-结构型模式之适配器模式

  适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式的用途  用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极、阴极外,还有一个地极。而有些地方的电源插座却只有两极,没有地极。电源插座与笔记本电脑的电源插头不匹配使得笔记本电脑无法使用。这时候一个三相到两相的转换器(适配器)就能解决此问题,而这正像是本模式所做的...

2018-07-05 09:01:57

设计模式-创建模式之建造模式

 建造模式是对象的创建模式。建造模式可以将一个产品的内部表象(internal representation)与产品的生产过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。产品的内部表象  一个产品常有不同的组成成分作为产品的零件,这些零件有可能是对象,也有可能不是对象,它们通常又叫做产品的内部表象(internal representation)。不同的产品可以有不同的内部表...

2018-07-03 09:20:30

设计模式-创建模式之单例模式

作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。单例模式的结构  单例模式的特点:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。  饿汉式单例类public class EagerSingleton { private static EagerSingleton instance...

2018-06-30 09:49:12

设计模式-创建模式之抽象工厂模式

场景问题  举个生活中常见的例子——组装电脑,我们在组装电脑的时候,通常需要选择一系列的配件,比如CPU、硬盘、内存、主板、电源、机箱等。为讨论使用简单点,只考虑选择CPU和主板的问题。  事实上,在选择CPU的时候,面临一系列的问题,比如品牌、型号、针脚数目、主频等问题,只有把这些问题都确定下来,才能确定具体的CPU。  同样,在选择主板的时候,也有一系列问题,比如品牌、芯片组、集成芯片、总线频...

2018-06-29 09:24:49

设计模式-创建模式之工厂模式

工厂方法模式是类的创建模式,具体描述:  工厂方法模式是类的创建模式,又叫做虚拟构造子(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式。  工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。那么工厂方法模式是在什么场景下使用呢,下面就以本人的理解举例说明:  相信很多人都做过导入导出功能,就拿导出功能来说。有这...

2018-06-27 13:43:29

设计模式-创建模式之简单工厂模式

简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。那么简单工厂模式是在什么场景下使用呢,下面就以本人的理解举例说明:  就拿登录功能来说,假如应用系统需要支持多种登录方式如:口令认证、域认证(口令认证通常是去数据库中验证用户,而域认证则是需要到微软的域中验证用户)。那么自然的做法就是建立一个各...

2018-06-26 19:29:45

Kafka Consumer多线程实例

Kafka 0.9版本开始推出了Java版本的consumer,优化了coordinator的设计以及摆脱了对zookeeper的依赖。社区最近也在探讨正式用这套consumer API替换Scala版本的consumer的计划。鉴于目前这方面的资料并不是很多,本文将尝试给出一个利用KafkaConsumer编写的多线程消费者实例,希望对大家有所帮助。    这套API最重要的入口就是KafkaC...

2018-06-08 09:08:19

Kafka(三)常用命令

Kafka常用命令以下是kafka常用命令行总结:  1.查看topic的详细信息  ./kafka-topics.sh -zookeeper 127.0.0.1:2181 -describe -topic testKJ1  2、为topic增加副本  ./kafka-reassign-partitions.sh -zookeeper 127.0.0.1:2181 -reassignment-js...

2018-06-07 17:37:29

并发性能优化 – 降低锁粒度

在高负载多线程应用中性能是非常重要的。为了达到更好的性能,开发者必须意识到并发的重要性。当我们需要使用并发时, 常常有一个资源必须被两个或多个线程共享。在这种情况下,就存在一个竞争条件,也就是其中一个线程可以得到锁(锁与特定资源绑定),其他想要得到锁的线程会被阻塞。这个同步机制的实现是有代价的,为了向你提供一个好用的同步模型,JVM和操作系统都要消耗资源。有三个最重要的因素使并发的实现会消耗大量资...

2018-06-07 10:46:14

利用Canal完成Mysql数据同步Redis

流程Canal的原理是模拟Slave向Master发送请求,Canal解析binlog,但不将解析结果持久化,而是保存在内存中,每次有客户端读取一次消息,就删除该消息。这里所说的客户端,就需要我们写一个连接Canal的程序,持续从Canal获取数据。步骤一、配置Canal参考https://github.com/alibaba/canal【mysql配置】1,配置参数[html] view pla...

2018-06-06 19:31:20

java解析 mysql binlog

在进入正题之前,我们需要知道binlog的event的类型,先来看看自己binlog文件有哪些?其中红色部分为event_type。binlog event 的类型有很多,具体可以参见mysql官方文档:http://dev.mysql.com/doc/internals/en/event-meanings.html(一)Open Replicator中相关的Event类与接口Open Repli...

2018-06-06 19:30:12

mysql binlog介绍、日志格式、数据查看等

(一) binlog介绍binlog,即二进制日志,它记录了数据库上的所有改变,并以二进制的形式保存在磁盘中;它可以用来查看数据库的变更历史、数据库增量备份和恢复、Mysql的复制(主从数据库的复制)。(二) binlog格式binlog有三种格式:Statement、Row以及Mixed。–基于SQL语句的复制(statement-based replication,SBR), –基于行的复制(...

2018-06-06 19:29:03

redis并发读写锁,使用Redisson实现分布式锁

今天为大家带来一篇有关Redisson实现分布式锁的文章,好了,不多说了,直接进入主题。1. 可重入锁(Reentrant Lock)Redisson的分布式可重入锁RLock Java对象实现了java.util.concurrent.locks.Lock接口,同时还支持自动过期解锁。[java] view plain copypublic void testReentrantLock(Redi...

2018-06-06 17:18:49

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!