您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

图解Dubbo,Dubbo 服务治理详解

时间:2023-10-17 13:59:15  来源:微信公众号  作者:哪吒编程

当前,分布式服务在互联网行业中得到了广泛应用。然而,分布式服务不仅仅是将单个应用程序分割成不同的模块,还涉及到模块之间的相互合作和协作。

服务治理是分布式服务的一个关键问题,因为它可以帮助开发人员管理不同的服务、协调不同的组件和确保服务的可用性和可靠性。Dubbo 服务治理可以快速实现不同服务之间的通信和调用,因此被广泛应用。

本文将详细介绍

  1. Dubbo 服务治理的架构设计
  2. 注册与发现机制
  3. 负载均衡算法、实现方式、应用场景和优化措施。

通过本文,读者可以更深入地了解 Dubbo 服务治理的内部结构和工作原理,并且学习到如何应用 Dubbo 服务治理来管理和调度分布式系统中的服务。

一、介绍

1、介绍 Dubbo 服务治理的基本概念和重要性

Dubbo 服务治理是一种服务管理和协调的解决方案,它主要是为分布式系统提供服务管理、服务调度、服务监控、服务负载均衡等功能。

Dubbo 服务治理可以有效地管理和调度分布式系统中的服务,通过提供丰富的管理工具可以方便地实现服务的监控、调度和负载均衡等功能。在分布式系统中,Dubbo 服务治理可以提供一种方式,让不同的应用程序通过调用远程服务实现互联互通。

以下是一个简单的 Dubbo 服务治理的时序图,展示了 Dubbo 服务注册、发现和调用的过程:

图解Dubbo,Dubbo 服务治理详解

在这个时序图中,Client 是服务的消费者,Registry 是服务注册中心,Provider1 和 Provider2 是服务的提供者。整个过程分为三个步骤:

  • 服务发现:Client 向 Registry 发起服务发现请求,Registry 返回可用的服务列表。
  • 服务调用:Client 向 Provider1 发起服务调用请求,Provider1 返回结果;接着 Client 向 Provider2 发起服务调用请求,Provider2 返回结果。
  • 结果返回:Provider1 和 Provider2 返回结果给 Client。

Dubbo 服务治理的重要性在于,它可以帮助开发人员管理和协调不同的服务和组件,并确保服务的可用性和可靠性。通过 Dubbo 服务治理,开发团队可以通过一个单一的入口管理所有服务,这对于大规模分布式服务的管理非常重要。

2、阐述 Dubbo 服务治理的实现方式和应用场景

Dubbo 服务治理可以分为两种类型:基础服务治理和应用服务治理。

  • 基础服务治理 主要针对基础组件提供服务治理的解决方案,如注册中心、监控中心等。
  • 应用服务治理 主要针对业务服务提供服务治理的解决方案,如服务的调度、负载均衡、容错等。

Dubbo 服务治理的实现方式包括:

  • 基于 Docker 容器的 Dubbo 服务治理
  • 基于 Kube.NETes 容器编排的 Dubbo 服务治理
  • 基于云原生架构的 Dubbo 服务治理。

基于 Docker 容器的 Dubbo 服务治理可以方便地部署和管理 Dubbo 服务,不需要人工干预。

基于 Kubernetes 容器编排的 Dubbo 服务治理可以更加灵活地管理 Dubbo 服务,同时还支持容器的自动弹性伸缩和故障自愈的功能。

基于云原生架构的 Dubbo 服务治理可以通过云平台来实现弹性伸缩、高可用性、灰度发布等功能,这为 Dubbo 服务的管理和部署带来了极大的便利。

Dubbo 服务治理广泛应用于微服务架构、分布式系统和大型企业等场景中。

在微服务架构中,Dubbo 服务治理可以帮助开发人员快速构建分布式应用,通过服务治理机制可以方便地管理和协调不同的服务。

在分布式系统中,Dubbo 服务治理可以确保系统的高可用性和可靠性。在大型企业中,Dubbo 服务治理可以帮助企业更好地管理和调度分布式系统中的服务,提高业务处理的效率。

