DDD(一)核心概念

原文:https://herbertograca.com/2017/09/07/domain-driven-design/转载:https://www.jianshu.com/p/812636d55677 这篇文章是软件架构编年史(译)的一部分,这部编年史由一系列关于软件架构的文章组成。在这一系列文章中,我将写下我对软件架构的学习和思考,以及我是如何运用这些知识的。如果你阅读了这个系列中之前的文章,本篇文章的的内容将更有意义。 Eric Evans 于 2003 年出版了精采绝伦的《领域驱动设计:软件核心复杂性应对之道》,在书中他创造了领域驱动设计方法。Eric Evans 的这本著作十 ...

Sentinel与Hystrix的对比

Sentinel 是阿里中间件团队研发的面向分布式服务架构的轻量级高可用流量控制组件,已开源。Sentinel 主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助用户保护服务的稳定性。 大家可能会问:Sentinel 和之前常用的熔断降级库 Netflix Hystrix 有什么异同呢?本文将从多个角度对 Sentinel 和 Hystrix 进行对比,帮助大家进行技术选型。先来看一下 Hystrix 的官方介绍: Hystrix is a library that helps you control the interactions between these dist ...

限流熔断降级区别

熔断、限流、降级都是保持系统稳定运行的策略,但针对的场景有所不同,常用框架有 hystrix 和 sentinel 限流限流是指上游服务对本服务请求 QPS 超过阙值时,通过一定的策略(如延迟处理、拒绝处理)对上游服务的请求量进行限制,以保证本服务不被压垮,从而持续提供稳定服务。常见的限流算法有滑动窗口、令牌桶、漏桶等如上图,当 服务 B 对 服务 D 请求过多时,服务 D 可以放弃一部分请求,保证自身服务的稳定 常见限流算法https://www.cnblogs.com/taromilk/p/11751211.html 限流规则参数说明:限流类型:分为 HSF 限流和 HTTP 限流。请根据 ...

APISIX

1、概述APISIX 是基于 OpenResty + etcd 实现的云原生、高性能、可扩展的微服务 API 网关。它是国人开源,目前已经进入 Apache 进行孵化。 OpenResty:通过 Lua 扩展 Nginx 实现的可伸缩的 Web 平台。 etcd:Key/Value 存储系统。 Apache APISIX 是一个动态、实时、高性能的 API 网关,提供负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。Apache APISIX 不仅拥有众多实用的插件,而且支持插件动态变更和热插拔。APISIX 通过插件机制,提供了动态负载平衡、身份验 ...

TMC多级缓存

TMC (Transparent Multilevel Cache) 在通用“分布式缓存解决方案(如 CodisProxy + Redis )”基础上,增加了以下功能: 应用层热点探测 应用层本地缓存 应用层缓存命中统计 以帮助应用层解决缓存使用过程中出现的热点访问问题 使用有赞服务的电商商家数量和类型很多, 商家会不定期做一些“商品秒杀”、“商品推广”活动, 导致“营销活动”、“商品详情”、“交易下单”等链路应用出现 缓存热点访问 的情况: 活动时间、活动类型、活动商品之类的信息不可预期,导致 缓存热点访问 情况不可提前预知; 缓存热点访问 出现期间,应用层少数热点访问 key ...

HBase(四)读优化

https://blog.csdn.net/weixin_40954192/article/details/106942029 LSM 存储引擎是在 B+树的基础上衍生过来的,目的就是为了在读和写之间,提高写的性能。所以,LSM 树的弊端也由此可见,对读并不是很友好,所以,针对 LSM 树,有后续 compact,布隆过滤器,blockCache 等优化方式。来弥补对读的查询。LSM 树的索引一般由 2 部分构成,一部分是内存部分,一部分是磁盘部分。内存部分采用跳跃表来维护一个有序的 KV 集合,也就是 memstore.随着内存不断数据写入,一旦内存占用超过 ...

Redis线程模型

一、Redis 有多快?Redis 是基于内存运行的高性能 K-V 数据库,官方提供的测试报告是单机可以支持约 10w/s 的 QPS 二、Redis 为什么这么快?(1)完全基于内存,数据存在内存中,绝大部分请求是纯粹的内存操作,非常快速,跟传统的磁盘文件数据存储相比,避免了通过磁盘 IO 读取到内存这部分的开销。(2)数据结构简单,对数据操作也简单。Redis 中的数据结构是专门进行设计的,每种数据结构都有一种或多种数据结构来支持。Redis 正是依赖这些灵活的数据结构,来提升读取和写入的性能。(3)采用单线程,省去了很多上下文切换的时间以及 CPU 消耗,不存在竞争条件,不用去 ...

HBase(三)LSM树

https://zhuanlan.zhihu.com/p/181498475 LSM 树(Log-Structured-Merge-Tree)的名字往往会给初识者一个错误的印象,事实上,LSM 树并不像 B+树、红黑树一样是一颗严格的树状数据结构,它其实是一种存储结构,目前HBase、LevelDB、RocksDB 这些 NoSQL 存储都是采用的 LSM 树。LSM 树的核心特点是利用顺序写来提高写性能,但因为分层(此处分层是指的分为内存和文件两部分)的设计会稍微降低读性能,但是通过牺牲小部分读性能换来高性能写,使得 LSM 树成为非常流行的存储结构。 数据库存储有两种数据结构,一种 B ...