自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (2)
  • 收藏
  • 关注

原创 解析阿里开源混沌工程工具ChaosBlade是什么?

微信公众号:内核小王子关注可了解更多关于数据库,JVM内核相关的知识;如果你有任何疑问也可以加我pigpdong[1]高可用架构是保障服务稳定性的核心。混沌工程我们可以把混沌工程看作揭示分布式系统中未知的弱点而进行的实验。混沌工程师通过应用一些经验探索的原则,来学习观察系统是如何反应的。这就跟科学家做实验去学习物理定律一样,混沌工程师通过做实验去了解系统。混沌工程是在分布式系...

2019-05-27 18:54:41 272

原创 轻松构建微服务之服务注册和发现

微信公众号:内核小王子关注可了解更多关于数据库,JVM内核相关的知识;如果你有任何疑问也可以加我pigpdong[^1]前言为什么需要服务注册中心? 随着服务数量的扩张,我们需要服务调用方能够自动感知到服务提供方的地址,当我们对服务提供方进行横向扩展的时候,服务调用方能够自动感知到,这就需要服务提供方能够在启动或者关闭的时候自动向注册中心注册,而服务调用方直接询问注册中心就可以知道具...

2019-05-21 16:01:04 219

原创 轻松构建微服务之分布式配置中心

微信公众号:内核小王子关注可了解更多关于数据库,JVM内核相关的知识;如果你有任何疑问也可以加我pigpdong[^1]前言日常开发中我们的应用中一般都会有数据库相关的配置,redis相关的配置,log4j相关的配置 等常用配置,这些我们称为静态配置,在应用启动的时候就需要加载,修改配置需要重启应用,这类配置一般是针对相关资源的访问地址和访问权限,还有一类配置和业务密切相关,应用在运行...

2019-05-21 15:56:27 168

原创 轻松构建微服务之服务治理

微信公众号:内核小王子关注可了解更多关于数据库,JVM内核相关的知识;如果你有任何疑问也可以加我pigpdong[^1]API网关依据系统的运行情况,自动的进行流量调度,在无需人工干预的情况下,提升整个系统的稳定性,让系统应对爆品等突发事件的时候,在依赖弹性计算进行扩容的时间窗口内避免底层资源被耗尽.流量调度一般放在API网关里面做,所以API网关需要有以下特点,业务逻辑简单,能够支...

2019-05-21 15:54:23 195

原创 轻松构建微服务之分布式任务调度

微信公众号:内核小王子关注可了解更多关于数据库,JVM内核相关的知识;如果你有任何疑问也可以加我pigpdong[^1]前言     我们在应用开发的时候,应该都碰到过这种需求:每天固定时间点跑一个任务;创建一些临时的任务去初始化数据或者做数据迁移;固定一个时间周期去轮询是否有新的状态发生;在java中有两个类可以帮我们处理这种需求,一个是ja...

2019-05-21 15:51:35 1000

原创 轻松构建微服务之远程调用

微信公众号:内核小王子关注可了解更多关于数据库,JVM内核相关的知识;如果你有任何疑问也可以加我pigpdong[^1]前言前面我们了解了,服务调用方和服务提供方,如何能够通过注册中心做到水平扩展,从而满足高可用和高并发,那么服务之间如何才能实现相互调用呢?综合上一节的内容,服务双方无非就两种模式,一种直接通过网络调用,另一种通过中间代理进行转发,那么无论哪一种我们只需要在服务双方通...

2019-05-21 15:50:20 496

原创 轻松构建微服务之高效缓存

微信公众号:内核小王子关注可了解更多关于数据库,JVM内核相关的知识;如果你有任何疑问也可以加我pigpdong[^1]前言在分布式系统中最好耗性能的地方就是最后端的数据库,一般情况下数据库上的insert操作很快,而update和delete操作如果带有索引也不会慢,前提要控制好单表的数据量,并且不要建太多索引,而最容易出现性能问题的往往是select语句,我们抛开join和gro...

2019-05-21 15:49:04 137

原创 轻松构建微服务之分布式锁

微信公众号:内核小王子关注可了解更多关于数据库,JVM内核相关的知识;如果你有任何疑问也可以加我pigpdong[^1]前言在多线程情况下访问资源,我们需要加锁来保证业务的正常进行,JDK中提供了很多并发控制相关的工具包,来保证多线程下可以高效工作,同样在分布式环境下,有些互斥操作我们可以借助分布式锁来实现两个操作不能同时运行,必须等到另外一个任务结束了把锁释放了才能获取锁然后执行,因...

2019-05-21 15:47:54 107

原创 轻松构建微服务之docker和高效发布

微信公众号:内核小王子关注可了解更多关于数据库,JVM内核相关的知识;如果你有任何疑问也可以加我pigpdong[^1]docker我们先来了解下docker的原理,如何才能制造出一个真正隔离的软件运行环境.namespacedocker在创建容器进程的时候可以指定一组namespace参数,这样容器就只能看到当前namespace所限定的资源,文件,设备,网络。用户,配置信息,而...

2019-05-21 15:46:30 184

原创 轻松构建微服务之监控平台

微信公众号:内核小王子关注可了解更多关于数据库,JVM内核相关的知识;如果你有任何疑问也可以加我pigpdong[^1]前言随着微服务化,以及集群规模化,传统的日志检索,指标监控,调用链分析作为功能单一的系统,已经无法更好的帮我们分析问题,我们需要一个监控平台将他们之间的数据进行整合和分析,输出更友好的视图给用户.指标报警 -> 应用 -> 服务 -> 事物 -&...

