240 发简信
IP属地:北京
  • dubbo client引用远程服务逻辑探究

    本文主要记录下自己阅读源码时的一些理解,本文主要聊下dubbo client是如何引用远程服务的,以使用zookeeper作为注册中心为例。 接口声明及客户端调用方式如下: ...

  • dubbo server服务导出(暴露)过程探究

    本文主要聊下dubbo的服务导出部分,即服务暴露,服务导出的核心接口是 Protocol 的 export方法;暴露的方式可以有很多种(tcp/http/rmi/webser...

  • dubbo server请求处理逻辑探究

    这篇文章主要聊聊 dubbo 的服务端接受请求处理流程 服务端接口声明及实现如下: 在真实业务处理 sayHello return 语句加入断点可以得到如下调用栈: 下面从栈...

  • dubbo client发送逻辑探究

    最近在阅读dubbo的源码,记录下阅读的一些关键点,本文主要探究dubbo客户端请求发送逻辑; 接口声明及客户端调用方式如下: 以dubbo官方demo[https://gi...

  • Kafka源码分析-Content Table

    Kafka源码分析-网络层-1 Kafka源码分析-网络层-2 Kafka源码分析-网络层-3 Kafka源码分析-配置文件 Kafka源码分析-启动流程 Kafka基础组件...

  • 树的遍历

    N叉树的遍历 N叉树的前序遍历 N叉树的后序遍历 N叉树的层序遍历 二叉树 鉴于递归法遍历比较简单,就不重复写了 二叉树的层序遍历 二叉树的深度

  • 120
    Java ProjectReactor框架之Flux篇

    Spring5现处在第四个预发布版,正式版将要发布了,它带来的一大特性就是响应式框架Spring WebFlux。默认使用ProjectReactor框架。因此。本文通过Pr...

  • java异步编程之 future

    工作中发现有些同学在异步编程方面有些困惑,这里讲解一些应对措施。 回调地狱 回调地狱是说我们在异步编程时常用到回调(callback)的方式进行传递返回值,但是假如我们需要保...

  • 120
    jvm-exporter整合k8s+prometheus监控报警

    文章背景:使用Prometheus+Grafana监控JVM[https://chanjarster.github.io/post/prom-grafana-jvm/],这片...

  • 120
    kubernetes集群一键部署prometheus+grafana监控

    Prometheus是CNCF基金会继Kubernetes之后第二个正式项目,是一个开源的完整监控报警解决方案,无外部依赖,单机部署十分简单,可以用各种exporter进行扩...

  • 120
    记一次jvm堆外内存OOM的解决过程

    本文记录一次堆外内存OOM的排查过程。周末的时候同事对线上服务进行了一次扩容,本以为只是简单增加几个实例而已,结果新实例接入流量后疯狂报警,只能马上切换下线,查看日志后发现如...

  • 120
    ElasticSearch源码本地调试指南

    由于ES是当前搜索系统的标杆,在做搜索系统时,有时候需要拿ES的实现方式来作为我们的搜索系统实现方式的参考,这时就需要对ES接口的每个参数进行详细的拆解,搞清楚每个参数的作用...

  • ElasticSearch的match fuzzy查询参数详解

    fuzzy在es中可以理解为模糊查询,搜索本身很多时候是不精确的,很多时候我们需要在用户的查询词中有部分错误的情况下也能召回正确的结果,但是计算机无法理解自然语言,因此我们只...

  • CompletableFuture 使用详解

    1、 runAsync 和 supplyAsync方法 CompletableFuture 提供了四个静态方法来创建一个异步操作。 没有指定Executor的方法会使用For...

  • CMS GC日志解读

    相关FLAG -XX:+PrintGC 开启简单GC日志模式,例: -XX:PrintGCDetails 开启详细GC日志模式,日志格式根据使用的GC算法各不相同 -XX:+...

  • CMS相关flag-1

    CMS被设计为尽可能的减少jvm停顿时间的垃圾收集器,使用标记-清除算法思想,其gc周期分为以下几个过程: Initial Mark:初始标记,单线程,这个过程是需要整个jv...

  • ParNew gc相关flag

    -XX:NewSize -XX:MaxNewSize -XX:NewRatio 年轻代大小的上限和下限,年轻代是不允许比老年代大的,因为极端情况下有可能需要将年轻代的所有对象...