Annotation和动态代理-2
为了方便表述,下面分不同的章节分别描述不同代理类的差异,最后统一进行比较 JDK Proxy 从上一篇分析中,我们已经可以得到,JDK Proxy生成的代理类为Proxy0,利用HSDB,从classes browser中可以将.class文件导出,通过procyon来进行反编译,得到内容如下 package com.sun.proxy; import com.qiongsong....
为了方便表述,下面分不同的章节分别描述不同代理类的差异,最后统一进行比较 JDK Proxy 从上一篇分析中,我们已经可以得到,JDK Proxy生成的代理类为Proxy0,利用HSDB,从classes browser中可以将.class文件导出,通过procyon来进行反编译,得到内容如下 package com.sun.proxy; import com.qiongsong....
今天在集成规则引擎代码的时候,发现一个(些)有趣的问题 类型注解为何频频丢失? 我们的规则引擎通过Annotation实现流程分支和行为的控制,当我将规则使用@Service托管给Spring之后,却出现无法通过引擎规则验证的情况的情况,经过简单的排除,发现是因为通过Spring注入的实例获取Annotation的时候无法正常获取到对应的注解。 A foundAnnotation =...
最近后台系统逐步从Dubbo的RPC风格转换为HTTP REST风格调用,考虑到服务治理和安全域管理的统一,没有直接使用Dubbox作为升级方案,而是使用在服务提供者和服务消费者中间增加网关代理,并逐步将原来使用Dubbo迁移到新的网关(NGINX) + REST(Resteasy)模式上。改造的一部分难点在于减少已有接口的调整,原来大量的接口编码方式为: @Autowired priv...
拓展Spring的属性配置功能 在工作中广泛地使用 Spring framework,相比之前零散的配置文件管理和内部组件关系管理,Spring framework确实有大幅度的改进,但是在默认值和值动态更新两个方面,Spring并没有提供默认的支持,好在Spring本身提供了非常强大的拓展功能,让我们在不修改Spring框架的前提下,能够拓展支持这两项功能。 默认值 使用Spring...
在线程执行或者RPC远程调用的时候,常常会需要配置超时属性。典型的场景为:A线程发起一个调用C,并等待调用结果返回,在超过一定时间阈值之后,抛出TimeoutException异常,并中断调用C。这里就隐含了几个条件。 需要发起调用 需要知道何时超时,发出超时信号 进行超时处理,中断调用 根据经典的停机理论,一个线程是无法知道自己何时会终止。同样的,一个线程也无法知道自己...
Canal Canal Server模拟MySQL的Slave服务器,dump MySQL的binlog并解析成为事件,通过Canal Client读取,用于各种操作。可能的应用场景有: 与共享缓存或者搜索引擎的集成 事件驱动业务 数据库同步 分布式索引 使用Canal的优点,在于可以最大限度解耦业务和数据的关系。一般而言,业务操作生成数据,数据库存储数据并提供数据访...
ZooKeeper选举过程 为了实现zookeeper的高可用,一般会以集群的方式来搭建。集群机器的数量一般为2n+1台,在zoo.cfg中进行配置,具体可以参考Zookeeper Admin。 在集群运行下zk使用了一种leader-follower的模式运行 从集群中选举出一台Leader,在正常情况下Leader有且仅有一台,其他的服务器作为follower的角色 客户...
在编码中存在一个职责分离的原则,是说将系统切分成不同的部分,每一个部分实现系统功能的一部分。这个方法在大的系统切分中很容易实现。因为一般而言一个大的系统流程都可以切分成不同的子系统,每一个子系统实现独立的功能,然后通过消息传递或者共享内存的方式连接协同工作。但是同样的原则,在具体的代码中就显得比较难处理。主要的难度在于一个细致的功能点,在代码实现的时候最简单的是将所有的功能都实现在一个类中。...
Zookeeper服务启动 ZooKeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负债均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。 从本质上,Zookeeper类似一个分布式的存储系统,通过以Leader-Followers的模式运行的集群来实现高可用。本文主要分析单机模式的zk的启动流程。...
Paxos算法的描述和证明都非常简洁,但是核心的概念都非常抽象,如果需要工程化应用于实际的系统中需要完成的工作更多。最近对Paxos的研究,参考了很多互联网上的资料,这篇文章试图对这些参考做一个记录,并提供一个适于我的角度理解的Paxos算法解读。 Paxos解决的问题 如我们在上一篇文章《多副本和分布式一致性》中讨论的,在分布式系统中一个核心的问题:“在多个不可靠的节点中,达成...