
后端
文章平均质量分 72
陌北有棵树
AI世界探路者,量化小白成长中,公众号同名「陌北有棵树」
展开
-
【Java工具箱】JDK内置的工具
javap - Java反编译工具,根据字节码反汇编为Java代码jps - 显示当前所有进程的Pidjstat - 监控虚拟机,在jvm性能优化时经常用到e.g jstat -gc -h10 pid 1000 每1秒更新一次pid进程的gc情况jcmd - jps的替代工具,可以查看本地jvm信息jinfo - 查看jvm的全部参数jhat - 分析Java堆的命令jmap - 打印进程内存中对象的情况,在内存泄露或内存溢出时经常用到的命令.原创 2020-05-20 01:07:42 · 324 阅读 · 0 评论 -
【Linux】Vim常用操作
复制粘贴(命令模式)复制:yy/yw粘贴:p光标移动(命令模式)左下上右:h/j/k/l跳到文件头:gg跳到文件尾:G行内光标移动:移动到行首:^移动到行尾:$按单词移动:向前:w,2w……;向后:b,2b……查找(命令模式)查找关键字:/关键字查找与替换(全文)::%s/关键字/替换内容/gc特定行之间查找与替换(例如10-20行)::10,20s/关...原创 2020-02-27 11:03:52 · 246 阅读 · 0 评论 -
【微服务】关于分布式链路追踪
本篇的主要思路在于从分布式链路的思想开始,接下来介绍应用较广泛的开源实现Zipkin,最后对Spring Cloud Sleuth这个具体的解决方案进行说明。追踪链的思想追踪链的思想起初来源于Google关于Dapper的论文。核心思想在于:当一个请求经过多个服务,收集每个服务处理的具体执行情况。目前有很多机遇Dapper的开源实现,例如Zipkin,HTrace,SkyWalking等。为...原创 2020-02-17 01:13:08 · 381 阅读 · 0 评论 -
【分布式】高并发下的性能利器——缓存
俗话说得好,在计算机领域,没有什么事情是不能通过一个中间层解决的,所以我们看到,在操作系统中有Cache,网络环境中有CDN,MySQL中有缓冲池,分布式系统中有分布式缓存,真理就是如此言简意赅。李智慧老师在《大型网站技术核心原理与案例分析》一书中也说网站性能优化第一定律:优先考虑使用缓存优化性能。初识缓存首先来看缓存定义缓存是指将数据存储在相对较高访问速度的存储介质中Trad...原创 2020-02-13 01:11:15 · 327 阅读 · 0 评论 -
【微服务】Dubbo的最佳实践
以下是Dubbo的一些最佳实践整理,可以当做一张Dubbo的使用说明书,具体的原理分析后续再详写,这里就言简意赅的说明用法,且大部分来自官方文档:【一】服务化最佳实践分包服务接口、服务模型、服务异常等均放在 API 包中,符合REP(重用发布原则),CRP(共同重用原则)粒度服务接口尽可能大粒度,避免分布式事务,因为Dubbo暂未提供分布式事务支持。服务接口建议以业务场景为...原创 2020-02-10 21:56:54 · 1998 阅读 · 0 评论 -
【微服务】Service Mesh调研文档
【一】Service Mesh介绍1. 基本概念Service Mesh(服务网格)是 CNCF(Cloud Native Computing Foundation,云原生计算基金会)目前主力推动的新一代的微服务架构。第一篇关于Service Mesh的文章What’s a service mesh? And why do I need one?,这篇文章对Service Mesh理念的知识源...原创 2020-02-09 21:46:42 · 426 阅读 · 0 评论 -
【MySQL】关于InnoDB架构组成的学习
关于MySQL对于后端程序员的重要性不言而喻,而InnoDB也已经是MySQL默认的存储引擎。作为我们每天打交道的存储引擎,我们对它可能需要对它有更多的了解。这样对于很多灵异事件,才能从容应对。本次文章的内容大部分来自MySQL8.0的官方文档,之所以没有选择现成的资料,而去挑战自己的弱点——英语。是因为最近意识到,学习知识应该到知识的源头,可能最开始会很吃力,但我相信对于后续的技术提升一定是有...原创 2019-09-08 15:21:41 · 266 阅读 · 0 评论 -
【Java】盘点框架常用底层技术 —— Java反射
【一】简介允许运行时的Java程序获取自身信息,同时操作类或对象的内部属性,最通俗易懂的解释,就是让你根据一个String来得到你要的实体对象功能:运行时判断对象所属类运行时构造类的对象运行时判断类的属性和方法运行时调用任意一个类的方法下面是相关的四个类,包含了我们定义一个类所能用到的所有属性和方法。ClassFieldMethodConstructor【二】...原创 2019-08-15 21:32:51 · 228 阅读 · 0 评论 -
【微服务】服务发现:Eureka源码分析(一)基本流程
【一】微服务之服务发现概述关于微服务,近年来可谓是大火,业界也吹刮着一种实践微服务的风潮。本人有幸在去年参与到一个向微服务过渡的产品,再结合自己所学的一些知识做一个总结,同时也是一个继续学习的过程。如果说在实施微服务的所有经验中,挑出最重要的一点,那么我觉得应该是:基础设施的建设决定微服务的实施效果后面可能会写一篇关于具体踩坑的总结,大多也是关于基础设施组件的。如果在实施微服务的过程中...原创 2019-08-15 12:53:13 · 281 阅读 · 0 评论 -
【Linux】随记一个Linux全缓冲机制带来的小坑
在日常工作中,通过 tail+grep 查看日志,可能是一个程序员最常用的操作之一了。但最近遇到了一个由于Linux全缓冲机制带来的小坑,特此记录一下。在进行用户行为打点日志文件的实时监控时,遇到这样一个问题:采用的命令如下:tail -300f XXX.log | grep "XXX" | grep "YYY"发现并没有实时grep出符合条件的日志记录,经过排查最后得出结论,原来是L...原创 2019-08-11 12:53:46 · 406 阅读 · 0 评论 -
【Kafka】优秀特性的底层原理分析
【Kafka】优秀特性的底层分析目前市面上各种中间件层出不穷,我们在做具体的选型时难免会纠结,在这里阐述点粗浅的看法,其实每个中间件在其设计上,都有其独有的特点或优化点,这些恰好应该是我们所关注的,这样才能做到物尽其用,将其特性发挥到最大;同时还要了解它们各自的劣势,这主要为了避坑。各种中间件就像是积木,我们能做的,就是选择合适形状的积木,搭出需要的房子。不得不说Kafka这块积木,既能做消息...原创 2019-07-29 06:37:59 · 213 阅读 · 0 评论 -
【MySQL】深入分析MySQL索引机制的实现
数据库是一个只要从事后端开发,就永远离不开的技术,大部分企业选择的数据库都是MySQL,所以需要我们对MySQL有着足够的了解。而MySQL索引,我们都知道提高性能要加索引,也知道索引的结构是B-Tree,也都可以说出几条加索引的原则,但再深入一点,往往就会词穷,这可能就是知其然而不知其所以然的结果了。这会让我们在实际的开发中,涉及到究竟要给哪个字段加索引,就“拄杖落手心茫然”了。于是我就问了...原创 2019-08-05 13:00:35 · 239 阅读 · 0 评论 -
【Java】盘点Java框架常用技术 —— JDK动态代理
书接上文,在分析注解的原理时说道:“通过getAnnotation()方法获取一个注解的时候,JDK会通过动态代理生成注解的代理类$Proxy1”,但没有继续分析JDK动态代理,动态代理在各种框架中也经常被使用,比较典型的是Spring AOP,其中有两种实现动态代理的方式,分别是基于JDK的动态代理和基于CGLib的动态代理,本篇先分析基于JDK的动态代理。【一】实验:实现基于JDK的动态代理...原创 2019-08-08 12:58:51 · 408 阅读 · 0 评论 -
【盘点Java框架常用技术】 Java注解
当我们阅读框架源码时,会看到其中包含着大量的注解,注解被广泛使用的原因在于,可以生成一些通用的“模板化”代码,来避免重复性的工作。使用注解的工作模式是,通过注解来描述我们的意图,然后用注解解析工具对注解进行解析。【一】实验:自定义注解首先我们通过 @interface关键字定义一个注解@Tree,定义注解时,需要定义两个内容:元注解,注解属性。@Target(ElementType.METH...原创 2019-08-07 12:48:11 · 184 阅读 · 0 评论 -
【SpringBoot】深入分析SpringBoot如何内嵌Tomcat容器
【一】总述SpringBoot的诞生,极大的简化了Spring框架的使用过程,提升了开发效率,可以把它理解为一个整合包,使用了SpringBoot,就可以不用自己去进行繁琐的配置,通过几个简单的注解,就可以构建一个基于REST的服务。同时,SpringBoot的快速构建部署的特性,为当下大热的微服务落地提供了极大的便利,可以说是构建微服务的理想框架。归纳来说SpringBoot的特性有如下几点...原创 2019-08-07 12:59:18 · 5825 阅读 · 2 评论 -
【设计模式】一次代码重构后对策略模式的思考
经常看到有人把软件开发和建筑行业类比,把架构师比作工程师,个人觉得还是有一定区别的,建筑行业的成品一旦落成,是不变的,而软件面向的是变化。但相同点是,如果内心有一种现在大力鼓吹的“匠人精神”,都会让作品更优美吧。建筑行业不太了解不做过多评论,作为码农一枚,如果能时常审视自己代码,反思设计的是不是美观,代码是不是流畅,相信是会写出好的作品的。而设计模式往往可以帮助我们写出更精致的作品。【一】需求引...原创 2019-08-09 22:07:17 · 236 阅读 · 0 评论