二、Dubbo 服务治理的原理

1、Dubbo 服务治理的架构设计

Dubbo 服务治理的架构设计主要包括注册中心、服务消费者和服务提供者三个部分。

  1. 注册中心 是一个分布式的注册表,可以存储服务提供者的地址、版本等信息。
  2. 服务消费者 可以从注册中心查找服务提供者的位置和信息,并发起请求。
  3. 服务提供者 是一个分布式集群,可以提供服务,并支持负载均衡和容错机制。

服务消费者和服务提供者之间采用消息队列进行通信,可以支持异步处理和消息缓存等功能。

图解Dubbo,Dubbo 服务治理详解

以上是 Dubbo 服务治理的架构设计的 UML 类图。其中:

  1. Registry 表示注册中心,包括注册、注销和服务发现等方法。
  2. Consumer 和 Provider 分别表示服务消费者和服务提供者。服务消费者通过 invoke 方法发起请求,服务提供者通过 export 方法提供服务。
  3. MessageQueue 表示消息队列,用于服务消费者和服务提供者之间的通信。
  4. LoadBalancer 表示负载均衡,用于从多个服务提供者中选择一个进行请求。
  5. FAIlover、Failfast、Failsafe 和 Failback 表示 Dubbo 支持的容错机制。
  6. RegistryListener 表示注册中心的监听器,可以监听服务的注册和注销事件。

2、Dubbo 服务治理的注册与发现机制

由于Dubbo服务治理的注册与发现机制主要是基于网络通信的,因此可以使用时序图来描述其过程。

图解Dubbo,Dubbo 服务治理详解

上图中,ServiceConsumer表示服务消费者,RegistryCenter表示注册中心,ServiceProvider表示服务提供者。

在服务治理的注册与发现机制中

  1. 服务消费者会向注册中心发送查询请求,查询服务提供者的信息。
  2. 注册中心会将服务提供者的信息存储在分布式注册表中,并将服务列表返回给服务消费者。
  3. 服务消费者可以根据注册表中的信息,找到服务提供者的位置和版本等信息,并发起请求。
  4. 同时,服务提供者也会将自己的服务信息注册到注册中心中,以便服务消费者可以发现并调用该服务。

3、Dubbo 服务治理的负载均衡算法

Dubbo 服务治理的负载均衡算法是指服务消费者可以将请求分配到多个服务提供者上,提高服务的性能和可用性。

Dubbo 服务治理支持轮询、加权轮询、最小连接数和加权最小连接数四种负载均衡算法。

  • 轮询算法 是指服务消费者按照一定的时间间隔,将请求轮流分配给多个服务提供者。
  • 加权轮询算法 是指服务消费者按照服务提供者的负载情况,将请求轮流分配给多个服务提供者。
  • 最小连接数算法 是指服务消费者按照服务提供者的最小连接数,将请求分配给多个服务提供者。
  • 加权最小连接数算法 是指服务消费者按照服务提供者的负载情况,以及服务提供者的最小连接数,将请求分配给多个服务提供者。

图解Dubbo,Dubbo 服务治理详解

以上流程图简要描述了Dubbo服务治理中负载均衡算法的过程。服务消费者向负载均衡算法发送请求,负载均衡算法会选择一个合适的服务提供者来处理请求,并返回响应。

在Dubbo服务治理中,可用的负载均衡算法包括轮询、加权轮询、最小连接数和加权最小连接数。在这个流程中,我们没有具体说明每种负载均衡算法的实现细节,因为不同的算法可能具有不同的实现方式。

三、Dubbo 服务治理的实现方式

1、基于 Docker 容器的 Dubbo 服务治理

(1)安装 Docker

在本地计算机上安装 Docker 后,需要将其启用为系统服务。可以使用以下命令启动 Docker 服务:

sudo systemctl start docker  
sudo systemctl enable docker
  • 1.
  • 2.

(2)创建 Docker Compose 文件

