一、Dubbo的动态编译 上一篇提到过@Adaptive注解的作用:被@Adaptive修饰的类实际上是一个装饰类。被@Adaptive修饰的方法则会生成一个动态代理类,而根据模板生成的类则需要通过动态编译由字节流被编译成动态代理类。本文主要讲的就是dubbo的动态编译。 dubbo-spi的扩展装饰类是通过Extension
概述在Dubbo自适应扩展中,我们已经得到了自适应扩展类的字符串,需要通过编译才能得到真正的Class,本篇文章就来介绍将类的字符串编译成类的过程。动态编译dubbo 的动态编译的整体结构如上图所示。dubbo中的Compiler基于dubbo spi机制进行加载,目前支持jdk和javassist两种实现:<dubbo:application compiler="jdk" />
&l
# Spring Boot动态感知服务上下线
## 引言
在微服务架构中,服务的上下线是非常常见的操作。当服务上线时,其他服务需要能够感知到该服务的存在,以便能够与它进行交互。同样地,当服务下线时,其他服务也需要能够感知到该服务的离线状态,以便能够做相应的处理。
本文将介绍如何使用Spring Boot实现动态感知服务上下线的功能。我们将使用Eureka作为服务的注册中心,通过Eureka
原创
2023-08-31 10:45:33
189阅读
在实际的生产环境中我们一般都是集群环境部署的,同一个程序我们会部署在相同的几台服务器中,这时我们可以通
原创
2022-07-01 09:14:49
58阅读
ZK: 相当于是一个文件系统 + 通知机制(观察者模式) # 过程 创建持久化的根节点 /server-pig 客户端监听/server-pig...
原创
2022-03-25 09:47:35
501阅读
一概述 最近由于公司业务减少,开始慢慢裁员了。程序猿们都已经清闲个把月了,不知道是不是过惯了忙碌的日子一下特别不舒服。被裁员可以拿到N+1的赔偿也是不错的哈!不知道下一个会不会是我,嘿嘿!上一节说到了如何自定义标签,今天说说dubbo的服务是如何发布出来的,研究了几天略有眉目。如果客观想看看,需要提前了解以下几个知识点:1.netty的使用,版本是3.x几的
转载
2024-05-05 10:57:07
44阅读
1.Zookeeper相关概念的介绍1.概述ZooKeeper是一个集中服务,用于维护配置信息、命名、提供分布式同步和提供组服务。所有这些类型的服务都以某种形式被分布式应用程序使用。每次实现它们时,都要进行大量的工作来修复不可避免的bug和竞争条件。由于实现这类服务的困难,应用程序最初通常会忽略它们,这使得它们在发生变化时变得脆弱,并且难以管理。即使操作正确,在部署应用程序时,这些服务的不同实现也
转载
2024-03-15 05:43:18
35阅读
一、准备工作运用第一篇创建的注册中心 leopard-eureka ,进行配置修改在leopard-eureka工程中resources文件夹下(为了简化,原先application.yml暂不使用),创建配置文件 application-peer1.yml 和 application-peer2.yml,两个文件内容一样:spring:
application:
name: leop
问题背景我们微服务之间的远程调用使用的是dubbo框架(版本2.4.9),在最近几次服务的发布中,我们发现在dubbo provider服务的重启过程中,如果此时正处于业务的高峰期,短时间内会有大量的rpc调用失败,如果consumer侧没有重试机制或本地兜底策略的话,很可能导致业务异常。为了解决上述问题,我们有必要知道我们服务上下线过程中,dubbo究竟做了哪些事情。服务上线首先看在上线过程中,
转载
2024-04-17 13:07:26
185阅读
现在由于eureka服务越来越多,发现服务提供者在停掉很久之后,服务调用者很长时间并没有感知到变化,依旧还在持续调用下线的服务,导致长时间后才能返回错误,因此需要调整eureka服务和客户端的配置,以便实现服务下线后快速感知。 需要调整服务注册中心、服务提供者和服务消费者三个配置。 服务注册中心Eu
原创
2024-03-26 12:51:47
150阅读
说明:Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。本文介绍Dubbo的简单使用及一些Dubbo功能特性,注册中心使用的是ZooKeeper,可在官网下载。(另外,在阿里巴巴发出的《微服务治理技术白皮书》中各种注册中心的区别如下:)环境搭建首先,搭建一个ZooKeeper + Dubbo
转载
2024-06-17 20:43:46
101阅读
1. 概述
Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。
主要核心部件
Remoting: 网络通信框架,实现了sync-over-async 和 request-response 消息机制.
RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能
Registr
转载
2024-03-15 19:48:30
32阅读
前言:本文主要讲解dubbo集成spring进行的服务暴露过程。大致流程我从处理标签开始讲解处理,从spring解析我们dubbo的xml文件到暴露服务的一个大致过程,(注:对spring的扩展点有一点了解。)后续流程发布细节讲持续更新发布。文中如有错误点请各位大佬指出,当前文章也只是本人在阅读源码当中的一个记录点。下面我们进入正文。 服务导出简要流程如下:读取配置信息生成S
zookeep宕机与dubbo直连现象:zookeeper注册中心宕机,还可以消费dubbo暴露的服务。原因:监控中心宕掉不影响使用,只是丢失部分采样数据数据库宕掉后,注册中心仍能通过缓存提供服务列表查询,但不能注册新服务注册中心对等集群,任意一台宕掉后,将自动切换到另一台注册中心全部宕掉后,服务提供者和服务消费者仍能通过本地缓存通讯服务提供者无状态,任意一台宕掉后,不影响使用服务提供者全部宕掉后
转载
2024-07-08 14:48:13
49阅读
什么是DubboDubbo是一个分布式服务框架,致力于提供高性能和透明化的远程服务调用方案,这容易和负载均衡弄混,负载均衡是对外提供一个公共地址,请求过来时通过轮询、随机等,路由到不同server。目的分摊压力。dubbo是A系统调用B系统接口服务, 后面就是怎么把这个流程,动态化(zookeeper通知)、权限化、配置化、低耦合化、自动化。Dubbo架构节点角色说明:Provider: 暴露服务
转载
2024-04-21 08:12:00
52阅读
Dubbo 一.基础知识网站规模扩大,常规的垂直应用架构无法应付
发展演变
单一应用架构 ORM
垂直应用架构 MVC
分布式服务架构 RPC
流动计算架构 SOA
RPC Remote Procedurer Call 远程过程调用
是一种进程间通信方式
建立连接
信息序列化 传递 反序列化 调用本地服务 服务处理 返回处理结果 序列化返回 反序列化得到结果
dubbo不仅功能强大,扩展性也非常强,在关键的位置,dubbo都留有扩展接口,比如:协议(Protocol)、集群策略(Cluster)、代理工厂(ProxyFactory)、序列化方式(Serialization)、线程池(ThreadPool)、负载均衡(LoadBalance)等等。每一种扩展都有多种实现,采用策略模式把实现写在/META-INF/dubbo/internal中,然后通过E
Runtime.getRuntime().addShutdownHook在AbstractConfig中有一块静态代码块:static {
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {//添加一个jvm关闭执行的钩子,执行清理工作
public void run() {
转载
2024-10-19 16:52:47
47阅读
Merger的实现当一个接口有多种实现,消费者又需要同时引用不同的实现时,可以用group 来区分不同的实现,如下所示。<dubbo:service group=" group1" interface=" com.xxx.testService" />
<dubbo:service group="group2" interface=" com.xxx.testService" /
转载
2024-09-01 12:46:31
31阅读
过程很曲折本地windows安装zookeeper,要下载带“bin”的包,不然是未进行编译的,不能运行
“ZooKeeper audit is disabled” 是版本问题。用:apache-zookeeper-3.5.8-bin
tar在windows上解压不能成功
防火墙也关了的,端口也开启了的(不确定是否影响)
管理员权限启动zk
netstat –ano|findstr "2181"端