自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (11)
  • 收藏
  • 关注

转载 SpringCloud整合php、python示例

SpringCloud整合php、python示例代码已上传至: https://github.com/KeoZmy/SpringCloudDemo.git ,博客中没有写到网关 zuul,但是git中已上传前言最近一直在花时间研究微服务,各种开源组件组合一个framework到最后决定用springcloud这样成熟的framework。不得不说,springcloud确实很强大,还有Pivot...

2018-05-30 21:53:56 2588

转载 springboot集成swagger2

swagger,中文“拽”的意思。它是一个功能强大的api框架,它的集成非常简单,不仅提供了在线文档的查阅,而且还提供了在线文档的测试。另外swagger很容易构建restful风格的api,简单优雅帅气,正如它的名字。一、引入依赖 <dependency> <groupId>io.springfox</groupId> ...

2018-05-29 19:15:41 106

转载 微服务时代之2017年五军之战

其实我一直是个懒人,开博也有好几年了,但是一直懒得写文章,主要怕打字麻烦, 手机都是用讯飞语音输入的, 可惜博客里面很多专业性的词语,用讯飞也不大好,另外无论在家还是在公司,开个语音一本正经的叽叽叽,画面也太美好,干脆还是手打吧,对观众也是一个尊重        这个话题实在不想开,主要是怕开了,各路大军蜂拥而至,一人一口唾液也被喷死了,原来只要一讨论.net java php谁好,马上就有混战了...

2018-05-28 16:49:56 238

转载 深入浅出CAS

CAS(Compare and Swap),即比较并替换,实现并发算法时常用到的一种技术,Doug lea大神在java同步器中大量使用了CAS技术,鬼斧神工的实现了多线程执行的安全性。CAS的思想很简单:三个参数,一个当前内存值V、旧的预期值A、即将更新的值B,当且仅当预期值A和内存值V相同时,将内存值修改为B并返回true,否则什么都不做,并返回false。问题一个n++的问题。public ...

2018-05-25 05:12:22 169

转载 Java中CAS详解

在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。(2)一个线程持有锁会导致其它所有需要此锁的线程挂起。(3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。volatile是不错的机制,但是volatile不能保证原子性。因...

2018-05-24 23:16:44 127

转载 ReenTrantLock可重入锁(和synchronized的区别)

ReenTrantLock可重入锁(和synchronized的区别)总结可重入性:从名字上理解,ReenTrantLock的字面意思就是再进入的锁,其实synchronized关键字所使用的锁也是可重入的,两者关于这个的区别不大。两者都是同一个线程没进入一次,锁的计数器都自增1,所以要等到锁的计数器下降为0时才能释放锁。 锁的实现:Synchronized是依赖于JVM实现的,而ReenTran...

2018-05-24 21:05:59 260

转载 面向对象的OOA、OOD、OOP

 OOA  Object-Oriented Analysis:面向对象分析方法  是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。OOA与结构化分析有较大的区别。OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。  OOA(面向对象的分析)模型由5个层次(主题层、对象类层、结构层、属性层和服务层)和...

2018-05-24 20:34:40 2267

转载 平衡二叉树、B树、B+树、B*树、LSM树简介

平衡二叉树是基于分治思想采用二分法的策略提高数据查找速度的二叉树结构。非叶子结点最多只能有两个子结点,且左边子结点点小于当前结点值,右边子结点大于当前结点树,并且为保证查询性能增增删结点时要保证左右两边结点层级相差不大于1,具体实现有AVL、Treap、红黑树等。Java中TreeMap就是基于红黑树实现的。B树与平衡二叉树区别是它是平衡多路查找树,它每个节点包含的关键字增多了,在应用时可利用磁盘...

2018-05-24 19:35:17 351

转载 Linux服务器内存、CPU、文件系统、磁盘IO性能以及网络连通性shell巡检

shell自动巡检服务器基础配置        每个项目都要部署在服务器上,那么服务器的安全性能和一些基本情况是我们需要了解的,比如服务器CPU、内存、文件系统、磁盘IO、还有一些网络连通性等等,这些操作很多项目组都是安排一个特定的巡检人员来完成,那么为什么不写一个shell脚本来自动巡检服务器而代替人工操作呢,下面给出巡检的标准与shell脚本代码:一、巡检标准1.1 CPU利用率巡检1) 执行...

2018-05-23 12:25:56 582

转载 监控io性能、free、ps、查看网络状态和linux抓包工具