使用 Docker Compose 文件来定义 Dubbo 服务的配置。在命令行中打开 Docker Compose 文件编辑器:

vi /etc/docker/compose.yaml
  • 1.

然后,编辑 Compose 文件,定义 Dubbo 服务的主机、端口和配置文件等信息:

version: '3'  
services:  
  dubbo:  
    image: dubbo:latest  
    environment:  
      DUBBO_VERSION: '2.7.6'  
      JAVA_OPTS: '-Xmx512m -XX:+UseConcMarkSweepGC -Djava.util.concurrent.Executor=yes'  
    ports:  
      - "8080:8080"  
      - "8081:8081"  
    volumes:  
      - ./ DubboConfig:/dubbo/config  
      - ./logs:/dubbo/logs
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

在上面的 Compose 文件中,Dubbo 服务使用最新的版本,并且将使用 Executor 来优化性能。该服务有两个端口,一个用于客户端访问,另一个用于内部服务通信。它还提供了一个 volumes 选项,用于将本地目录映射到容器内。

(3)启动 Docker Compose

使用以下命令启动 Docker Compose:

docker-compose up
  • 1.

这将启动 Dubbo 服务,并将端口 8080 和 8081 暴露给客户端。

(4)查看 Dubbo 服务

可以使用以下命令查看 Dubbo 服务的状态:

docker-compose ps dubbo
  • 1.

这将列出 Dubbo 服务的所有进程。可以使用以下命令停止或重新启动服务:

docker-compose stop dubbo  
docker-compose restart dubbo
  • 1.
  • 2.

(5)部署 Dubbo 服务到云环境

如果要将 Dubbo 服务部署到云环境中,需要使用云原生技术,比如 Kubernetes。可以使用以下命令将 Dubbo 服务部署到 Kubernetes 集群中:

kubectl Apply -f https://docs.projectdouban.io/zh-cn/dubbo/kubernetes/dubbo-service.yaml
  • 1.

这将创建一个新的 Kubernetes Service,该 Service 将暴露 Dubbo 服务到客户端,同时也将配置 Dubbo 服务在 Kubernetes 集群中的端口映射。

(6)测试 Dubbo 服务

现在,可以在本地计算机上使用 Dubbo 客户端工具来测试 Dubbo 服务。可以使用以下命令启动 Dubbo 客户端:

java -jar DubboClient.jar --url=http://localhost:8080/dubbo --user=admin --password=123456
  • 1.

这将启动一个 Dubbo 客户端,该客户端将使用 HTTP 协议访问 Dubbo 服务,并使用管理员权限进行验证。

使用以下命令可以查看 Dubbo 客户端的日志:

java -jar DubboClient.jar --url=http://localhost:8080/dubbo --user=admin --password=123456 | more
  • 1.

这将列出 Dubbo 客户端的日志,可以查看客户端与 Dubbo 服务之间的通信情况。

2、基于 Kubernetes 容器编排的 Dubbo 服务治理

(1)安装 Kubernetes

首先需要安装 Kubernetes。可以在本地计算机上使用以下命令安装 Kubernetes:

sudo apt-get update    
sudo apt-get install -y apt-transport-https curl    
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -    
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list    
sudo apt-get update    
sudo apt-get install -y kubernetes
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

(2)创建 Kubernetes Deployment

使用 Deployment 来定义 Dubbo 服务的配置。在 Kubernetes Deployment 中,可以指定 Dubbo 服务的名称、版本、端口、环境变量等信息。可以使用以下命令创建 Kubernetes Deployment:

kubectl create deployment dubbo --image=dubbo:latest --port=8080 --env-file=.env
  • 1.

这将创建一个 Kubernetes Deployment,该 Deployment 将定义 Dubbo 服务的主机、端口和配置文件等信息。其中,--image 参数指定了 Dubbo 服务的镜像地址,--port 参数指定了 Dubbo 服务使用的端口,--env-file 参数指定了 Dubbo 服务的环境变量配置文件。

(3)创建 Kubernetes Service

使用 Service 来定义 Dubbo 服务的服务类型和端口。可以使用以下命令创建 Kubernetes Service:

