自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

霞落满天

我是Oracle Java JCP会员 博客域名 https://linuxstyle.blog.csdn.net/

原创 线上java JVM问题排查

作者:霞落满天 第一部分 是我以前公司的一则正式案例: 第二部分 是我另一个博客上写的主要是最近发现大家问的比较多就写了此文 第一部分 线上真实故障案例 下面是一个老系统,代码写的有点问题导致出现这样一个JVM占比过高的问题,正常情况下也就是CPU负载不高的时候21:00左右的,也...

2020-01-10 10:42:35

阅读数 6542

评论数 1

原创 高性能微服务架构设计模式

高性能微服务架构设计模式 主讲:霞落满天 现在企业开发都是微服务架构,但是有很多问题,比如分布式定义,分布式的微服务怎么拆分,什么时候拆分,怎么做到高性能,中台怎么设计,读写分离模式难道仅仅是MySQL做主从就够了么?分库分表怎么使用,缓存和数据库之间怎么保持一致性,领域模型中的CQRS模式又...

2020-01-09 23:18:58

阅读数 2052

评论数 0

原创 SpringBoot整合Grpc实现跨语言RPC通讯

什么是gRPC gRPC是谷歌开源的基于go语言的一个现代的开源高性能RPC框架,可以在任何环境中运行。它可以有效地连接数据中心内和跨数据中心的服务,并提供可插拔的支持,以实现负载平衡,跟踪,健康检查和身份验证。它还适用于分布式计算的最后一英里,用于将设备,移动应用程序和浏览器连接到后端服务。 ...

2019-09-11 10:46:17

阅读数 6683

评论数 3

原创 经典算法书籍推荐以及算法书排行【算法四库全书】

经典算法书籍推荐以及算法书排行【算法四库全书】 作者:霞落满天 https://linuxstyle.blog.csdn.net/ https://blog.csdn.net/21aspnet 行文方式:类似《四库全书》截取经典算法书目录和精华篇章 版权说明:本文于2019年5月5日首发于C...

2019-05-05 20:14:35

阅读数 10604

评论数 7

原创 支撑Java框架的基础技术:泛型,反射,动态代理,cglib

以Spring为例要想看明白他的源码需要彻底理解Java的一些基础技术泛型,反射同时对于一些高级技术例如动态代理,cglib和字节码技术也需要掌握,下面就按章节来一一说清楚这些技术的核心部分,最后手写一个简单的Spring框架。 一.静态代码块和非静态代码块以及构造函数的调用顺序 静态...

2019-04-22 10:29:24

阅读数 5771

评论数 2

原创 深入浅出Java反射原理和使用场景

反射非常重要,特别是Spring这类框架离不开反射,而反射对于初学者理解起来其实还是有一定的难度的,本帖希望把晦涩的反色用最易懂的方式给你讲明白。 先不说反射是什么先看一个问题:如果不知道对象的真实类型怎么去调用他的方法? Object obj = new Date(); 编译类型:O...

2019-04-19 16:38:56

阅读数 4746

评论数 3

原创 Java多线程的11种创建方式以及纠正网上流传很久的一个谬误

创建线程比较传统的方式是继承Thread类和实现Runnable,也可以用内部类,Lambda表达式,线程池,FutureTask等。 经常面试会问到继承Thread类和实现Runnable的区别,然后网上会流传如下这样的说法,这是错误的。 流传很久的错误说法: 这个说法是举一个火车票售票的...

2019-04-06 21:22:58

阅读数 4361

评论数 4

原创 异步编程原理以及Java实现

说实话多线程和异步是非常容易让人混淆的,好像产生的效果差不多,甚至有人称多线程为异步,实际上这两种技术背后的实现原理是不同的。 假设您有2个任务,不涉及任何IO(在多处理器机器上)。在这种情况下,线程优于Async。因为像单线程程序一样的Async按顺序执行你的任务。但是线程可以同时执行这两...

2019-03-30 14:16:11

阅读数 4404

评论数 2

原创 从Jdk8到Jdk12的Java虚拟机垃圾回收(垃圾收集)相关论文和官方网站集锦

