前言 如果你有自己的云服务器,并且需要用到内网穿透,那么可以考虑使用FRP搭建自己的内网穿透服务。 常用的内网穿透工具有:cpolar、natapp、向日葵…… 但是以上介绍的工具,如果使用免费版,都有诸多限制(毕竟要恰饭的嘛)。所以,干脆自己弄一个吧。 安装 我使用的版本是 V0.43.0,下面以 http 穿透举例。 下载 在Github的 Release 页面下载对应版本,下面是我下载的版本 服务器:frp_0.43.0_linux_amd64.tar.gz 本地win10:frp_0.43.0_window…

2022年11月1日 0条评论 326点热度 0人点赞 王谷雨 阅读全文

添加远程连接配置 启动远程服务器上的Java项目 在上一个步骤,我们复制了这一串东西 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 这是jvm的启动参数,当我们启动java项目时添加上这串参数,就可以开启远程调试。下面以启动jar包为例: java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 xxx.jar 如果是Docker部署…

2022年9月23日 0条评论 442点热度 0人点赞 王谷雨 阅读全文

前言 最近在写东西部署到服务器,结构是springboot工程配合docker部署。 但是每次部署都3个步骤: 本地构建jar 复制jar到远程服务器 用DockerFile构建镜像 部署次数一多,我就怀疑人生了。就在找有没有IDEA远程部署Docker的方案,于是就有本篇博客。 环境: 本地IP:192.168.1.5 Docker远程主机:192.168.1.199 开启docker remote API docker远程访问api有两种方式: 普通方式(一般用2375端口) TSL方式(一般用2376端口) …

2022年9月22日 0条评论 319点热度 0人点赞 王谷雨 阅读全文

1. 前言 本文基于Dubbo2.6.x版本,中文注释版源码已上传github:xiaoguyu/dubbo 源码分析均基于官方Demo,路径:dubbo/dubbo-demo 如果没有看过之前Dubbo系列的文章,建议先去看看。因为服务调用过程涉及范围较广,需要那些前置知识。 Dubbo 服务调用过程比较复杂,包含众多步骤,比如发送请求、编解码、服务降级、过滤器链处理、序列化、线程派发以及响应请求等步骤。限于篇幅原因,本篇文章无法对所有的步骤一一进行分析。后续挖坑再说吧。本篇文章将会重点分析请求的发送与接收、线程…

2022年8月31日 0条评论 297点热度 0人点赞 王谷雨 阅读全文

前言 本文基于Dubbo2.6.x版本,中文注释版源码已上传github:xiaoguyu/dubbo 负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行。 例如:在Dubbo中,同一个服务有多个服务提供者,每个服务提供者所在的机器性能不一致。如果流量均匀分摊,则会导致有些服务提供者负载过高,有些则轻轻松松,导致资源浪费。负载均衡就解决这个问题。 源码 LoadBalance就是负载均衡的接口,咱们先看看类图 Dubbo提供了4中内置的负载均衡实现: …

2022年8月16日 0条评论 280点热度 0人点赞 王谷雨 阅读全文

前言 本文基于Dubbo2.6.x版本,中文注释版源码已上传github:xiaoguyu/dubbo 集群(cluster)就是一组计算机,它们作为一个总体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。 在Dubbo中,为了避免单点故障,同一个服务允许有多个服务提供者,也允许同时连接多个注册中心。那么,服务消费者引用服务时,该请求哪个注册中心的服务提供者以及调用失败之后该如何处理呢?这些就是Dubbo集群所做的事。 集群容错 在分析集群源码之前,先看看集群容错的所有组件,下图是官方文档的…

2022年8月10日 0条评论 429点热度 0人点赞 王谷雨 阅读全文

前言 本文基于Dubbo2.6.x版本,中文注释版源码已上传github:xiaoguyu/dubbo 今天,来聊点短的,服务路由Router,本文讲的是路由的调用路径,不讲路由的规则解析。想了解规则解析的可以去官方文档:服务路由 Dubbo的路由,就是根据规则,规定了哪些服务消费者可调用哪些服务提供者。 怎么用 我们可以在服务治理控制台Dubbo-Admin写入路由规则。 安装Dubbo-Admin 我是使用docker方式安装的,命令如下: docker run -d \ -p 9001:8080 \ -e a…

2022年8月3日 0条评论 1101点热度 0人点赞 王谷雨 阅读全文

前言 本文基于Dubbo2.6.x版本,中文注释版源码已上传github:xiaoguyu/dubbo 今天,来聊聊Dubbo的服务目录(Directory)。下面是官方文档对服务目录的定义: 服务目录中存储了一些和服务提供者有关的信息,通过服务目录,服务消费者可获取到服务提供者的信息,比如 ip、端口、服务协议等。 服务目录持有Invoker对象集合,Dubbo的服务调用均由Invoker发起。 当服务提供者信息发生变化时(比如某一个服务挂了),服务目录也需要动态调整。 继承体系 服务目录目前内置的实现有两个,分…

2022年7月29日 0条评论 488点热度 0人点赞 王谷雨 阅读全文

前言 本文基于Dubbo2.6.x版本,中文注释版源码已上传github:xiaoguyu/dubbo 上一篇文章,讲了Dubbo的服务导出: Dubbo源码(三) - 服务导出(生产者) 本文,咱们来聊聊Dubbo的服务引用。 本文案例来自Dubbo官方Demo,路径为: dubbo/dubbo-demo/dubbo-demo-consumer/ 服务引用原理 Dubbo服务引用对象的生成,是在ReferenceBean#getObject()方法中 其生成时机有两个: 饿汉式 ReferenceBean对象继承…

2022年7月27日 0条评论 522点热度 0人点赞 王谷雨 阅读全文

前言 本文基于Dubbo2.6.x版本,中文注释版源码已上传github:xiaoguyu/dubbo 在了解了Dubbo SPI后,我们来了解下Dubbo服务导出的过程。 Dubbo的配置是通过DubboNamespaceHandler读取解析的,其中会将Dubbo服务提供者封装成ServiceBean注入Spring容器中。而服务导出就是在ServiceBean的onApplicationEvent开始的。 想了解DubboNamespaceHandler的工作原理,请自行去了解Spring自定义标签,本文略。…

2022年7月25日 0条评论 404点热度 0人点赞 王谷雨 阅读全文
123456