kubectl create service dubbo --port=8080 --type=LoadBalancer
  • 1.

这将创建一个 Kubernetes Service,该 Service 将暴露 Dubbo 服务到客户端,同时也将在 Kubernetes 集群中暴露 Dubbo 服务的端口。

(4)创建 Kubernetes ConfigMap

使用 ConfigMap 来定义 Dubbo 服务的配置文件。可以使用以下命令创建 Kubernetes ConfigMap:

kubectl create configmap dubbo-config --from-file=./dubbo/config/dubbo.conf
  • 1.

这将创建一个 Kubernetes ConfigMap,该 ConfigMap 将使用 Dubbo 服务的配置文件。

(5)创建 Kubernetes Secret

使用 Secret 来定义 Dubbo 服务的认证密码。可以使用以下命令创建 Kubernetes Secret:

kubectl create secret generic dubbo-password --from-literal=password=<your-password>
  • 1.

这将创建一个 Kubernetes Secret,该 Secret 将存储 Dubbo 服务的认证密码。

(6)创建 Kubernetes Ingress

使用 Ingress 来定义 Dubbo 服务的客户端访问路径。可以使用以下命令创建 Kubernetes Ingress:

kubectl create ingress dubbo --from-literal=tls-secret=dubbo-password
  • 1.

这将创建一个 Kubernetes Ingress,该 Ingress 将配置 Dubbo 服务的客户端访问路径,同时也将使用之前创建的 Secret 来存储认证密码。

(7)测试 Dubbo 服务

现在可以使用 Kubernetes Deployment、Service、ConfigMap 和 Secret 来测试 Dubbo 服务。可以使用以下命令启动 Dubbo 客户端:

kubectl apply -f https://docs.projectdouban.io/zh-cn/dubbo/kubernetes/dubbo-ingress.yaml
  • 1.

这将创建一个新的 Kubernetes Ingress,该 Ingress 将配置 Dubbo 服务的客户端访问路径,同时也将使用之前创建的 Secret 来存储认证密码。现在可以使用本地 Dubbo 客户端工具来测试 Dubbo 服务了。

3、基于云原生架构的 Dubbo 服务治理

(1)安装云原生基础设施

首先需要安装云原生基础设施,比如容器编排平台 (Kubernetes)、服务注册与发现平台 (Zookeeper)、负载均衡器 (ELB) 等。可以在本地计算机上使用以下命令安装这些平台:

sudo apt-get update  
sudo apt-get install -y kubelet kubeadm kubectl
  • 1.
  • 2.

(2)创建 Kubernetes Deployment

使用 Deployment 来定义 Dubbo 服务的配置。在 Kubernetes Deployment 中,可以指定 Dubbo 服务的名称、版本、端口、环境变量等信息。可以使用以下命令创建 Kubernetes Deployment:

kubectl create deployment dubbo --image=dubbo:latest --port=8080 --env-file=.env
  • 1.

这将创建一个 Kubernetes Deployment,该 Deployment 将定义 Dubbo 服务的主机、端口和配置文件等信息。其中,--image 参数指定了 Dubbo 服务的镜像地址,--port 参数指定了 Dubbo 服务使用的端口,--env-file 参数指定了 Dubbo 服务的环境变量配置文件。

(3)创建 Kubernetes Service

使用 Service 来定义 Dubbo 服务的服务类型和端口。可以使用以下命令创建 Kubernetes Service:

kubectl create service dubbo --port=8080 --type=LoadBalancer
  • 1.

这将创建一个 Kubernetes Service,该 Service 将暴露 Dubbo 服务到客户端,同时也将在 Kubernetes 集群中暴露 Dubbo 服务的端口。

(4)创建 Kubernetes ConfigMap

使用 ConfigMap 来定义 Dubbo 服务的配置文件。可以使用以下命令创建 Kubernetes ConfigMap:

kubectl create configmap dubbo-config --from-file=./dubbo/config/dubbo.conf
  • 1.