JVM架构图 《Java Program Execution Process in Detail | Working of JUST-IT-TIME Compiler (JIT) in Detail》 ---- 这张图微观画的很好:https://www.javainterviewpoi...

2019-03-24 03:00:23

阅读数 4295

评论数 2

原创 Java12和Jdk12安装以及OpenJdk12源码

文档: JDK 12文档:https://docs.oracle.com/en/java/javase/12/ 下载: OracleJDK12下载:https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads...

2019-03-23 14:12:39

阅读数 14414

评论数 15

原创 Java字节码研究

关于怎么查看字节码的五种方法参考本人另一篇文章《Java以及IDEA下查看字节码的五种方法》 1.String和常连池 先上代码: public class TestApp { public static void main(String[] args) { ...

2019-03-05 18:46:45

阅读数 4129

评论数 2

原创 MySQL常用性能分析方法-profile,explain,索引

1.查版本号无论做什么都要确认版本号,不同的版本号下会有各种差异。>Select  version();2.执行状态分析显示哪些线程正在运行>show processlist;下面是完整的信息3.show profileshow profile默认的是关闭的,但是会话级别可以开启这个功...

2016-10-26 21:17:30

阅读数 5898

评论数 0

原创 Spring4实战学习笔记

《Spring4实战 第4版》2016年4月新出版的,之前的第三版看起来还是不错的,所以看到新版就直接买下来。 英文版源码地址:Spring in Action, Fourth Edition Covers Spring 4 1.IOC装配Bean 参考【Spring实战42.2】,...

2016-05-12 18:42:40

阅读数 14863

评论数 2

原创 深入浅出理解Paxos算法

Paxos算法是莱斯利·兰伯特(英语:Leslie Lamport,LaTeX中的「La」)于1990年提出的一种基于消息传递且具有高度容错特性的一致性算法。Paxos算法一开始非常难以理解,但是一旦理解其实也并不难,之所以难理解其实是因为作者讲的故事难理解。Paxos算法维基百科https://...

2016-02-19 20:09:40

阅读数 24487

评论数 4

原创 mybatis结合log4j打印SQL日志

mybatis结合log4j打印SQL日志 默认的mybatis不能打印出SQL日志,不便于查看调试,需要结合log4jdbc-log4j2就可以完整的输入SQL的调试信息。pom.xml 配置maven,注意以下3个都需要 org.bgee.log4jdb...

2016-01-22 11:56:56

阅读数 34391

评论数 12

原创 Linux环境Nginx安装多版本PHP

关于Linux环境Nginx安装与调试以及PHP安装参考此文即可:http://blog.csdn.net/unix21/article/details/8544922linux版本:64位CentOS 6.4Nginx版本:nginx1.8.0php版本:php5.5.28 & php5...

2015-08-14 10:32:13

阅读数 23913

评论数 3

原创 MyEclipse2014配置Tomcat开发JavaWeb程序JSP以及Servlet

史上最强大的Myeclipse入门教程

2014-03-23 12:42:51

阅读数 52696

评论数 20

原创 Java开发环境的搭建以及使用eclipse从头一步步创建java项目

原文:出自本人的Linux博客http://blog.csdn.net/unix21/article/details/18813173一、Java 开发环境的搭建这里主要说windows环境下怎么配置Java环境。如果是Linux环境参考本博客另一篇文章即可:Linux环境安装卸载JDK1.首先安...

2014-01-27 16:06:02

阅读数 94227

评论数 13

原创 Unix下C程序内存泄漏检测工具Valgrind安装与使用

Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。 Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届Google-O'Reilly开源代码奖。 Valgrind遵守GNU通用公共许可证条款,是一...

2012-11-11 21:39:40

阅读数 36132

评论数 5

原创 Linux进程间通信--进程,信号,管道,消息队列,信号量,共享内存

Linux进程间通信--进程,信号,管道,消息队列,信号量,共享内存参考:《linux编程从入门到精通》,《Linux C程序设计大全》,《unix环境高级编程》参考:C和指针学习 说明:本文非常的长,也是为了便于查找和比较,所以放在一起了Linux 传统的进程间通信有很多,如各类管道、消息队列、...

2012-04-19 22:43:28

阅读数 44199

评论数 7

原创 Linux网络编程必看书籍推荐

首先要说讲述计算机网络和TCP/IP的书很多。 先要学习网络知识才谈得上编程讲述计算机网络的最经典的当属Andrew S.Tanenbaum的《计算机网络》第五版,这本书难易适中。《计算机网络(第5版)》是国内外使用最广泛、最权威的计算机网络经典教材。目前已经是第五版,本书作者80年代就开发出MI...

2011-08-17 12:27:10

阅读数 102711

评论数 41

原创 C语言经典著作导读

本人不是卖书的,我也不会给出任何购书链接,只是给C语言学习者推荐一条学习的方向。如果你喜欢看电子书网上很多,如果你喜欢纸质那么就买吧,经典的书值得收藏,是对版权的尊重! 基础篇1.《写给大家看的C语言书(第2版)》原书名: Absolute Beginner's Guide to C (...

2011-06-21 14:20:00

阅读数 26211

评论数 22

原创 C#精髓 第四讲 GridView 72般绝技

说明:准备出一个系列,所谓精髓讲C#语言要点。这个系列没有先后顺序,不过尽量做到精。可能会不断增删整理,本系列最原始出处是csdn博客,谢谢关注。C#精髓第四讲 GridView 72般绝技作者:清清月儿 主页:http://blog.csdn.net/21aspnet/           时间...

2007-03-25 04:36:00

阅读数 543683

评论数 703

原创 .c和.h文件的区别

  一个简单的问题:.c和.h文件的区别学了几个月的C语言,反而觉得越来越不懂了。同样是子程序,可以定义在.c文件中,也可以定义在.h文件中,那这两个文件到底在用法上有什么区别呢? 2楼:子程序不要定义在.h中。函数定义要放在.c中,而.h只做声明.否则多引用几次,就会发生函数重复定义的错误。3楼...

2004-10-24 23:20:00

阅读数 167615

评论数 16

原创 SpringBoot conditional注解和自定义conditional注解使用

https://coding.imooc.com/class/chapter/404.html 第12章 Sb starter解析【没有什么事情是starter不能解决的】 程序开发没有什么事儿是一个starter不能解决的。如果有,那就两个。使用starter也非常简单,只需要引入之后就...

2020-02-20 22:26:42

阅读数 112

评论数 0

原创 springboot集成logback日志 通用logback.xml模板详解

先看Spring Boot中依赖的logback,log4j,slf4j相关Jar包 1.最简单的默认打印控制台日志 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.b...

2020-02-10 20:35:23

阅读数 522

评论数 0

原创 Spring Bean四种注入方式(Springboot环境)

阅读此文建议参考本人写的Spring常用注解:https://blog.csdn.net/21aspnet/article/details/104042826 给容器中注册组件的四种方法: 1.@ComponentScan包扫描+组件标注注解@Component(@Controller@Ser...

2020-02-09 21:51:04

阅读数 1759

评论数 1

原创 Windows下安装Mongodb SpringBoot集成MongoDB和Redis多数据源

全文内容: Mongodb安装 说明:Mongodb和redis是开发中常用的中间件,Redis的安装使用比较简单就不写了,只说本地也就是Windows安装Mongodb。 SpringBoot集成MongoDB和Redis 文中还有一个彩蛋Hutool 1.下载最新稳定版 htt...

2020-02-04 14:42:33

阅读数 1012

评论数 0

原创 IDEA常用和实用配置

主要是收集IDEA常用和不常用配置陆续更新 ------------------------ 自动写构造函数等 Alt + Insert ------------------------ idea中隐藏.idea文件夹和.iml文件 idea中的.idea文件夹和.iml是平常几乎...

2020-02-04 11:32:28

阅读数 480

评论数 0

原创 spring springboot springcloud常用注解

@SpringBootApplication 组合注解,用在启动类上,源码: @Retention(RetentionPolicy.RUNTIME) @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan public...

2020-01-19 18:06:25

阅读数 3076

评论数 0

原创 Fiddler+夜神模拟器进行APP抓包

Fiddler+夜神模拟器进行APP抓包 作者:霞落满天 需求:对公司APP进行抓包获取详细的接口信息,这是现在开发必备的。 工具:Fiddler抓包,夜神模拟器 模拟手机 安装APP 1.下载Fiddler https://www.telerik.com/download/fiddle...

2020-01-14 18:31:15

阅读数 4081

评论数 2

原创 你真的掌握了并发编程volatile synchronized么?

先看代码: import java.util.concurrent.atomic.AtomicInteger; /** * * @author xialuomantian */ public class NewTest { static volatile int a = 1...

2020-01-05 22:09:16

阅读数 907

评论数 0

原创 Unix/Linux开源世界资源链接汇总【不断更新】

最后更新:2012.12.04 说明:好东西在后面,Linux镜像基本涵盖全球主要下载点。【长期更新】 世界很大,我们很小,学海无涯,书山有路! 一.内核 Unix代码大全 http://minnie.tuhs.org/ UnixV6 https://github.com/R...

2019-11-22 09:47:25

阅读数 23753

评论数 11

原创 K8S的横向自动扩容的功能Horizontal Pod Autoscaling

K8S 作为一个集群式的管理软件,自动化、智能化是免不了的功能。Google 在 K8S v1.1 版本中就加入了这个 Pod 横向自动扩容的功能(Horizontal Pod Autoscaling,简称 HPA)。 HPA 与之前的 Deployment、Service 一样,也属于一种 K...

2019-10-29 14:25:41

阅读数 959

评论数 0

原创 Java线上程序频繁JVM FGC问题排障与启示

线上Java程序的JVM频繁FGC,现象如图所示: 一直持续FGC 5次左右,每次耗时1秒多不等。 FGC的原因实际上是内存不够用,但是运维反映堆内存是2G,从运维提供的参数看也是。 内存实际上一直只用到1G以内。 这时候可以自己写一段代码输出堆内存数据,这是最准的: publ...

2019-10-16 17:30:51

阅读数 1166

评论数 1

原创 Java泛型使用需要小心

这是源自实际开发的一个坑,只是被我简化了。 Set<Integer> gs = null; Set gss = new HashSet(); gs = gss; gss.add("19"); ...

2019-10-09 20:36:45

阅读数 781

评论数 0

原创 度量,跟踪和日志记录

今天,我有幸参加了2017年的分布式追踪峰会,其中有很多来自AWS / X-Ray,OpenZipkin,OpenTracing,Instana,Datadog,Librato等公司的人员,我很遗憾我忘记了这一点。有一次讨论转向了项目范围和定义。跟踪系统是否也应该管理日志记录?什么确实的记录,通过...

2019-08-20 19:14:38

阅读数 2441

评论数 0

原创 适用于软件工程的定律Augustine's laws

奥古斯丁定律(Augustine's laws)原是诺曼拉尔夫奥古斯丁提出的一系列诙谐的格言,但是实际上用于工程和项目管理,软件开发上也是很有借鉴意义的。 他是1975年至1977年担任美国陆军副部长的美国航空航天商人。1984年,他出版了他的定律这本书,和发表在2012年3月“声音与...

2019-07-24 11:55:27

阅读数 2618

评论数 0

原创 不要千言万语,一组漫画让你秒懂最终一致性

直接上图 如果你以前看过最终一致性的定义那么你一定会为这幅精彩漫画拍手叫好。 你要是不知道什么是最终一致性你可以看看下面的权威定义,当然了网上关于什么是最终一致性的帖子铺天盖地,也许你已经很明白了,即使这样你是不是依然为此图欢呼? 最终一致性是分布式理论中的重要,定义如下: 最终一...

2019-06-14 18:02:37

阅读数 5098

评论数 10

原创 分布式系统的现代消息传递

论文《分布式系统的现代消息传递》Modern Messaging for Distributed Sytems L Magnoni 通过IOP出版有限公司出版许可物理学学报:会议系列,608卷,第1会议 作者电子邮件 luca.magnoni@cern.ch 作者隶属关系 1欧...

2019-06-13 15:29:27

阅读数 2060

评论数 1

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