加入收藏 | 设为首页 | 会员中心 | 我要投稿 吉安站长网 (https://www.0796zz.com.cn/)- 科技、图像处理、媒体智能、办公协同、操作系统!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

法院拒绝了美国政府对维基解密创始人的引渡请求

发布时间:2021-01-30 19:23:05 所属栏目:传媒 来源:互联网
导读:4. Spring AOP 和 AspectJ AOP区别 4.1 Spring AOP Spring AOP 属于运行时增强,主要具有如下特点: 基于动态代理来实现,默认如果使用接口的,用JDK提供的动态代理实现,如果是方法则使用CGLIB实现 Spring AOP 需要依赖 IOC 容器来管理,并且只能作用于Spri

4. Spring AOP 和 AspectJ AOP区别

4.1 Spring AOP

Spring AOP 属于运行时增强,主要具有如下特点:

  • 基于动态代理来实现,默认如果使用接口的,用JDK提供的动态代理实现,如果是方法则使用CGLIB实现
  • Spring AOP 需要依赖 IOC 容器来管理,并且只能作用于Spring容器,使用纯Java代码实现
  • 在性能上,由于Spring AOP是基于动态代理来实现的,在容器启动时需要生成代理实例,在方法调用上也会增加栈的深度,使得Spring AOP的性能不如AspectJ的那么好。
  • Spring AOP致力于解决企业级开发中最普遍的AOP(方法织入)。

4.2 AspectJ

AspectJ 是一个易用的功能强大的AOP框架,属于编译时增强, 可以单独使用,也可以整合到其它框架中,是 AOP 编程的完全解决方案。AspectJ需要用到单独的编译器ajc。

AspectJ属于静态织入,通过修改代码来实现,在实际运行之前就完成了织入,所以说它生成的类是没有额外运行时开销的,一般有如下几个织入的时机:

  • 编译期织入(Compile-time weaving):如类 A 使用 AspectJ 添加了一个属性,类 B 引用了它,这个场景就需要编译期的时候就进行织入,否则没法编译类 B。
  • 编译后织入(Post-compile weaving):也就是已经生成了 .class 文件,或已经打成 jar 包了,这种情况我们需要增强处理的话,就要用到编译后织入。
  • 类加载后织入(Load-time weaving):指的是在加载类的时候进行织入,要实现这个时期的织入,有几种常见的方法

4.3 对比
 

核心组件:

  • zookeeper:使用已有的zookeeper集群,实现订阅任务的HA
  • canal-admin:数据订阅的控制层的控制台,管理canal-server上的订阅任务状态与配置
  • canal-server:用于运行数据订阅任务,抓取数据库binlog,投递到MQ或者下游client。

4.4 使用方式

Canal支持TCP直接消费、MQ消费两种模式。

为了支持多个下游消费,减少上游数据库订阅压力,我们使用了MQ消费模式。

将数据库订阅binlog投递到Rocketmq,下游用户可以利用Rocketmq的Consumer Group,多次、重复消费对应数据,实现业务解耦、缓存一致性等场景。

4.5 改造适配

1)控制台api封装

由于canal-admin的技术栈还是比较新的,有比较成熟的分层结构和独立的rpc接口,因此,在DTS服务中,包装相关canal-admin的接口,即可实现产品化的前台接口逻辑。

2)云原生改造

计划中,改造为k8s部署,支持快速扩缩容

5.数据迁移模块

5.1 技术选型

跟数据订阅不同,Mysql的数据迁移五花八门,实现原理也都各不相同。

(编辑:吉安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读