这将创建一个 Kubernetes ConfigMap,该 ConfigMap 将使用 Dubbo 服务的配置文件。

(5)创建 Kubernetes Secret

使用 Secret 来定义 Dubbo 服务的认证密码。可以使用以下命令创建 Kubernetes Secret:

kubectl create secret generic dubbo-password --from-literal=password=<your-password>
  • 1.

这将创建一个 Kubernetes Secret,该 Secret 将存储 Dubbo 服务的认证密码。

(6)创建 Kubernetes Ingress

使用 Ingress 来定义 Dubbo 服务的客户端访问路径。可以使用以下命令创建 Kubernetes Ingress:

kubectl create ingress dubbo --from-literal=tls-secret=dubbo-password
  • 1.

这将创建一个 Kubernetes Ingress,该 Ingress 将配置 Dubbo 服务的客户端访问路径,同时也将使用之前创建的 Secret 来存储认证密码。

(7)测试 Dubbo 服务

现在可以使用 Kubernetes Deployment、Service、ConfigMap 和 Secret 来测试 Dubbo 服务。可以使用以下命令启动 Dubbo 客户端:

kubectl apply -f https://docs.projectdouban.io/zh-cn/dubbo/kubernetes/dubbo-ingress.yaml
  • 1.

这将创建一个新的 Kubernetes Ingress,该 Ingress 将配置 Dubbo 服务的客户端访问路径,同时也将使用之前创建的 Secret 来存储认证密码。现在可以使用本地 Dubbo 客户端工具来测试 Dubbo 服务了。

四、Dubbo 服务治理的应用场景

1、微服务架构中的 Dubbo 服务治理

在微服务架构中,服务之间的通信需要通过中间件来实现,而 Dubbo 是常用的一种中间件。Dubbo 可以提供双向通信、负载均衡、服务注册与发现等功能,使得服务之间的通信更加高效和安全。在微服务架构中,Dubbo 服务治理的应用场景包括:

  • 服务注册与发现:微服务架构中,服务的数量和维护量往往非常大,因此需要使用 Dubbo 这样的中间件来对服务进行治理和管理。Dubbo 可以提供服务注册与发现、负载均衡、服务消费等功能,可以帮助微服务架构更好地管理和监控服务。
  • 服务调用:微服务架构中,服务之间的通信需要通过 Dubbo 来实现。Dubbo 可以提供双向通信、负载均衡等功能,使得服务之间的通信更加高效和安全。

2、分布式系统中的 Dubbo 服务治理

在分布式系统中,服务之间的通信需要通过总线或者中间件来实现,而 Dubbo 也是常用的一种中间件。Dubbo 可以提供双向通信、负载均衡、服务注册与发现等功能,使得服务之间的通信更加高效和安全。在分布式系统中,Dubbo 服务治理的应用场景包括:

  • 服务注册与发现:分布式系统中,服务的数量和维护量往往非常大,因此需要使用 Dubbo 这样的中间件来对服务进行治理和管理。Dubbo 可以提供服务注册与发现、负载均衡、服务消费等功能,可以帮助分布式系统更好地管理和监控服务。
  • 服务调用:分布式系统中,服务之间的通信需要通过 Dubbo 来实现。Dubbo 可以提供双向通信、负载均衡等功能,使得服务之间的通信更加高效和安全。

五、Dubbo 服务治理的优化措施

1、提高 Dubbo 服务治理的可用性和高并发处理能力

为了提高 Dubbo 服务治理的可用性和高并发处理能力,可以采取以下措施:

  • 使用集群部署:将 Dubbo 注册中心和服务提供者部署在多个节点上,提高服务的可用性和容错能力。

图解Dubbo,Dubbo 服务治理详解

该时序图表示了一个使用 Dubbo 集群部署的微服务架构中,客户端通过 Dubbo 注册中心来发现并调用服务提供者的过程。由于 Dubbo 注册中心和服务提供者都进行了集群部署,因此客户端可以从多个注册中心和多个服务提供者中发现和调用服务,提高了系统的可用性和容错能力。

  • 优化资源配置:针对 Dubbo 服务的并发量和负载情况,适当调整机器的 CPU、内存、磁盘等资源,提高系统的处理能力。