2019-05-21 15:45:02 261

原创 轻松构建微服务之分库分表

微信公众号:内核小王子关注可了解更多关于数据库,JVM内核相关的知识;如果你有任何疑问也可以加我pigpdong[^1]前言一般来说,影响数据库最大的性能问题有两个,一个是对数据库的操作,一个是数据库中的数据太大,对于前者我们可以借助缓存来减少一部分读操作,针对一些复杂的报表分析和搜索可以交给hadoop和elasticsearch,对于后者,我们就只能分库分表,读写分离。互联网行业...

2019-05-21 15:42:54 354

原创 Java和操作系统交互细节

结合 CPU 理解一行 Java 代码是怎么执行的根据冯·诺依曼思想,计算机采用二进制作为数制基础,必须包含:运算器、控制器、存储设备,以及输入输出设备,如下图所示.(该图来源于百度)我们先来分析 CPU 的工作原理,现代 CPU 芯片中大都集成了,控制单元,运算单元,存储单元.控制单元是 CPU 的控制中心, CPU 需要通过它才知道下一步做什么,也就是执行什么指令,控制单元又包含:指令...

2019-05-17 16:50:30 299

原创 jdk 中的 wait() sleep() 竟然还有个带纳秒的参数, 请问你是来逗我的么?

jdk 中的 wait() sleep() 竟然还有个带纳秒的参数, 请问你是来逗我的么?一次偶然翻 jdk 代码,发现 jdk 中的 wait() , sleep() 方法,竟然还有个支持纳秒的参数,我一想 1 纳秒光也只能跑3米,现代硬件真能支持纳秒级的定时任务么? 不过一看实现,发现是 jdk 在跟我们开玩笑呢,今天我们就来聊聊JVM 中的时间精度.好了,我们先来看看这两个逗比方法的实现...

2019-05-17 16:49:48 808 1

原创 通过MySQL存储原理来分析排序和锁

先抛出几个问题1.为什么不建议使用订单号作为主键?2.为什么要在需要排序的字段上加索引?3.for update 的记录不存在会导致锁住全表?4.redolog 和 binlog 有什么区别?5.MySQL 如何回滚一条 sql ?6.char(50) 和 varchar(50) 效果是一样的么?索引知识回顾对于 MySQL 数据库而言,数据是存储在文件里的,而为了能够快速定位...

2019-05-17 16:49:18 72

原创 最全的JAVA知识汇总(附讲解和思维导图)

TCP Implementation in Linux: A Brief Tutorial一个简单教程关于 TCP 协议在 linux 内核的实现翻译:内核小王子 (欢迎订阅微信公众号)原文:Helali Bhuiyan, Mark McGinley, Tao Li, Malathi Veeraraghavan University of Virginia原文链接 TCP Implemen...

2019-05-17 16:48:43 392

原创 网络内核之TCP是如何发送和接收消息的

网络内核之TCP是如何发送和接收消息的老规矩,带着问题阅读:三次握手中服务端做了什么?为什么要将accept()单独一个线程而不是和读写的io线程共用一个线程池?netty分为boss和worker当调用send()返回后数据就一定到对方或者在网线中传输了呢?我们先来回顾一下,我们编写一个网络程序有哪些步骤? 基于socket的编程:代码如下:public class Serve...

2019-05-17 16:48:09 207

原创 记录一次http网络超时的排查过程

微信公众号:内核小王子觉得可以的话欢迎关注场景:公司对外网关对很多外部商户开放,运行多年一直正常,昨天某一个客户调用我们接口的时候频繁报connectiontimeout,异常如下:该异常来自于httpclient,原因是创建连接超时,也就是tcp进行三次握手的时候失败,或者握手报文没有到达服务端。分析可能有如下原因:1.报文发送太频繁,而客户防火墙性能太差,将报文丢弃2.我们服...

2019-05-17 16:45:47 663

原创 Java和操作系统交互细节

结合 CPU 理解一行 Java 代码是怎么执行的根据冯·诺依曼思想,计算机采用二进制作为数制基础,必须包含:运算器、控制器、存储设备,以及输入输出设备,如下图所示。(该图来源于百度)我们先来分析 CPU 的工作原理,现代 CPU 芯片中大都集成了,控制单元,运算单元,存储单元。控制单元是 CPU 的控制中心, CPU 需要通过它才知道下一步做什么,也就是执行什么指令,控制单元又包含:指令...

2019-04-10 19:51:33 88

原创 通过MySQL存储原理来分析排序和锁

先抛出几个问题1.为什么不建议使用订单号作为主键?2.为什么要在需要排序的字段上加索引?3.for update 的记录不存在会导致锁住全表?4.redolog 和 binlog 有什么区别?5.MySQL 如何回滚一条 sql ?6.char(50) 和 varchar(50) 效果是一样的么?索引知识回顾对于 MySQL 数据库而言,数据是存储在文件里的,而为了能够快速定位...

2019-04-10 19:50:34 76

微服务架构下源码分析

微服务架构下源码分析,包含链路监控,配置中心,服务发布

2019-04-11

间隙锁原理

java 间隙锁实现原理,包含一条sql语句的加锁流程,mysql底层的存储

2019-04-11

空空如也

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

TA关注的人

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