自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(198)
  • 收藏
  • 关注

转载 年轻人的第一个APM-Skywalking

前言什么是APM?全称:Application Performance Management可以参考这里:现代APM体系,基本都是参考Google的Dapper(大规模分布式系统的跟踪系统)的体系来做的。通过跟踪请求的处理过程,来对应用系统在前后端处理、服务端调用的性能消耗进行跟踪,关于Dapper的介绍可以看这个链接:Dapper,大规模分布式系统的跟踪系统 by bigbully作者:刀把五...

2019-01-11 15:24:29 1502

转载 升级内核后如何删除旧内核

在升级新的内核后,如何删除旧的内核文件?举例来说,假设我们刚刚运行了 apt-get dist-upgrade 升级到了仓库中最新的内核版本(如从 3.2.0-30 升级到了 3.2.0-34)Default$ sudo apt-get dist-upgradeReading package lists… DoneBuilding dependency treeReading stat...

2019-01-11 14:10:31 1869

转载 更新linux内核方法

背景:买了块网件的A6210无线网卡,用的是mt7612u芯片,插到deepin下不能识别,ubuntu 18.04下同样不能识别,查过内核版本号,用的都是4.15的内核,去Github查了Linux内核仓库,确认4.15内核里没有mt7612u的驱动,Github上有几个其他的驱动试了试居然会编译出错,后来我查到OpenWRT的mt76驱动是支持mt7612u的,而且这个驱动在4.19的时候就被...

2019-01-11 14:09:03 3533

转载 企业最大的危机,永远来在于内部

员工缺乏危机感,不能用主人公心态来看待公司发展,常常是管理者痛心疾首的一件事情。其实,危机意识的关键是高管团队,基层员工更需要有安全感。如果基层一直没有危机意识,那么他们就做不好本职工作,甚至影响工作的品质和成本。反过来,如果基层有危机感,而高层没有,后果更可怕。不管企业处于什么样的环境,在组织维度上,它始终面临着两大挑战:1、组织能不能适应不断变化的外部环境?2、组织内部能不能保...

2018-07-19 17:22:00 1422 1

转载 一文说尽 MySQL 优化原理

作者:CHEN川 来自:https://www.jianshu.com/p/d7665192aaaf 说起MySQL的查询优化,相信大家收藏了一堆奇技淫巧:不能使用SELECT *、不使用NULL字段、合理创建索引、为字段选择合适的数据类型….. 你是否真的理解这些优化技巧?是否理解其背后的工作原理?在实际场景下性能真有提升吗?我想未必。因而理解这些优化建议背后的原理就尤为重要,...

2018-06-22 09:54:49 446

转载 Java NIO浅析

NIO(Non-blocking I/O,在Java领域,也称为New I/O),是一种同步非阻塞的I/O模型,也是I/O多路复用的基础,已经被越来越多地应用到大型应用服务器,成为解决高并发与大量连接、I/O处理问题的有效方式。 那么NIO的本质是什么样的呢?它是怎样与事件模型结合来解放线程、提高系统吞吐的呢? 本文会从传统的阻塞I/O和线程池模型面临的问题讲起,然后对比几种常见I/O模型,一...

2018-06-11 15:06:33 404

原创 Spring:源码解读Spring IOC原理

一、什么是Ioc/DI?IoC 容器:最主要是完成了完成对象的创建和依赖的管理注入等等。 先从我们自己设计这样一个视角来考虑: 所谓控制反转,就是把原先我们代码里面需要实现的对象创建、依赖的代码,反转给容器来帮忙实现。那么必然的我们需要创建一个容器,同时需要一种描述来让容器知道需要创建的对象与对象的关系。这个描述最具体表现就是我们可配置的文件。 对象和对象关系怎么表示?可以用 xml ,...

2018-06-11 11:20:09 631

原创 JUC系列-Executor框架

1. 什么是线程池线程池:管理一组工作线程的资源池。2. 为什么使用线程池 1.避免反复创建回收线程,降低资源消耗。 2.提供线程的可管理性。 3.提高响应速度3. 如何创建线程池ThreadPoolExecutor是jdk提供的线程池的服务类,基于ThreadPoolExecutor可以很容易将一个实现Runnable接口的任务放入线程池中执行,下面是Thr...

2018-06-06 20:41:31 476

转载 netty源码分析之nio线程个数以及线程命名规则

概述netty是一个以高性能著称的网络通信框架,许多开源项目都使用了netty作为底层网络通信框架,如avro,dubbo,nats;本文将从源码的角度讲述netty在确定线程个数方面如何保证应用程序性能最优,源码基于netty-4.1.6.Final线程个数在何时达到最优我们知道,在一个应用中,如果cpu计算的时间为Tcpu,io操作的时间为Tio,系统的cpu核数为Ncpu,线程个...