图解Dubbo,Dubbo 服务治理详解

该流程图表示了对 Dubbo 服务进行资源配置优化的过程。首先需要通过监控服务的负载情况,收集并分析服务的负载数据,然后根据分析结果对服务提供者的资源进行优化配置,最后重新部署服务提供者,使得服务提供者能够更好地处理并发请求,提高系统的处理能力。

  • 合理设置 Dubbo 的线程池大小:根据业务需求和硬件资源情况,合理设置 Dubbo 的线程池大小,避免线程池过大或过小导致的性能问题。

图解Dubbo,Dubbo 服务治理详解

该时序图表示了 Dubbo 服务提供者使用线程池来处理客户端请求的过程。通过合理设置线程池的大小,可以避免线程池过大或过小导致的性能问题。当客户端发起请求时,Dubbo 服务提供者使用线程池来处理请求,当请求处理完成后返回响应给客户端。

  • 使用缓存和消息队列:通过缓存和消息队列来缓解 Dubbo 服务的并发压力,提高系统的可用性和性能。

2、优化 Dubbo 服务治理的性能和带宽消耗

为了优化 Dubbo 服务治理的性能和带宽消耗,可以采取以下措施:

  • 选择合适的序列化框架:Dubbo 支持多种序列化框架,包括 Hessian、Java 自带的序列化、JSON 等,选择合适的序列化框架可以提高性能和降低带宽消耗。
  • 合理设置超时时间:设置合理的超时时间可以避免 Dubbo 服务调用出现阻塞和超时等问题,提高系统的性能和稳定性。
  • 使用缓存:通过缓存来避免 Dubbo 服务频繁调用,提高系统的性能和带宽利用率。
  • 优化网络带宽:通过优化网络带宽的使用方式,例如启用 TCP 协议的 Nagle 算法、使用压缩算法等,可以降低 Dubbo 服务的带宽消耗。

3、增强 Dubbo 服务治理的安全性和可靠性

为了增强 Dubbo 服务治理的安全性和可靠性,可以采取以下措施:

  • 启用 SSL 加密:通过启用 SSL 加密来保障 Dubbo 服务的安全性。
  • 启用认证机制:通过启用认证机制来保障 Dubbo 服务的安全性,例如使用基于 Token 的认证机制等。
  • 设置合理的重试机制:设置合理的重试机制可以避免 Dubbo 服务因为网络波动等原因出现调用失败的情况,提高系统的可靠性。
  • 监控和日志记录:通过监控和日志记录可以及时发现系统中的问题,进行及时的处理,提高系统的可靠性和安全性。
  • 使用健康检查:通过使用健康检查可以及时发现服务故障或者节点异常,避免服务因为故障而无法提供服务,提高系统的可靠性。定期备份和恢复:定期备份和恢复可以避免服务因为数据丢失或者损坏而无法正常提供服务,提高系统的可靠性和安全性。


