Dubbo
文章平均质量分 81
Archie_java
求知若饥,虚心若愚(stay hungry,stay foolish)
好记性不如烂笔头
展开
-
Dubbo的IllegalArgumentException问题的解决@Service interfaceClass() or interfaceName() or interface class
说的是dobbo提供的服务的类必须实现接口。但是下面的堆栈异常中有没有打印出来有问题的异常的类的信息, 最后还是我一个个检查dubbo服务发现问题。因为我图方便, 直接集成了spring中的bean类,然后来发布dubbo服务,这样我可以共用业务代码,所以导致了这个问题。改好后启动项目. 启动后在注册中心找到了注册的服务TestService。java中类可以继承多个接口, 如果dubbo服务的类直接继承了多个接口,将dubbo服务类改成下面这样既集成业务类, 也实现对应接口就可以了。原创 2023-03-04 15:56:28 · 1366 阅读 · 0 评论 -
问题:在使用dubbo 2.5.3之前的版本@Service来发布服务时,当该服务中有@Transactional,是无法正常发布的?
虽然已经发布了,但是会发现发布的服务是spring的代理SpringProxy(可以通过dubbo-admin看到,或者启动日志),不是你想要的,无法正常引用,因为必须在@Service中指定interfaceName,指定发布的服务的名称,例:@Service(version = “1.0.0”,interfaceName = “com.zl.dubbotest.api.HelloService”)(注:目前dubbo的master的分支已经修复了这个问题,但是没有发正式的版本。转载 2022-11-26 22:55:56 · 255 阅读 · 0 评论 -
Dubbo默认超时时间
默认超时时间为1秒(1000毫秒)消费者单个服务的超时时间限制。原创 2022-10-21 23:55:26 · 182 阅读 · 0 评论 -
File对象转MultipartFile 如何new出高仿MultipartFile对象
RequestBody 、@requestParam,@RequestPart区别 1、@requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,比如说:application/json或者是application.xml等。一般情况下来说常用其来处理application/json类型。原创 2022-10-19 23:53:26 · 2959 阅读 · 0 评论 -
Dubbo2.7文档详解
RPC(Remote Procedure Call) 即远程过程调用,通过名字我们就能看出 RPC 关注的是远程调用而非本地调用。RMI(JDK自带):JDK自带的RPC,有很多局限性,不推荐使用。Dubbo:Dubbo是 阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。目前 Dubbo 已经成为 Spring Cloud Alibaba 中的官方组件。转载 2022-10-19 00:02:35 · 735 阅读 · 0 评论 -
Dubbo系统里面MultipartFile文件传输问题&Dubbo文件上传/传输服务
本篇介绍如何设计一个文件上传/传输功能的dubbo接口及遇到的问题;转载 2022-10-18 23:49:28 · 2981 阅读 · 0 评论 -
【Dubbo学习系列】Dubbo消费端的代理生成详解(@DubboReference和@Reference)
依托于Spring容器的好处在于职责的划分更加清晰,dubbo本身只负责于rpc的通信,而bean的管理交还给spring,而且使ReferenceAnnotationBeanPostProcessor类更加轻,dubbo的关注点更加集中。转载 2022-10-18 00:05:36 · 3065 阅读 · 0 评论 -
什么是 serialVersionUID ? 序列化对象时必须提供 serialVersionUID 吗?
通过IDE自动生成一个serialVersionUID ,由类、属性等信息计算而来开发环境:IEDA找到File下的Settings,如图:选中这两个框并应用。转载 2022-10-17 23:52:42 · 1834 阅读 · 0 评论 -
Dubbo序列化
dubbo作为一个rpc框架支持丰富的序列化方式,本文简单介绍dubbo的序列化。转载 2022-10-17 23:28:20 · 1757 阅读 · 0 评论 -
Springboot dubbo @Service @Transactional 无法提供服务或者无法提供事务的解决办法
纠结了一下午,突然想到一个方案,然后顺利的解决这个问题了。,虽然能提供服务,但不能被消费者找到,继续搜索,需要在具体实现类里的@Service上添加(version = “1.0.0”,interfaceClass=*.class),才可以,需要将接口的类名写入,才可以在dubbo-admin里正常展现服务接口,然后调用,可以做到事务回滚了。真的简直坑的一批,这种依赖,配置相关的问题是最恶心的,因为它不会报错,所以需要从方方面面猜测问题的原因才可以,不过虽然很坑,但是还好问题得到解决。转载 2022-10-17 23:09:33 · 1070 阅读 · 0 评论 -
调用Dubbo报错: com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method 问题原因和解决办法
检查你服务器上的dubbo服务是否正常,检查服务器是否存在问题(比如服务器上是否存在虚拟机网络)。1.需要进行序列化的POJO类没有进行序列化,多是入参中的一些参数实体类。这个原因是最容易发现的,因为未序列化的类会在异常信息中显示,在日志信息中搜索“Serializable”,即可找到对应的类,再将其实现序列化即可。我们在使用Dubbo的过程中,时常会碰到这个异常。而有可能导致这个异常的原因是非常多的,排查起来比较困难。Windows开启方法:控制面板—防火墙—高级—入站规则—新建规则—填写—下一步…转载 2022-10-17 00:00:05 · 4688 阅读 · 1 评论 -
Dubbo:@DubboService和@Service、@DubboReference和@Reference的区别和关系
总之来说,@DubboService与@Service、@DubboReference与@Referenc的关系就是更新换代,在使用方式和功能上基本一样,最新的注解是加Dubbo前缀的,使用起来更直观一些。原创 2022-10-15 23:56:21 · 2885 阅读 · 0 评论 -
为什么都说Dubbo不适合传输大文件?&Dubbo支持的协议
其实 Dubbo 不光是不适合传输文件,大报文场景下都不太合适,Dubbo 的设计更适合小业务报文的传输(默认报文大小只有8MB)。所以如果有文件上传的场景,尽可能地用客户端直传的方式吧,节省资源又友好!...原创 2022-08-14 15:31:26 · 1462 阅读 · 0 评论 -
Dubbo SpringBoot+Dubbo泛化的使用,以及开发时直连本地的Dubbo服务(Dubbo指定点对点调用服务)
一般情况我们使用dubbo)通过rpc调用dubbo提供方的服务,首先要在消费者的项目中引入接口提供者的jar包(provider端暴露的接口和方法),然后使用jar包里面的类和方法,两端才能正常通信调用。但是如果要调N个不同服务提供者的接口,就要引入N个jar包,这时候消费者项目有N多个dubbo提供者的jar,项目就会耦合。我们可以用dubbo的泛化实现调用dubbo服务,泛化调用不需要引入provider提供的jar即可实现远程调用,降低耦合。 但是一般提供好的jar是不会再修改里原创 2022-05-30 23:19:41 · 1468 阅读 · 0 评论 -
Dubbo是如何进行远程服务调用的?(源码流程跟踪)
首先会分析Dubbo是如何进行远程服务调用的,如果不了解dubbo的服务暴露和服务调用,请去看前两篇dubbo的文章,然后后面我还会说一下dubbo的SPI机制当我们在使用@reference 注解的时候,来调用我们的提供者的Service对象的时候,Dubbo中的服务调用是怎么实现的Dubbo的远程服务调用(1)首选Dubbo是通过Poxy对象来生成一个代理对象的具体实现是在ReferenceConfig对象中调用的private T createProxy(Map<String, Str原创 2022-02-24 22:50:29 · 2034 阅读 · 0 评论 -
Dubbo基本原理机制
分布式服务框架:高性能和透明化的RPC远程服务调用方案SOA服务治理方案Apache MINA 框架基于Reactor模型通信框架,基于tcp长连接Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况分析源代码,基本原理如下:client一个线程调用远程接口,生成一个唯一的ID(比如一段随机字符串,UUID等),Dubbo是使用AtomicLong从0开始累计数字的将打包的方法调用信息(如调用的接口名称,方法原创 2022-02-24 22:20:34 · 252 阅读 · 0 评论 -
Dubbo:RPC原理
1、RPC原理一次完整的RPC调用流程如下:1)服务消费方(client)调用以本地调用方式调用服务;2)client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体;3)client stub找到服务地址,并将消息发送到服务端;4)server stub收到消息后进行解码;5)server stub根据解码结果调用本地的服务;6)本地服务执行并将结果返回给server stub;7)server stub将返回结果打包成消息并发送至消费方;8)client st原创 2022-02-24 21:18:41 · 1327 阅读 · 0 评论 -
一场事故告诉你zookeeper和nacos谁更适合做注册中心
前言 在分布式系统中,注册中心充当着重要角色,是服务发现、客户端负载均衡中不可缺少的一员。注册中心除了能够实现基本的功能外,他的稳定性、可用性和健壮性对整个分布式系统的流畅运行影响重大。dubbo作为国内一款主流的分布式系统,支持的注册中心有zookeeper、nacos和redis等第三方中间件,同时也支持Simple和Multicast的方式。zk和nacos可能是最常使用的方式,到底谁更胜一筹呢?以下的事故现场便有答案。在分布式系统中,服务往往由提供方来定义,并给出服务定义的sdk包。消费原创 2022-01-18 23:44:57 · 552 阅读 · 0 评论 -
什么是RPC?RPC框架dubbo的核心流程
一、REST 与 RPC:1、什么是 REST 和 RPC 协议: 在单体应用中,各模块间的调用是通过编程语言级别的方法函数来实现,但分布式系统运行在多台机器上,一般来说,每个服务实例都是一个进程,服务间必须使用进程间通信机制来交互,而常见的通信协议主要有 RPC 和 REST 协议。(1)REST: REST 是基于 HTTP 实现,使用 HTTP 协议处理数据通信,更加标准化与通用,因为无论哪种语言都支持 HTTP 协议。常见的 http API 都可以称为 Rest 接口。RE原创 2022-01-13 21:37:52 · 284 阅读 · 0 评论 -
Log4j2突发重大漏洞
长话短说吧。相信大家已经被 Log4j2 的重大漏洞刷屏了,估计有不少小伙伴此前为了修 bug 已经累趴下了。很不幸,我的小老弟小二的 Spring Boot 项目中恰好用的就是 Log4j2,版本特喵的还是 2.14.1,在这次漏洞波及的版本范围之内。第一时间从网上得知这个漏洞的消息后,小二吓尿了。赶紧跑过来问老王怎么解决。老王先是给小二提供了一些临时性的建议,比如说:JVM 参数添加 -Dlog4j2.formatMsgNoLookups=truelog4j2.formatMsgNoLooku原创 2021-12-21 22:29:38 · 332 阅读 · 0 评论 -
log4j2 的使用【超详细图文】
log4j2 的使用Apache Log4j2 是对Log4j 的升级版本,参考了logback 的一些优秀的设计,并且修复了一些问题,因此带来了一些重大的提升,主要有:异常处理,在logback中,Appender中的异常不会被应用感知到,但是在log4j2中,提供了一些异常处理机制。性能提升,log4j2 相较于log4j 和 logback 都具有明显的性能提升,有18倍性能提升,后面会有官方测试的数据。自动重载配置,参考了logback的设计,当然会提供自动刷新参数配置,最实用的就是我们在原创 2021-12-21 22:10:21 · 6456 阅读 · 0 评论 -
log4j2漏洞
log4j2漏洞这个漏洞到底是怎么回事?怎么利用这个漏洞呢?我看了很多技术分析文章,都太过专业,很多非Java技术栈或者不搞安全的人只能看个一知半解,导致大家只能看个热闹,对这个漏洞的成因、原理、利用方式、影响面理解的不到位。这篇文章,我尝试让所有技术相关的朋友都能看懂:这个注定会载入网络安全史册上的漏洞,到底是怎么一回事!log4j2不管是什么编程语言,不管是前端后端还是客户端,对打日志都不会陌生。通过日志,可以帮助我们了解程序的运行情况,排查程序运行中出现的问题。在Java技术栈中,用的原创 2021-12-21 21:51:17 · 1873 阅读 · 2 评论 -
高并发之服务降级和服务熔断____服务降级、熔断、限流的区别
高并发之服务降级和服务熔断服务降级:服务压力剧增的时候根据当前的业务情况及流量对一些服务和页面有策略的降级,以此环节服务器的压力,以保证核心任务的进行。同时保证部分甚至大部分任务客户能得到正确的相应。也就是当前的请求处理不了了或者出错了,给一个默认的返回。服务熔断:在股票市场,熔断这个词大家都不陌生,是指当股指波幅达到某个点后,交易所为控制风险采取的暂停交易措施。相应的,服务熔断一般是指软件系统中,由于某些原因使得服务出现了过载现象,为防止造成整个系统故障,从而采用的一种保护措施,所以很多地方把熔断原创 2021-12-18 10:27:50 · 2354 阅读 · 1 评论 -
Dubbo项目入门
Dubbo项目入门Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。它的特性如下面向接口代理的高性能RPC调用智能负载均衡服务自动注册与发现高度可扩展能力运行期流量调度可视化的服务治理与运维Talk is cheap, Show me the code。现在来着手搭建一个Dubbo项目吧。搭建一个xml配置的Dubbo项目创建三个项目service-api 服务提供者和服务消费者原创 2021-12-14 23:23:48 · 214 阅读 · 0 评论 -
Eureka 与Zookeeper 的区别,Eureka相较于Zookeeper好在哪?
传统的ACIDA(Atomicity) 原子性C(Consistency) 一致性I (Isolation)独立性D(Durability)持久性关系型数据库(MySQL,Oracle,SqlServer)CAPC(Consistency)强一致性A(Availability)可用性P(Partition tolerance)分区容错性NOSQL (redis/mongdb)任何一个分布式系统最多满足两个CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分原创 2021-12-14 22:13:08 · 189 阅读 · 0 评论 -
如何将单机版的Eureka服务改为集群版Eureka服务
Eureka 集群原理基本原理上图是来自eureka的官方架构图,这是基于集群配置的eureka;处于不同节点的eureka通过Replicate进行数据同步Application Service为服务提供者Application Client为服务消费者Make Remote Call完成一次服务调用服务启动后向Eureka注册,Eureka Server会将注册信息向其他Eureka Server进行同步,当服务消费者要调用服务提供者,则向服务注册中心获取服务提供者地址,然后会将服务原创 2021-12-14 22:11:24 · 247 阅读 · 0 评论 -
什么是Eureka? 单机版Eureka如何使用?
Eureka 是什么?Eureka 是Spring Cloud的服务治理组件,有三个核心角色: 服务注册中心、服务提供者、服务消费者。Eureka 主管服务注册中心。 是Netflix的一个子模块,也是核心模块之一。Eureka是一个基于REST的服务,用于定位服务,以实现定位服务,以实现云端中间层服务发现和故障转移。服务注册与发现对于微服务架构来说是非常重要的,有了服务发现与注册,只需要使用服务的标识符,就可以访问到服务,而不需要修改服务调用的配置文件了,功能类似于dubbo的注册中心比如Zookee原创 2021-12-14 22:09:44 · 395 阅读 · 0 评论 -
REST和RPC是什么东东?两者有什么区别
1 REST与RPC概念什么是RESTREST是一种架构风格,指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。REST规范把所有内容都视为资源,网络上一切皆资源。REST并没有创造新的技术,组件或服务,只是使用Web的现有特征和能力。 可以完全通过HTTP协议实现,使用 HTTP 协议处理数据通信。REST架构对资源的操作包括获取、创建、修改和删除资源的操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法。HTTP动词与REST风格CR原创 2021-12-14 22:03:27 · 889 阅读 · 0 评论 -
微服务架构与SpringCloud
微服务架构简述通常而言,微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行在其独立的自己的进程中,服务之间互相协调、互相配合为用户提供最终价值。服务之间采用轻量级的通信机制互相沟通(通常是基于HTTP的Restful API) 每个服务否围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来原创 2021-12-14 22:00:42 · 220 阅读 · 0 评论 -
Eclipse构建Maven分包分模块项目并构建服务端
首先说一下Maven 模块结构:一个简单的Maven模块结构是这样的:---- app-parent 一个父项目(app-parent)聚合很多子项目(app-util,app-dao,app-service,app-web)|---- pom.xml (pom)||-------- app-util| |-------- pom.xml (jar)||-------- app-dao| |-------- pom.xml (jar)||-------- app-service| |原创 2021-12-14 21:54:07 · 528 阅读 · 0 评论 -
Dubbo与SpringCloud的架构与区别
Dubbo与SpringCloud的架构与区别Dubbo架构图SpringCloud 架构图总结框架DubboSpringCloud服务注册中心ZookeeperSpring Cloud Netfix Eureka(nacos)服务调用方式RPCREST API服务监控Dubbo-monitorSpring Boot Admin熔断器不完善Spring Cloud Netflix Hystrix服务网关无Spring Cloud原创 2021-12-08 22:07:18 · 308 阅读 · 0 评论 -
Shiro——RememberMe
Shiro提供了记住我(RememberMe)的功能,比如访问如淘宝等一些网站时,关闭了浏览器下次再打开时还是能记住你是谁,下次访问时无需再登录即可访问,基本流程如下:1、首先在登录页面选中RememberMe然后登录成功;如果是浏览器登录,一般会把RememberMe的Cookie写到客户端并保存下来;2、关闭浏览器再重新打开;会发现浏览器还是记住你的;3、访问一般的网页服务器端还是知道你是谁,且能正常访问;4、但是比如我们访问淘宝时,如果要查看我的订单或进行支付时,此时还是需要再进行身份认证的,原创 2021-12-04 18:28:54 · 1145 阅读 · 0 评论 -
RPC(一)[概述]
文章目录RPC-概述简介1.服务的调用过程2.RPC框架1.Dubbo–电商2.Motan–互联网3.Thrift4.gRPC5.RPCX3.RPC 和 RESTful1.RPC over HTTP 和 RESTful2.RPC over TCP 和 RESTfulRPC-概述简介远程过程调用(Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。远程过程调用是一个分布式计原创 2021-12-01 23:39:41 · 634 阅读 · 0 评论 -
Shiro之UsernamePasswordToken&RememberMeAuthenticationToken&AuthenticationToken
继承关系先看一下三者的继承关系,会有一个比较清楚的认识AuthenticationTokenAuthenticationToken 用于收集用户提交的身份(如用户名)及凭据(如密码)。Shiro会调用CredentialsMatcher对象的doCredentialsMatch方法对AuthenticationInfo对象和AuthenticationToken进行匹配。匹配成功则表示主体(Subject)认证成功,否则表示认证失败。RememberMeAuthenticationToke原创 2021-11-30 23:13:56 · 764 阅读 · 0 评论 -
SpringBoot + Shiro 缓存&记住密码
一般来讲,记住密码的基本处理,就是把用户的一些基本信息(密码)存入浏览器的Cookie,下次登录的时候优先验证Cookie,后端做处理;以此来实现记住密码的功能!使用shiro自带的RememberMe功能,使用起来比较简单,只需简单的配置。需注意一点的是,网站如果对安全性要求比较高的,一般都不建议有记住密码的功能! 因为Cookie是保存在本机电脑浏览器里,不排除其他用户能使用此电脑,拷走Cookie,导入其他电脑继续使用您的账号登录!shiro实现了身份验证和权限验证。但是,如果我们登录之后多次访原创 2021-11-30 22:31:21 · 706 阅读 · 0 评论 -
Shiro 登录认证源码详解
Apache Shiro 是一个强大且灵活的 Java 开源安全框架,拥有登录认证、授权管理、企业级会话管理和加密等功能,相比 Spring Security 来说要更加的简单。本文主要介绍 Shiro 的登录认证(Authentication)功能,主要从 Shiro 设计的角度去看这个登录认证的过程。一、Shiro 总览首先,我们思考整个认证过程的业务逻辑:获取用户输入的用户名,密码;从服务器数据源中获取相应的用户名和密码;判断密码是否匹配,决定是否登录成功。我们现在来看看 Shiro原创 2021-11-30 22:22:33 · 657 阅读 · 0 评论 -
Linux重置Mysql密码_解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost
Linux重置Mysql密码一般这个错误是由密码错误引起,解决的办法自然就是重置密码。假设我们使用的是root账户。1.重置密码的第一步就是跳过MySQL的密码认证过程,方法如下:#vim /etc/my.cnf(注:windows下修改的是my.ini)在文档内搜索mysqld定位到[mysqld]文本段:/mysqld(在vim编辑状态下直接输入该命令可搜索文本内容)在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程,如下图所示:保存文档并退原创 2021-11-28 12:52:58 · 350 阅读 · 0 评论 -
微服务系列之ZooKeeper注册中心和Nacos注册中心&Nacos和Zookeeper对比
一、ZooKeeper注册中心Zookeeper 是 Apache Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为 Dubbo 服务的注册中心,工业强度较高,可用于生产环境,推荐使用。流程说明:服务提供者启动时: 向 /dubbo/com.foo.BarService/providers 目录下写入自己的 URL 地址。服务消费者启动时: 订阅 /dubbo/com.foo.BarService/providers 目录下的提供者 URL 地址。并向 /dubbo/com.原创 2021-11-27 13:56:29 · 1623 阅读 · 0 评论 -
什么是Nacos?Nacos注册配置中心介绍
一、什么是Nacos英文全称Dynamic Naming and Configuration Service,Na为naming/nameServer即注册中心,co为configuration即注册中心,service是指该注册/配置中心都是以服务为核心。服务在nacos是一等公民二、Nacos原理  原创 2021-11-27 11:41:40 · 654 阅读 · 0 评论 -
nacos初探--作为配置中心
什么是nacosNacos 支持基于 DNS 和基于 RPC 的服务发现(可以作为springcloud的注册中心)、动态配置服务(可以做配置中心)、动态 DNS 服务。官方介绍是这样的:Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构(例如微服务范式、云原生范式)的服务基础设施。官方网址:h原创 2021-11-26 23:41:00 · 169 阅读 · 0 评论