一、监控io性能 1、iostat -x 磁盘使用 关注最后一列的数值,数值大说明磁盘有异常2、iotop 磁盘使用 安装:yum install -y iotop 二、free命令 查看内存使用多少,剩余多少请看第二行的数据。另外我们还可以加-m或-h 或者-g选项分别以M或G为单位打印内存使用状况:常用: free -h 三、ps命令 ps查看系统进程 用法:ps aux 或 ps -elf ...

2018-05-23 11:59:59 181

转载 Linux按照CPU、内存、磁盘IO、网络性能监测

系统优化是一项复杂、繁琐、长期的工作,优化前需要监测、采集、测试、评估,优化后也需要测试、采集、评估、监测,而且是一个长期和持续的过程,不 是说现在优化了,测试了,以后就可以一劳永逸了,也不是说书本上的优化就适合眼下正在运行的系统,不同的系统、不同的硬件、不同的应用优化的重点也不同、 优化的方法也不同、优化的参数也不同。性能监测是系统优化过程中重要的一环,如果没有监测、不清楚性能瓶颈在哪里,怎么优...

2018-05-23 11:38:45 183

转载 从任务到线程:Java结构化并发应用程序

并发设计的本质,就是要把程序的逻辑分解为多个任务,这些任务独立而又协作的完成程序的功能。而其中最关键的地方就是如何将逻辑上的任务分配到实际的线程中去执行。换而言之,任务是目的,而线程是载体,线程的实现要以任务为目标。1. 在线程中执行任务并发程序设计的第一步就是要划分任务的边界,理想情况下就是所有的任务都独立的:每个任务都是不依赖于其他任务的状态,结果和边界。因为独立的任务是最有利于并发设计的。有...

2018-05-23 01:33:53 213

转载 如何优雅的关闭Java线程池

面试中经常会问到,创建一个线程池需要哪些参数啊,线程池的工作原理啊,却很少会问到线程池如何安全关闭的。也正是因为大家不是很关注这块,即便是工作三四年的人,也会有因为线程池关闭不合理,导致应用无法正常stop的情况,还有出现一些报错的问题。本篇就以ThreadPoolExecutor为例,来介绍下如何优雅的关闭线程池。01 线程中断在介绍线程池关闭之前,先介绍下Thread的interrupt。在程...

2018-05-22 21:40:14 8825 1

转载 java过程优雅关闭线程!

Java中原来在Thread中提供了stop()方法来终止线程,但这个方法是不安全的,所以一般不建议使用。文本将介绍两种可以优雅的终止线程的方式…第一种在JAVA《Java多线程模式》中有一种叫Two-Phase Termination(两步终止)的模式可以优雅的终止线程,这种模式采用了两个步骤来终止线程,所以叫两步终止模式。先将执行标志位isShutdown 设为false,使工作中的线程转变为...

2018-05-22 21:30:01 9640

转载 常见Java应用如何优雅关闭

一、前言在我们进行系统升级的时候,往往需要关闭我们的应用,然后重启。在关闭应用前,我们希望做一些前置操作,比如关闭数据库、redis连接,清理zookeeper的临时节点,释放分布式锁,持久化缓存数据等等。二、Linux的信号机制在linux上,我们关闭进程主要是使用 kill 的方式。当执行该命令以后,linux会向进程发送一个信号,进程收到以后之后,可以做一些清理工作。kill 命令默认的信号...

2018-05-22 13:31:00 1836

转载 Java程序优雅关闭的两种方法