2018-06-06 16:31:08 2676

转载 MySQL索引背后的数据结构及算法原理

来自:CodingLabs ,作者:张洋 ,微博@敲代码的张洋 https://www.itcodemonkey.com/article/4034.html摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全...

2018-06-06 15:51:05 251

转载 netty源码分析之服务端启动全解析

作者:简书闪电侠 链接:https://www.jianshu.com/p/c5068caab217 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。1. backgroundnetty 是一个异步事件驱动的网络通信层框架,其官方文档的解释为 Netty is a NIO client server framework wh...

2018-06-06 11:32:37 308

转载 JS中的八种常用的跨域方式及其具体示例的总结

JS中的八种常用的跨域方式及其具体示例的总结 这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据。 跨域问题是由于javascript语言安全限制中的同源策略造成的。 简单来说,同源策略是指一段脚本只能读取来自同一来源的窗口和文档的属性,这里的同一来源指的是域名、协议...

2018-06-05 10:08:44 318

转载 分布式环境Raft一致性共识算法解读

Raft是分布式环境下的一致性算法,它通过少数服从多数的选举来维持集群内数据的一致性。它与RBFT算法名称有点像,然而Raft算法里不能存在拜占庭节点,而RBFT则能容忍BFT节点的存在。Raft非常类似于paxos协议(参见我的这篇文章《paxos算法如何容错的–讲述五虎将的实践》),然而它比paxos协议好理解许多(因为paxos协议难以具体实现,所以zookeeper参考paxos实现了它自...

2018-06-04 15:16:11 734

转载 paxos算法如何容错的--讲述五虎将的实践

(本文包括章节:1、由来,2、算法简单回顾,3、演习道具,4、演习,5、算法提出者Leslie的八卦。hoho)1. 由来刘备接受了诸葛亮的提议,决定将paxos算法的思想应用到蜀帝国的决策机制上。然而,玄德生性谨慎,决定先行试点,实践下可行性。孔明提议,由蜀国五大肌肉男:关羽、张飞、赵云、马超、黄忠,做为决策者,而廖化、周仓、魏延分别无序的提出关于同一件事的水火不容的三个提案,孔明坚信:...

2018-06-04 14:46:41 552

转载 paxos分布式一致性算法--讲述诸葛亮的反穿越

1. 引子一日,诸葛亮找到刘备,突然献上一曲《独角戏》,而后放声大哭。刘备正沉醉于新曲,暗叹孔明大才,竟作得如此不凡仙乐,看到孔明忽而大悲,慌问:“水,何事悲恸?” 诸葛亮止住抽泣:“亮自主公三顾茅庐出山以来,蒙主公厚爱,自比如鱼得水,敢不尽力?然每日击鼓升帐,皆亮一人在上唱独角戏,众将在下唯唯诺诺,只是照亮的安排做事。如此下去,亮日后定会被司马懿那厮累死呀。” 刘备眨着充满问号的大眼睛:...

2018-06-04 14:30:51 227

转载 浅析线性递归和尾递归

1. 定义线性递归:也即是普通递归,单向递归,线性递归函数的最后一步操作不是递归操作,而是其他的操作。当数据量很大的时候,会造成栈溢出,这是因为,在每次递归调用时,递归函数中的参数,局部变量等都要保存在栈中,如果数据量很大的话,便可能会溢出。 尾递归:也即是线性迭代,尾递归函数的最后一步操作是递归,也即在进行递归之前,把全部的操作先执行完,这样的好处是,不用花费大量的栈空间来保存上次递归中的...

2018-05-31 10:18:42 1940 1

转载 Java 9和Spring Boot 2.0纷纷宣布支持的HTTP/2到底是什么?

关于HTTP/2,最近你可能没少听到过他。首先,如果你了解过Java 9的特性,那么你会发现在Java9中,提供了新的方式来处理HTTP调用,提供了新的HTTP Client,将替代HttpURLConnection,并提供对WebSocket和HTTP/2的支持。还有前两天刚刚发布的Spring Boot 2.0 的新特性中,也会看到,Spring Boot 2.0支持的Web容器中Tomcat...

2018-05-31 09:23:13 3838

转载 深入理解HTTP协议

1. 基础概念篇1.1 介绍客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式 WEB浏览器与WEB服务器之间的一问一答的交互过程必须遵循一定的规则,这个规则就是HTTP协议。 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(Wo...

2018-05-30 11:26:23 515

转载 深入分析ThreadLocal

1. ThreadLoacal是什么?ThreadLocal是啥?以前面试别人时就喜欢问这个,有些伙伴喜欢把它和线程同步机制混为一谈,事实上ThreadLocal与线程同步无关。ThreadLocal虽然提供了一种解决多线程环境下成员变量的问题,但是它并不是解决多线程共享变量的问题。那么ThreadLocal到底是什么呢? API是这样介绍它的:This class provides thr...

2018-05-28 20:20:16 272

转载 Redis内存模型

1. 前言Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分。 我们使用Redis时,会接触Redis的5种对象类型(字符串、哈希、列表、集合、有序集合),丰富的类型是Redis相对于Memcached等的一大优势。在了解Redis的5种对象类型的用法和特点的基础上,进一步了解Redis的内存模型,对Redis的...

2018-05-28 19:52:18 206

转载 Nginx 负载均衡配置和策略

Nginx 的 HttpUpstreamModule 提供对后端(backend)服务器的简单负载均衡。一个最简单的 upstream 写法如下:upstream backend { server backend1.example.com; server backend2.example.com; server.backend3.example.com;}serve...

2018-05-28 16:13:11 202

原创 Spring 框架的设计理念与设计模式分析

1. Spring 的骨骼架构Spring 总共有十几个组件,但是真正核心的组件只有几个,下面是 Spring 框架的总体架构图:Spring 框架的总体架构图 从上图中可以看出 Spring 框架中的核心组件只有三个:Core、Context 和 Beans。它们构建起了整个 Spring 的骨骼架构。没有它们就不可能有 AOP、Web 等上层的特性功能。下面也将主要从这三个组件入手分...

2018-05-28 16:02:29 556

原创 MySQL数据库表设计优化

1. 选择优化的数据类型MySQL支持很多种不同的数据类型,并且选择正确的数据类型对于获得高性能至关重要。不管选择何种类型,下面的简单原则都会有助于做出更好的选择: (1).更小通常更好 一般来说,要试着使用正确地存储和表示数据的最小类型。更小的数据类型通常更快,因为它们使用了更少的磁盘空间、内存和CPU缓存,而且需要的CPU周期也更少。 但是要确保不能低估需要保存的值,在架构中的多个地...

2018-05-28 10:12:44 378

原创 Mysql之数据库设计规范

1. 三大范式首先要明白”范式(NF)”是什么意思。按照教材中的定义,范式是“符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度”。数据库范式也分为1NF,2NF,3NF,BCNF,4NF,5NF。一般在我们设计关系型数据库的时候,最多考虑到BCNF就够。符合高一级范式的设计,必定符合低一级范式,例如符合2NF的关系模式,必定符合1NF。1.1 第一范式消除一...

2018-05-28 09:58:37 6957

原创 MySQL权限管理总结

1. 概述我们在安装Mysql时会自动安装一个名为mysql的数据库。这个数据库下面存储的是权限表。我们可以使用:show databases ;命令来查看所有的数据库列表。 Mysql会根据这些权限表的内容为每个用户赋予相应的权限,所以我们也是通过这些表来实现管理用户和权限的,如下图所示是在mysql数据库中存在的表: MySQL存取控制包含2个阶段: 阶段1:服务器检查你是否允许...

2018-05-25 16:15:39 897

原创 mysql日志总结

1. 概述与大多数关系型数据库,日志文件是MySQL数据库的一个重要组成部分。MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等。 这些日志能够帮助我们定位mysqld内部发生的事件,数据库性能故障。记录数据的变更历史,用户恢复数据库等等。2. mysql日志组成(1)错误日志:记录启动、运行或停止mysqld时出现的问题。 (2)通用...

2018-05-25 11:45:30 807

原创 TCP接入层的负载均衡、高可用、扩展性架构

1. web-server的负载均衡 互联网架构中,web-server接入一般使用nginx来做反向代理,实施负载均衡。整个架构分三层: (1)上游调用层,一般是browser或者APP (2)中间反向代理层,nginx (3)下游真实接入集群,web-server,常见web-server的有tomcat,apache 整个访问过程为: (1)browser向daojia.co...

2018-05-25 10:32:33 244

转载 深入理解Eureka之源码解析

本文转自: http://blog.csdn.net/forezp/article/details/730176641. Eureka的一些概念Register:服务注册当Eureka客户端向Eureka Server注册时,它提供自身的元数据,比如IP地址、端口,运行状况指示符URL,主页等。Renew:服务续约Eureka客户会每隔30秒发送一次心跳来续约。 ...

2018-05-24 20:03:39 3196

转载 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)

本文转自: http://blog.csdn.net/forezp/article/details/696969151. spring cloud简介spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。它运行环境简单,可以在开发人员的电脑上跑。另外说明spring...

2018-05-24 19:36:24 336

原创 mysql存储过程和函数总结

1. 概述存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。 ——百度百科 如图所示,在普通模式下获取数据,用户需要输入SQL命令与数据库进行交互,而存储过程是编写好的S...

2018-05-24 16:24:54 6521

原创 mysql视图总结

1. 概述视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。——百度百科 关系型数据库中的数据是由一张一张的二维关系表所组成,简单的单表查询只需要遍历一个表,而复杂的多表查询需要将多个表连接起来进行查询任务。对于...

2018-05-24 15:22:17 2146

原创 mysql索引总结

1. 概述索引是在存储引擎中实现的,因此每种存储引擎的索引都不一定完全相同,并且每种存储引擎也不一定支持所有索引类型。根据存储引擎定义每个表的最大索引数和最大索引长度。所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节。大多数存储引擎有更高的限制。MYSQL中索引的存储类型有两种:BTREE和HASH,具体和表的存储引擎相关;MYISAM和InnoDB存储引擎只支持BTREE索引...

2018-05-24 11:41:32 243

转载 MySQL 调优/优化的 100 个建议

MySQL是一个强大的开源数据库。随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈。这里提供 101 条优化 MySQL 的建议。有些技巧适合特定的安装环境,但是思路是相通的。我已经将它们分成了几类以帮助你理解。MySQL监控MySQL服务器硬件和OS(操作系统)调优:1、有足够的物理内存,能将整个InnoDB文件加载到内存里 —— 如果访问的文件在内存里,而不是在磁盘上,...

2018-05-24 10:41:22 271

原创 关于MySQL 通用查询日志和慢查询日志分析

1. 概述MySQL中的日志包括:错误日志、二进制日志、通用查询日志、慢查询日志等等。这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志。 1)通用查询日志:记录建立的客户端连接和执行的语句。 2)慢查询日志:记录所有执行时间超过long_query_time秒的所有查询或者不使用索引的查询1.1 通用查询日志在学习通用日志查询时,需要知道两个数据库中的常用命令: sh...

