`
QING____
  • 浏览: 2232878 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表

iostat指令学习

    iostat指令是linux系统很常用的指令,通常用于分析磁盘IO问题,当然这个指令也可以分析其他问题。此指令支持间歇性采样,比如“iostat 1 100”表示每秒一次、总共采样100次。       1、iostat:展示CPU 和磁盘的采样信息。同“iostat -c -u” # iostat 1 100 avg-cpu: %user %nice %system %iowait %steal %idle 5.04 0.00 0.88 0.54 0.01 93.54 Device: ...
    linux sar指令是一个综合性的系统监控指令,功能比较丰富,集大成者,对分析CPU、内存、网络等都有比较大的帮助。此指令支持支持间歇性采样,“比如sar -u 1 100”,表示每隔1秒、总共采样100次。       1、sar -A:打印所有的信息。它的结果是所有能支持参数的合集(统计值),对分析没有太大帮助。不过如果你希望获取某个时间点的所有监控数据,可以通过此指令将数据导入到文件。       2、sar -b:打印IO和传送率的统计值(所有块设备总和) # sar -b 1 01:00:29 PM tps rtps wtp ...

vmstat命令学习

    vmstat命令比较常用,对于分析linux系统性能很有帮助。     1、“vmstat -a -S m 1 5” procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free inact active si so bi bo in cs us sy id wa st 2 0 0 230 ...
    我们的项目通常被部署在linux系统中,在部署项目之前,我们会评估宿主机器所需要的配置,主要是内存、CPU、磁盘、网络等,我们关注点主要在CPU层面。     1、上线之前,根据业务并发能力峰值(均值)来评估所需CPU的 ...
    函数式接口(Functional Interface)是JDK 8中新增的特性,其实也是lambda表达式编程模式中的一个很重要的构成。我们先看看什么是函数式接口。     函数式接口:有且只有一个抽象方法的接口,为函数式接口。除此限制之外,函数式接口仍然遵循接口的其他基本设计原则,比如允许声明static属性、static方法,也允许有默认方法等。 @FunctionalInterface public interface Printer { void print(String message); default void print() { ...
    在JDK 7之前,ClassLoader存在并发(多线程)加载时可能导致死锁的问题(deadlock);在JDK 7通过对ClassLoader类内部进行了增强和优化,解决了此风险。我们先了解一下这个问题发生的原因,以及JDK 7通过何种技巧又解决了此问题。       我们开发自定义的ClassLoader,通常继承java.lang.ClassLoader类,通过重写findClass(String name) 或者直接重写loadClass(String name)来实现,当然实际而言loadClass方法最终面向调用者、以及其内部仍然会调用findClass方法。(备注, ...
     springboot中endpoint的安全访问,需要谨慎设计,endpoint可以暴露很多有用的信息,这对外部数据采集器来说非常便捷,但是潜在也引入了安全问题,稍有不慎可能被非法访问。本文基于springboot2,基于spring-security来认证endpoint的访问授权。       在springboot2之后,health和info接口将是公开的,其他endpoint将默认在security的控制之下,不允许被访问,如果需要访问,则必须接入security。本文描述,如果将health和info接口继续保持公开(当然也可以安全控制)、其他endpoint需要授 ...
     自动装配是springboot中一大特性,即springboot在程序初始化时可以根据classpath类、property属性、context中实例、以及运行容器特征等各种动态条件,来按需初始化相应的bean并交付给终端使用。      1、@ConditionalOnBean:如果此Bean实例已存在,则执行(如果修饰在class上,则此类加载;如果修饰在方法上 ,则此方法执行)。通常用于限定“如果必备的bean已经被初始化时,才会自动装备当前实例”。      2、@ConditionalOnMissingBean:如果此Bean实例尚未被初始时,则执行。      3、 ...
    本文主要描述使用okHttp实现简单的客户端,仅支持REST调用,即请求和响应均为文本,可以作为RestTemplate底层的实现支撑。     1、基于okHttp 3.10.0 +      2、仅实现同步调用。     3、通用客户端,仅支持Rest调用,即请求和响应均为文本类型。       类列表:     1、HttpClientConfiguration:客户端的主要配置,包括连接超时、连接池大小等。     2、HttpClientTemplate:接口,描述了客户端支持的基本操作。     3、AbstractHttpClientTemplate:2、 ...
     本文展示基于apache httpComponents实现的REST客户端,可以作为RestTemplate底层的实现支撑。     1、基于HttpClient 4.5 +      2、仅实现同步调用。     3、通用客户端,仅支持Rest调用,即请求和响应均为文本类型。       类列表:     1、HttpClientConfiguration:客户端的主要配置,包括连接超时、连接池大小等。     2、HttpClientTemplate:接口,描述了客户端支持的基本操作。     3、AbstractHttpClientTemplate:2、接口的 ...
    本文主要介绍如何使用Spring @Transactional基于JDBC Replication协议便捷的实现数据库的读写分离。 项目环境准备:     1)Spring 4.x + 环境     2)mysql connector-j 5.1.38+     3)tomcat-jdbc-pool连接池     4)spring @Transaction使用与JDBC Replcation协议。请参考【replication协议】。       核心特性:     1)所有操作默认请求从库,包括write、read,且无事务开启。     2)如果期望请求主库,必须 ...

JAVA中默认方法

    博客分类:
  • JAVA
    JDK 8中,对接口的设计做了一项非常重要的变更:支持“默认方法”(Default Method),即可以在接口上声明和实现方法,这一点有点类似于抽象类、抽象方法,可以简化类的多个接口扩展的复杂度,潜在淡化JAVA有关多继承的缺陷,此外默认方法在lamda表达式使用方面非常便利。       此后,我们可能需要改变有些认知,比如“接口中不能有方法实现”等。       1、默认方法:在接口中可以声明修饰域为public default的方法实现体。   public interface Animal { public default void run() { ...

JAVA中@Repeatable注解

    博客分类:
  • JAVA
    @Repeatable注解以及其相关特性,是在JDK 8中提供的,简单而言,我们可以设计一种风格的annotation,可以被多次修饰在符合要求的@Target上,在此前一个类型的注释是不能重复修饰在相同地方。被重复修饰的注解,表示此Target同 ...
    默认情况下,我们是无法获取方法中参数的名称,通过反射机制也只能过去参数的顺序以及一些表意名:arg0、arg1等等;当我们面对,比如文档化服务接口的详细信息时,就会比较麻烦。因为源文件在编译时,不会将参数名称等相关meta信息记入class文件;JDK 8之后,我们可以通过在编译时指定“-parameters”选项,来实现将方法的参数名记入class文件,并在运行时通过反射机制获取相关信息。       如果你的项目为maven构建,可以增加如下配置: <plugin> <artifactId>maven-compiler-plugin< ...

JAVA Fork/Join框架

    博客分类:
  • JAVA
一、简述     1、并发模型         主线程可以将待执行(计算)任务,分解为多个(通常是2个,易于递归合并)子任务,并等待子任务的执行结果进而合并;所有任务,都会并行执行。       2、伪代码 solve(problem): if problem is small enough: solve problem directly (sequential algorithm) else: for part in subdivide(problem) fork subtask to solve ...
Global site tag (gtag.js) - Google Analytics