[转]缓存构架经验总结 – 1. 进程内缓存,究竟怎么玩?
除了常见的redis/memcache等进程外缓存服务,缓存还有一种常见的玩法,进程内缓存。 什么是进程内缓存? 答:将一些数据缓存在站点,或者服务的进程内,这就是进程内缓存。 进程内缓存的实现载体,最简单的,可以是一个带锁的Map。又或者,可以使用第三方库,例如leveldb。
Just One Pure ITer
除了常见的redis/memcache等进程外缓存服务,缓存还有一种常见的玩法,进程内缓存。 什么是进程内缓存? 答:将一些数据缓存在站点,或者服务的进程内,这就是进程内缓存。 进程内缓存的实现载体,最简单的,可以是一个带锁的Map。又或者,可以使用第三方库,例如leveldb。
缓存是互联网系统架构中必不可少的一环,近一个月,写了一些缓存的文字。 1.《1. 进程内缓存究竟怎么玩?》 缓存,可以分为:进程内缓存,缓存集群。文章介绍了: (1)什么是进程内缓存 (2)进程内缓存的优缺点 (3)进程内缓存保存一致性的3种方案 (4)到底什么时候用进程内缓存
AI 前线导读:图数据库有很多用途,适用于比如反欺诈、智能推荐等等应用场景,也有人说:图数据库可以做到关系数据库可以做到的任何事情。那图数据库究竟是怎样存储这些数据的,为什么它能适用于上述那些场景,图数据库真的比关系数据库先进么?本文作者花了一些时间去认真了解了一下图数据库,并将与我们分享他对图数据库的一些心得体会。
为什么开发人员必须要了解数据库锁? 超赞,InnoDB调试死锁的方法! InnoDB,并发如此之高的原因 InnoDB,巧妙实现四种隔离级别 InnoDB,索引记录上的三种锁 InnoDB,RR和RC的快照读有何不同 聚集索引与普通索引的差异 索引,底层是如何实现的?
Kafka 主题最重要的一个功能是可以让消费者指定它们想要消费的消息子集。在极端情况下,将所有数据放在同一个主题中可能不是一个好主意,因为这样消费者就无法选择它们感兴趣的事件——它们需要消费所有的消息。另一种极端情况,拥有数百万个不同的主题也不是一个好主意,因为 Kafka 的每个主题都是有成本的,拥有大量主题会损害性能。 实际上,从性能的角度来看,分区数量才是关键因素。在 Kafka 中,每个主题至少对应一个分区,如果你有 n 个主题,至少会有 n 个分区。不久之前,Jun Rao 写了一篇博文,解释了拥有多个分区的成本(端到端延迟、文件描述符、内存开销、发生故障后的恢复时间)。根据经验,如果你关心延迟,那么每个节点分配几百个分区就可以了。如果每个节点的分区数量超过成千上万个,就会造成较大的延迟。
Cache in distributed Architecture
by leelight · Published September 21, 2018 · Last modified September 22, 2018
memcache和redis是互联网分层架构中,最常用的KV缓存。不少同学在选型的时候会纠结,到底是选择memcache还是redis。 画外音:不鼓励粗暴的实践,例如“memcache提供的功能是redis提供的功能的子集,不用想太多,选redis准没错”。 虽然redis比memcache更晚出来,且功能确实也更丰富,但对于一个技术人,了解“所以然”恐怕比“选择谁”更重要一些。
监控系统是整个 IT 架构中的重中之重,小到故障排查、问题定位,大到业务预测、运营管理,都离不开监控系统,可以说一个稳定、健康的 IT 架构中必然会有一个可信赖的监控系统。 但是,难道监控就只是监控?多年来,对于监控的术语一直都有很多困惑,一些很糟糕的工具也宣称能够以一种格式完成所有事情。
MQ in distributed Architecture
by leelight · Published September 20, 2018 · Last modified March 26, 2019
消息队列中间件(简称消息中间件)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下提供应用解耦、弹性伸缩、冗余存储、流量削峰、异步通信、数据同步等等功能,其作为分布式系统架构中的一个重要组件,有着举足轻重的地位。 目前开源的消息中间件可谓是琳琅满目,能让大家耳熟能详的就有很多,比如 ActiveMQ、RabbitMQ、Kafka、RocketMQ、ZeroMQ 等。不管选择其中的哪一款,都会有用的不趁手的地方,毕竟不是为你量身定制的。
51 信用卡的技术架构是基于 Spring Cloud 所打造的微服务体系,随着业务的飞速发展,不断增多的微服务以及指标给监控平台带来了极大的挑战。监控团队在开源 vs 自研,灵活 vs 稳定等问题上需要不断做出权衡,以应对飞速发展的需求。本次将会分享我们在微服务下的白盒监控思考,以及如何将时下社区流行的 Spring Cloud、Kubernetes、Prometheus 等开源技术在企业落地。
1. 一,为什么要冗余数据 互联网数据量很大的业务场景,往往数据库需要进行水平切分来降低单库数据量。 水平切分会有一个patition key,通过patition key的查询能够直接定位到库,但是非patition key上的查询可能就需要扫描多个库了。 此时常见的架构设计方案,是使用数据冗余这种反范式设计来满足分库后不同维度的查询需求。
Follow:
Cookie | Duration | Description |
---|---|---|
cookielawinfo-checkbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
cookielawinfo-checkbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
cookielawinfo-checkbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |