贫瘠之地

华北无浪漫,死海扬起帆
多少个夜晚,独自望着天

0%

心脏停跳器 Flatliner

Flatliner Espresso Martini Cocktail Recipe Riff | PUNCH (punchdrink.com)

丝般柔滑,泡沫四溢,科罗拉多州(Colorado)特莱瑞德(Telluride)的非正式酒单,和意式浓缩马天尼(Espresso Martini)和泥石流(Mudslide)相似,但对于滑雪小镇居民而言,它是当地的经典

尽管调酒师史蒂夫 · 福斯特(Steve Foster)起初是在 The Peaks Resort & Spa 供应这一鸡尾酒,但配方已经传遍了整个城市

阅读全文 »

背景

桥接(bridge)模式首先的场景是内部实现逻辑分为多个模块,每个模块又可能对应多种实现

在桥接内部,这些不同类型的模块按照组合或聚合的方式组织在一起,将逻辑模块抽象部分与实现部分相分离

目的 降低内部多种类型逻辑模块的耦合,扩展变成以各模块为单位,更为灵活

现实世界类比 Vans自由定制鞋_Vans(范斯)中国官方网站

阅读全文 »

精酿

在公司的技术分享周会上进行分享的文档

只是进了简单的介绍,并且很多地方都是简略地描述了一下

对于不了解精酿的朋友可以借此了解一下 Craft Beer

什么是 Craft Beer

美国的精酿运动

20 世纪开始,美国先后经历一战、禁酒令、二战,导致啤酒迅速退出市场

阅读全文 »

背景

特征 or 全部

在实际需求中,往往存在类似需求:

  • 黑白名单;例如手机号、网站等,需要过滤掉在黑名单中的数据,或者放行在白名单中的数据
  • 推荐去重;首页新闻、视频等资源已经给用户推荐过的不进行重复推送
  • 缓存穿透;保证缓存层能正常工作,不被特殊请求大量造成缓存穿透

最容易想到的,就是通过一个集合例如 Map、List 等结构将数据存储起来,判断是否存在于集合中

阅读全文 »

背景

管道模式(Pipeline Pattern)是责任链模式(Chain of Command Pattern)的变体;区别在于责任链是将处理器按照链条组织起来,待处理的上下文按照链条找到能够处理自己的处理器,一般只有唯一的一个处理器;而管道模式是链条中的每一个处理器都需要对上下文进行处理

目的 降低业务逻辑流程的耦合性,将整个过程中所有的处理器隔离开,更方便扩展流程上新的业务逻辑

现实世界类比 工厂的生产流水线,车架 -> 发送机 -> 外壳 -> 内饰 -> 总装 -> 质检,整辆车在传送带又一个环节运输至另一个环节,每个处理环节都对汽车处理自己的部分,最终产出成品

实践

阅读全文 »

Topic 与 Tag

在 RocketMQ 中,Topic 和 Tag 都是业务上用来归类的标识,通过合理的使用 Topic 和 Tag 可以让业务结构清晰,更可以提高效率

Topic 是消息主题,通过 Topic 对不同的业务消息进行分类 Tag 是消息标签,用来进一步区分某个 Topic 下的消息分类,是消息生产时即由消息生产者设置的属性

Topic 和 Tag 的选择,建议从以下几个方面判断:

  • 消息类型是否一致:普通消息、事务消息、延迟消息、顺序消息;不同消息使用不同的 Topic,无法通过 Tag 进行区分
  • 业务是否相关联:没有关联的业务应该使用不同的 Topic
  • 消息优先级是否一致:同一个 Topic 内应该是同样优先级的消息
  • 量级是否相当:业务量小但实时性高的消息和业务量大的消息放在一个 Topic 内,可能会导致饥饿
阅读全文 »