2018-05-24 10:22:24 288

转载 互联网架构“高并发”

1. 什么是高并发高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。 高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。 响应时间:系统对请求做出响应的时间。例如系统处理一个HTTP...

2018-05-23 19:32:49 181

转载 常用linux命令汇总

1.ls [选项] [目录名 | 列出相关目录下的所有目录和文件-a 列出包括.a开头的隐藏文件的所有文件-A 通-a,但不列出"."和".."-l 列出文件的详细信息-c 根据ctime排序显示-t 根据文件修改时间排序---color[=WHEN] 用色彩辨别文件类型 WHEN 可以是'never'、'always'或'auto'其中之一 白色:表示普通文件 ...

2018-05-23 17:06:36 267

原创 Maven系列(五)— 使用Maven构建多模块项目

1. 概述在平时的Javaweb项目开发中为了便于后期的维护,我们一般会进行分层开发,最常见的就是分为domain(域模型层)、dao(数据库访问层)、service(业务逻辑层)、web(表现层),这样分层之后,各个层之间的职责会比较明确,后期维护起来也相对比较容易,今天我们就是使用Maven来构建以上的各个层。 项目结构如下:  parent     |----pom.xml...

2018-05-23 15:40:41 1297

转载 java虚拟机面试干货(八) — JVM配置参数

本文总结一下JVM中常用的配置参数。堆内存相关的JVM参数Xms 设置Java应用程序启动时的初始堆大小。-Xmx 设置Java应用程序能获得的最大堆大小。-Xss 设置线程桟的大小。-XX:MinHeapFreeRatio 设置堆空间最小空闲比例。当堆空间的空闲内存小于这个数值时,JWM便会扩展堆空间。-XX:MaxHeapFreeRatio 设置堆空间的最...

2018-05-23 10:50:48 317

转载 java虚拟机面试干货(七)— class的执行

在之前的文章中,我们大致总结了JVM的执行过程如下: 当class文件被类加载器加载到内存(栈)后,由执行引擎对字节码进行解析或等效处理后,最后输出结果。下面就说说这个执行引擎是如何工作的。栈帧栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈(Virtual Machine Stack)的栈元素。 栈帧存储了方法的局...

2018-05-23 10:49:07 252

转载 java虚拟机面试干货(六)— 垃圾回收:垃圾收集器

本文我们说说垃圾收集器,先明确几个概念: 串行(serial):单线程,按顺序依次执行多任务; 并行(Parallel):多线程,多个相同任务在一个实体上执行; 并发(Concurrent):多线程,多个不同任务在一个实体上执行; 明确好上面概念以后,有助于我们介绍下面的垃圾收集器:Serial收集器顾名思义,是一个单线程串行垃圾回收器,使用的是复制算法,运行时会stop the ...

2018-05-23 10:37:12 462

空空如也

空空如也

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

TA关注的人

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