使用java编写大型系统时,往往需要在程序被kill时将内存中的一些临时数据和状态处理掉,这里称之为优雅关闭。介绍两种比较典型的方法:1. 调用Runtime.getRuntime().addShutdownHook()方法,添加结束时运行的线程。[java] view plain copypublic void stopGracefully() {                   Runti...

2018-05-22 13:21:22 6091

转载 Java8系列之重新认识HashMap

Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeMap,类继承关系如下图所示:下面针对各个实现类的特点做一些说明:(1) HashMap:它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。 HashMa...

2018-05-22 13:10:10 106

转载 jvm的内存分配

最近看了周志明版本的《深入理解Java虚拟机》第一版和第二版,写的很好,收获很多,此处总结一下。 jvm中内存划分: 如上图,一共分为五块,其中:线程共享区域为:1、java堆2、方法区 线程私有区域为:3、JVM栈4、本地方法栈5、程序计数器 各区域作用:1、java堆:    java堆是jvm内存管理中最大的一块,线程共享。在jvm启动的时候创建。此区域唯一目的就是存放对象实例,几乎所有的对...

2018-05-20 12:04:32 175

转载 UML各种图

UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。下面将对UML的九种图+包图的基本概念进行介绍以及各个图的使用场景。一、基本概念    如下图所示,UML图分为用例视图、设计视图、进程视图、实现视图和拓扑视图,又可以静动分为静态视图和动态视图。静态图分为:用例图,类图,对象图,包图,构件图,部署图。...

2018-05-18 18:31:23 318

转载 五分钟读懂UML类图

平时阅读一些远吗分析类文章或是设计应用架构时没少与UML类图打交道。实际上,UML类图中最常用到的元素五分钟就能掌握,下面赶紧来一起认识一下它吧:一、类的属性的表示方式在UML类图中,类使用包含类名、属性(field) 和方法(method) 且带有分割线的矩形来表示,比如下图表示一个Employee类,它包含name,age和email这3个属性,以及modifyInfo()方法。那么属性/方法...

2018-05-18 18:30:13 139

转载 Java代码质量检查工具

在现在的软件开发中,由于软件的复杂度越来越高,业务也覆盖很广,各个业务模块业务错综复杂。这样就需要我们需要团队开发,在我们团队中开发人员的经验、代码风格样式都不一致,以及缺乏统一的标准,从而导致我们的整个项目的的代码难以阅读,不便于后期维护。这几天在研究代码质量管理,根据在网上搜集的资料及跟前辈学的一点经验整理一下,有需要的同学们可以查看,也便于以后自己回顾。 主要对下面的七块进行分析编码格式规范...

2018-05-13 08:27:00 17415 1

转载 确定稳定的 Spring Cloud 相关环境版本

开发部署 Spring Cloud 微服务框架,需要先确定 Spring Cloud 的相关环境版本,主要包含:Spring Cloud、Spring Cloud Netflix、JDK、JRE、Java Version等相关版本,以及环境的配置。现在最新版本 Java 10、Spring Boot 2.0、Spring Cloud Finchley.M9(已伦敦地铁站为命令规则),但这些版本还不...

2018-05-09 14:16:47 419

原创 CGLIB(Code Generation Library)详解

什么是CGLIBCGLIB是一个强大的、高性能的代码生成库。其被广泛应用于AOP框架(Spring、dynaop)中,用以提供方法拦截操作。Hibernate作为一个比较受欢迎的ORM框架,同样使用CGLIB来代理单端(多对一和一对一)关联(延迟提取集合使用的另一种机制)。CGLIB作为一个开源项目,其代码托管在github,地址为:https://github.com/cglib/cglib为什...

2018-05-06 08:24:01 430

转载 BeanCopier 与 BeanUtils 及 人工setter之间的比较

同事通过Jmeter压测领券中心接口时发现了查询店铺券的一个性能瓶颈, 定位到瓶颈位于将entity list转成model list处。因为领券中心需展示推荐店铺的店铺券,如一个100个店铺每个店铺的可领店铺券10个的话, 共有1000个店铺券。这个数量级情况下 通过BeanUtils.copyProperties的方式来自动转化相比人工setter的话, 性能差了很多。如下所示使用BeanUt...

2018-05-06 08:17:10 696

kubernetes权威指南(第二版)绝对完全

最新的kubernetes,2016年10月版

2017-04-26

题解PMBOK指南(pmp第五版)

辅助PMP考试,我就是通过此书学习通过考试的,本书由于上传大小限制分两部份

2015-12-08

题解PMBOK指南(pmp第五版)

我就是通过此书学习通过考试的,本书由于上传大小限制分两部份

2015-12-08

java 架构设计示例文档

论文文件,电子书,写架构设计文档的参考示例。.NET也可参考

2015-03-29

疯狂JAVA讲义2012part7

疯狂JAVA讲义(第2版)2012,李刚,共7部,因我只能上传60M

2014-12-25

疯狂JAVA讲义2012part6

疯狂JAVA讲义(第2版)2012,李刚,共7部,因我只能上传60M

2014-12-24

疯狂JAVA讲义2012part5

疯狂JAVA讲义(第2版)2012,李刚,共7部,因我只能上传60M

2014-12-24

疯狂JAVA讲义2012part4

疯狂JAVA讲义(第2版)2012,李刚,共7部,因我只能上传60M

2014-12-24

疯狂JAVA讲义2012part3

疯狂JAVA讲义(第2版)2012,李刚,共7部,因我只能上传60M

2014-12-24

疯狂JAVA讲义2012part2

疯狂JAVA讲义(第2版)2012,李刚,共7部,因我只能上传60M

2014-12-24

疯狂JAVA讲义2012part1

疯狂JAVA讲义(第2版)2012,李刚,共7部,因我只能上传60M

2014-12-24

空空如也

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

TA关注的人

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