Tags:Dubbo   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
图解Dubbo,Dubbo 服务治理详解
当前,分布式服务在互联网行业中得到了广泛应用。然而,分布式服务不仅仅是将单个应用程序分割成不同的模块,还涉及到模块之间的相互合作和协作。服务治理是分布式服务的一个关键...【详细内容】
2023-10-17  Search: Dubbo  点击:(218)  评论:(0)  加入收藏
深入理解java和dubbo的SPI机制
作者 | 京东云开发者-京东物流 龚航林原文链接:https://my.oschina.net/u/4090830/blog/101160111 SPI 简介1.1 SPI(Service Provider Interface)本质:将接口实现类的全限定名...【详细内容】
2023-10-11  Search: Dubbo  点击:(243)  评论:(0)  加入收藏
实例讲解SpringBoot集成Dubbo的步骤及过程
首先,让我们先了解一下Spring Boot和Dubbo。Spring Boot 是一个开源的 Java Web 框架,它可以帮助开发者快速创建独立的、生产级别的 Spring 应用程序。Spring Boot 提供了很多...【详细内容】
2023-09-26  Search: Dubbo  点击:(251)  评论:(0)  加入收藏
Dubbo + Nacos这么玩就失去高可用的能力了
我们常用的微服务框架是SpringCloud那一套,在服务远程调用和注册中心的选型上也有不少方案。在服务远程调用上常用的有:Feign、Dubbo等,在注册中心上常用的有:Nacos、Zookeeper...【详细内容】
2023-09-08  Search: Dubbo  点击:(264)  评论:(0)  加入收藏
如何将 Dubbo Filter 拦截器原理运用到日志拦截器中?
业务背景我们希望可以在使用日志拦截器时,定义属于自己的拦截器方法。实现的方式有很多种,我们分别来看一下。拓展阅读java 注解结合 spring aop 实现自动输出日志[1]java 注...【详细内容】
2023-08-06  Search: Dubbo  点击:(225)  评论:(0)  加入收藏
基于Dubbo解决亿级流量中缓存双写策略问题
1.引言在处理大规模流量和高并发读写请求的分布式系统中,缓存双写是一项关键任务。保证缓存的一致性和高可用性是挑战性的,特别是在面对亿级流量的场景下。本文将探讨亿级流量...【详细内容】
2023-05-16  Search: Dubbo  点击:(348)  评论:(0)  加入收藏
图解Dubbo,六种扩展机制详解
今天详细的分解一下Dubbo的扩展机制,实现快速入门,丰富个人简历,提高面试level,给自己增加一点谈资,秒变面试小达人,BAT不是梦。说真的,从零学习Dubbo,看这个系列足够了,共10篇,欢迎持...【详细内容】
2023-04-12  Search: Dubbo  点击:(158)  评论:(0)  加入收藏
Go 语言体系下的微服务框架选型: Dubbo-go
作 者 | 牛学蔚(蔚俊)本文介绍了Go 微服务体系发展与选型,过去一年Dubbo-go 社区的飞速发展以及对未来的展望。一、Go 微服务体系发展与选型随着微服务技术的快速发展,其在各...【详细内容】
2023-04-11  Search: Dubbo  点击:(273)  评论:(0)  加入收藏
如何用一个端口同时暴露 HTTP1/2、gRPC、Dubbo 协议?
本文我们将介绍 Apache Dubbo 灵活的多协议设计原则,基于这一设计,在 Dubbo 框架底层可灵活的选用 HTTP/2、HTTP/REST、TCP、gRPC、JsonRPC、Hessian2 等任一 RPC 通信协议,同...【详细内容】
2023-03-17  Search: Dubbo  点击:(84)  评论:(0)  加入收藏
阿里一面:说一说Java、Spring、Dubbo三者SPI机制的原理和区别
大家好,我是三友~~今天来跟大家聊一聊Java、Spring、Dubbo三者SPI机制的原理和区别。其实我之前写过一篇类似的文章,但是这篇文章主要是剖析dubbo的SPI机制的源码,中间只是简单...【详细内容】
2023-03-14  Search: Dubbo  点击:(142)  评论:(0)  加入收藏
▌简易百科推荐
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(5)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(12)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(8)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(5)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(10)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(8)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(11)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(12)  评论:(0)  加入收藏
这样搭建日志中心,传统的ELK就扔了吧!
最近客户有个新需求,就是想查看网站的访问情况。由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的...【详细内容】
2024-03-20  dbaplus社群    Tags:日志   点击:(4)  评论:(0)  加入收藏
Kubernetes 究竟有没有 LTS?
从一个有趣的问题引出很多人都在关注的 Kubernetes LTS 的问题。有趣的问题2019 年,一个名为 apiserver LoopbackClient Server cert expired after 1 year[1] 的 issue 中提...【详细内容】
2024-03-15  云原生散修  微信公众号  Tags:Kubernetes   点击:(6)  评论:(0)  加入收藏
站内最新
站内热门
站内头条