前言
本文是对之前开发中遇到的问题的一个总结,文章其实早就写好,但是觉得自己写的不够深入,就让文章一直躺在草稿箱里。昨天突然想起来了,就将文章重新修改了一下,还是发出来吧!
关于策略模式的文章,其实网上实在是太多了,自己的又没有啥文采,肯定也是写不出来什么花!但是我突然想起了孔乙己,对没错就是那个知道“茴”字有四种写法的孔乙己。当时,语文老师说这个场景是为了表现孔乙己的一种迂腐封建的性格。可是我对孔乙己的“茴”字有四种写法,一直有着不同的看法。我倒是觉得从某种意思上知道四种写法反倒是好事,比如你老板安排你做一件事情,你有四种不同的方案可以解决,这难道不是一件好事情嘛!于是,我还是觉得这篇文章还是有写的必要,让大家看看“茴”字有不同的写法。
在系统是单体架构时,系统是和单个数据库进行交互,所以如果有多表操作的时候,可以使用数据库的事务实现数据的一致性,这种事务可以称之为本地事务。随着业务的发展,系统的压力越来越大,单体数据库的性能也达到了瓶颈,不可避免的进行数据库的拆分,还有系统模块的拆分,跨服务、跨数据库的事务场景就越来越多,这样解决分布式的事务的需求就出现了。
大家是不是会经常听到有人说写代码要“高内聚、低耦合”,但是你要是问他什么是高内聚低耦合(waht)?为什么要高内聚、低耦合(why)?怎么做才能高内聚、低耦合(how)? 这些问题就不一定都能回答的了!
我在之前的文章设计模式学习之策略模式 一文中介绍了策略模式的优点、缺点、实现方法和具体的使用场景。策略类有策略类会增多,造成类膨胀
的缺点,这个缺点我还是比较在意的。因为在实际开发中发现,有时策略的实现没有多少代码,这样的定义成一个策略类反而真的有点浪费,确实造成了类膨胀。自从发现了这个问题,我一直在思考如何解决这种问题,经过思考解决问题的方法已经想出来了,但是一直没有去尝试做出来看看是否真的能解决策略模式 类膨胀的问题
,终于在这周我忙里偷闲用代码实现了我的想法,我自认为利用 Lambda表达式 + 反射 + 注解
组合解决了类膨胀的问题
,这种船新版本实现方案,容我细细道来!
RocketMQ 是基于发布订阅模型的消息中间件。所谓的发布订阅就是说,consumer 订阅了 broker 上的某个 topic,当 producer 发布消息到 broker 上的该 topic 时,consumer 就能收到该条消息。RocketMQ默认支持两种消费模式,分别是集群消费模式和广播消费模式,默认集群消费模式。
作为一名程序员,你是不是经常在很多场景,例如看博客、聊天吹水等等时候听到这样一个词”系统数据一致性”,是不是有时候感觉到了迷糊,不知道这个”系统数据一致性”到底是在说什么?其实,你可能只是不明白这个词,但是你肯定在实际工作中发现、解决过这样的问题。