ICode9

精准搜索请尝试: 精确搜索
  • <二>使用castle.core 简单实现AOP2022-07-18 07:31:49

    一、实现方式 静态代理:代理模式,装饰器模式。 动态代理:利用反射生成动态代理类。 特性:利用.netcore框架自带的特性框架做封装。比如:Filter Emit:  机器自动生成代理类。比如:castle.core 静态编织:在代码编译的时候动态插入代码。 二、Castle.core使用的Emit的方式动态帮助我们生

  • dubbo(九):timeout超时机制解析2022-07-09 14:02:12

      在网络请求时,总会有各种异常情况出现,我们需要提前处理这种情况。在完善的rpc组件dubbo中,自然是不会少了这一层东西的。我们只需要通过一些简单的配置就可以达到超时限制的作用了。   dubbo的设计理念是,客户端控制优先,服务端控制兜底。   1. 超时机制的实现思路   要想实

  • Dubbo Fliter机制(十)2022-02-10 10:32:50

    在对服务者调用流程的讲解中,最后invoker调用链是 RegisterDirectory$InvokerDelegate.invoke(InvokerWrapper.invoke)  ->  ListenerInvokerWraper.invoke  -> ProtocolFilterWrapper.invoke  -> DubboInvoke.invoke 接下来将重点介绍该流程,其中包括一系列的filter   Invoker

  • DDD 引入Autofac对各层进行解耦,并编写通用的方法拦截器,工作单元,仓储实现2022-02-05 19:34:10

    从零开始写一个领域模型的框架 每篇文章都会打一个对应的 tag Github 仓库地址   这版代码   使用 Autofac 代替 .NET Core内置的依赖注入框架   使用 Autofac 定义方法拦截器,对指定的方法进行拦截操作   工作单元 (目前只写了根据id 获取一条数据的功能)   使用 Autofac

  • 第四章:(6)原理之 Dubbo 服务调用流程2022-01-16 11:02:09

    一、服务调用流程   1、服务引用完成之后,会返回一个代理对象。     2、通过 debug,会来到 InvokerInvocationHandler 的 invoker 方法 @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { String methodName

  • Dubbo+Zookeeper笔记2022-01-07 22:03:33

    Dubbo简介 Dubbo是阿里巴巴开源的一款Java RPC框架 一款分布式服务框架 高性能和透明化的RPC远程服务调用方案 SOA服务治理方案 核心功能 智能容错和负载均衡 服务注册和发现 面向接口的远程方法调用 角色 Provider(生产者):暴露服务的服务提供者 Container:服务运行的容器 Co

  • Dubbo集群容错之Cluster2021-12-25 19:31:37

    1. 前言 线上服务很少会单机部署,它不满足互联网三高架构的需求。服务一旦挂了,高可用就无从谈起,另外Dubbo单机默认最大200的并发处理也不满足所谓的高并发、高性能。所以,作为一款优秀的分布式服务框架,Dubbo是支持集群容错的。 ​ Dubbo整个集群容错层的实现在dubbo-cluster模

  • Dubbo服务调用源码分析2021-12-12 18:32:45

    RPC调用:客户端将服务调用接口、方法名、方法类型参数和方法参数值进行序列化传输到服务端,服务端反序列读取信息进行代理调用。 总结: (1)客户端启动时会从注册中心拉取和订阅相应的服务列表,Cluster会把拉取的服务列表合成一个Invoker。 (2)Directory#list获取providers地址(已

  • Dubbo解析之集群容错机制2021-12-07 08:32:00

    在上一章节,我们曾提到这样一个问题: 当调用服务失败后,我们怎么处理当前的请求?抛出异常亦或是重试? 为了解决这个问题,Dubbo 定义了集群接口 Cluster 以及 Cluster Invoker。集群 Cluster 用途是将多个服务提供者合并为一个 Cluster Invoker,并将这个 Invoker 暴露给服务消费者。这样

  • 深度分析Dubbo SPI源码,扩展Dubbo Validation (groups)2021-12-01 22:33:48

    前言 架构是网关直接通过泛化调用Dubbo服务,不同于web Controller使用spring mvc模块来做到参数注解校验。不过不用担心Dubbo也考虑到了这一点,基于SPI机制提供了ValidationFilter 那我们就来看看他是如何实现的。 Dubbo源码实现 Dubbo SPI定义 你可能要问问了什么是Dubbo SPI,

  • Dubbo源码解析-Consumer发送请求全过程2021-11-30 12:32:22

    前言: 之前的文章已经从调用结构方面从前到后整个梳理了一下全过程。 本篇就从实战调用角度来分析下整个过程,之前是抽象,现在就是实战。 1.示例代码 代码的话跟之前是一样的,笔者在这里再贴一下 1.1 provider public class ProviderApplication { public static void main(Str

  • Javascript报uncaught typeerror illegal invocation错误2021-11-27 17:59:24

          今天在写js代码的时候遇到一个奇怪的错误,uncaught typeerror illegal invocation。               这个错误以前一直没遇到过,不知道是什么问题,于是我仔细看我的代码,才发现是因为自己粗心,在用ajax向后台传值的时候把一个对象当作参数传上去了,所以才会报这个错误

  • Dubbo ActiveLimitFilter限流2021-11-18 23:33:06

    public class ActiveLimitFilter implements Filter, Filter.Listener { private static final String ACTIVE_LIMIT_FILTER_START_TIME = "active_limit_filter_start_time"; @Override public Result invoke(Invoker<?> invoker, Invocation

  • 如何在Castle.DynamicProxy中使用IInterceptor?(How use IInterceptor in Castle.DynamicProxy?)2021-09-28 23:02:44

    参考:https://www.it1352.com/1796724.html 我写了一个这样的例子 简单计算器类: public class Calculator { public int Add(int a, int b) { return a + b; } } 实现了DynamicProxy提供的"IInterceptor" [Serializable] public abstract class Intercept

  • CTMediator在iOS模块化/组件化开发中的应用2021-07-25 16:30:28

            模块化和组件化在当下的iOS开发中已经深入人心,App的代码不会全部都放在一个主工程里。尤其是开发人员越来越多,业务越来越复杂,代码量越来越多,模块化/组件化开发变得尤为重要。这样做的好处有: 解耦:避免代码严重合耦,增加复用和扩展难度;结构清晰,易读,易维护;开发效率高:可

  • SpringCloud+Dubbo实现自定义Filter过滤器,关键配置2021-06-26 12:58:30

    直接上代码,服务提供方 package com.weifor.xx.api.dubbo; import com.weifor.util.WeiFor; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.common.constants.CommonConstants; import org.apache.dubbo.common.extension.Activate; import org.apache.dubbo.rpc.

  • 我是一个请求,我该何去何从2021-06-22 13:02:03

    摘要:本文主要分析在cse框架下一个请求是怎么被接受和处理的。 本文分享自华为云社区《我是一个请求,我该何去何从?》,原文作者:向昊。 前置知识 领券网 https://m.cps3.cn/ cse的通信是基于vert.x来搞的,所以我们首先得了解下里面的几个概念: Verticle:You can think of verticle in

  • Spring事务管理简单原理2021-05-12 13:31:30

    Spring事务管理简单原理 1. @EnableTransactionManagement 使用注解 @EnableTransactionManagement 开启事务管理。该注解导入类 TransactionManagementConfigurationSelector.class 。如下所示: @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented

  • StrutsResultSupport的使用2021-04-28 21:02:39

    在有特殊情况时;如果没有异常信息,但是有错误并且有错误信息等内容;此时也需要进行友好的错误处理的话,那么可以借助StrutsResultSupport 返回结果类型来实现特定处理。此种方式先需要继承StrutsResultSupport ,然后可以在子类中获取本次请求的相关信息,再根据相关信息进行结果处理: pa

  • Dubbo源码分析(八)集群容错机制2021-04-25 20:04:19

      前言 在上一章节,我们曾提到这样一个问题:当调用服务失败后,我们怎么处理当前的请求?抛出异常亦或是重试? 为了解决这个问题,Dubbo 定义了集群接口 Cluster 以及 Cluster Invoker。集群 Cluster 用途是将多个服务提供者合并为一个 Cluster Invoker,并将这个 Invoker 暴露给服务消费者

  • Dubbo核心源码剖析(集群 集群容错 负载均衡 服务治理 通信协议)2021-04-25 18:58:52

    Dubbo核心源码剖析(集群 集群容错 负载均衡 服务治理 通信协议 Dubbo核心源码剖析1. Dubbo高可用集群1.1 服务集群的概述1.1.1 概述1.1.2 调用过程1.1.3 组件介绍 1.2 集群容错机制1.2.1 内置集群容错策略1.2.2 集群容错调优1.2.3 源码分析 1.3 集群负载均衡策略1.3.1 负

  • 14-Spring事务原理2021-02-28 18:32:00

    @EnableTransactionManagement 利用TransactionManagementConfigurationSelector 往容器中注入了两个类 AutoProxyRegistrar、ProxyTransactionManagementConfiguration AutoProxyRegistrar 往容器中注入了 InfrastructureAdvisorAutoProxyCreator InfrastructureAdvisorAu

  • vue项目报错Unable to preventDefault inside passive event listener invocation2021-02-27 21:32:31

    问题阐述 vue项目报错Unable to preventDefault inside passive event listener invocation. 显示为: 原因: 安装的default-passive-events依赖包导致的错误 解决方法 卸载相关依赖 npm uninstall default-passive-events 最后 十分感谢原博主,原博客的地址如下: vue-admin-e

  • 使用 Castle 实现 AOP,以及 Autofac 集成 Castle2021-02-22 09:03:01

    Castle 是 2003 年诞生于 Apache Avalon 项目,目的是为了创建一个IOC 框架。发展到现在已经有四个组件: ORM组件:ActiveRecord IOC组件:Windsor 动态代理组件:DynamicProxy Web MVC组件:MonoRail 本文主要介绍 动态代理组件 Castle.DynamicProxy 基本用法 Castle.DynamicProxy 是通过

  • dubbo的集群容错和路由负载2021-02-19 21:31:43

    前面看完了服务的引用:dubbo的服务引用 在服务引用最终的就是生成了一个代理类,那么在调用某个被代理的接口时,实际上就是通过代理类去调用的,同时在实际调用之前做了容错、路由、负载等等。实际上每个调用都会从org.apache.dubbo.rpc.proxy.InvokerInvocationHandler#invoke代理

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有