Think_Higher
内存虽快,但不持久,好记性不如烂笔头。
展开
-
订单超时自动取消3种方案
1.定时任务2.被动取消3.延时消息原创 2023-04-06 11:01:57 · 1914 阅读 · 1 评论 -
MySQL数据同步ES的常用思路和方法
1.同步双写2.异步双写3.定时任务4.数据订阅原创 2023-04-06 10:58:54 · 1372 阅读 · 0 评论 -
Redisson简单介绍
一、Redisson 是什么?Netty 框架基础数据结构分布式数据结构分布式锁节点二、整合 Redisson2.1 引入 Maven 依赖2.2 自定义配置类2.3 测试配置类三、分布式可重入锁3.1 可重入锁测试3.1.1 验证一:可重入锁是阻塞的吗?3.1.2 验证二:服务停了,锁会释放吗?3.2 看门狗原理3.3 设置锁过期时间四、最终方案五、分布式读写锁六、分布式信号量原创 2023-03-19 19:06:28 · 423 阅读 · 0 评论 -
分布式锁实现原理与实战(下)
3.4 zookeeper 瞬时znode节点 + watcher监听机制3.5 zookeeper curator3.6 RedissionSpringBoot项目引入常见分布式锁的原理4.1 Redisson4.1.1 尝试加锁的逻辑4.1.2 锁续命逻辑4.1.3 循环间隔抢锁机制4.1.4 释放锁和唤醒其他线程的逻辑4.1.5 重入锁的逻辑4.2 RedLock解决非单体项目的Redis主从架构的锁失效4.2.1 RedLock 原理4.2.2 RedLock 问题一:持久原创 2023-03-15 21:56:04 · 383 阅读 · 0 评论 -
分布式锁实现原理与实战(上)
超卖问题复现1.1 现象错误案例一:数据库update相互覆盖错误案例二:扣减串行执行,但是库存被扣减为负数错误案例三:使用 synchronized 实现内存中串行校验,但是依旧扣减为负数1.2 解决办法单体应用解决超卖的问题常见分布式锁的使用3.1 数据库乐观锁3.2 数据库分布式锁3.2.1 简单的数据库锁3.3 Redis setNx原创 2023-03-15 21:55:33 · 151 阅读 · 0 评论 -
订单如何自动取消?延迟队列?定时任务?
DelayQueue案例实现原理Timer实现原理ScheduledThreadPoolExecutor实现原理RocketMQ案例实现原理RabbitMQ案例监听Redis过期key任务存在延迟丢消息太频繁消息消费只有广播模式Netty的HashedWheelTimer实现原理Hutool的SystemTimerQurtaz实现原理无限轮询延迟任务总结原创 2023-03-15 16:16:56 · 204 阅读 · 0 评论 -
分布式下有哪些好用的监控组件?
在上一课时的内容中,分析了分布式系统下的线上服务监控的常用指标,那么在实际开发中,如何收集各个监控指标呢?线上出现告警之后,又如何快速处理呢?这一课时我们就来看下这两个问题。文章目录常用监控组件OpenFalconZabbixNagiosCAT监控处理制度常用监控组件目前分布式系统常用的监控组件主要有 OpenFalcon、Nagios、Zabbix、CAT 等,下面一起来看看这几款组件的应用及相关特性。好钢要用在刀刃上,由于各类监控组件的应用和配置更偏向基础运维,所以本课时的目的是希望你对几种组件有原创 2020-10-09 21:27:25 · 736 阅读 · 1 评论 -
线上服务有哪些稳定性指标?
在分布式高可用设计中,系统监控非常重要,系统监控做好了,可以提前对异常情况进行报警,避免很多线上故障的产生。系统监控做得好不好,也是评价一家互联网公司基础建设水平的重要标准,今天一起来讨论一下,线上服务都有哪些监控指标,又应该如何展开呢?文章目录系统监控的重要性稳定性指标有哪些服务器监控指标系统运行指标基础组件指标业务运行时指标总结系统监控的重要性我的一个朋友是做底层开发工作的,包括内部数据库和微服务的中间件,前不久入职了一家互联网创业公司,这家公司虽然成立不久,但是业务发展很快。最近这几天他和我吐槽原创 2020-10-09 21:26:26 · 2120 阅读 · 0 评论 -
如何选择适合业务的负载均衡策略?
在分布式系统的高可用设计中,负载均衡非常关键,我们知道,分布式系统的特性之一就是支持快速扩展,那么集群扩展之后,服务请求如何从服务器列表中选择合适的一台呢?这就需要依赖负载均衡策略。负载均衡在处理高并发,缓解网络压力,以及支持扩容等方面非常关键,在不同的应用场景下,可以选择不同的负载均衡,下面一起来看一下负载均衡相关的知识。文章目录负载均衡的应用常见的复杂均衡策略轮询策略加权轮询随机策略最小响应时间最小并发数策略负载均衡如何实现负载均衡的应用负载均衡是指如何将网络请求派发到集群中的一个或多个节点上处原创 2020-10-09 21:25:47 · 576 阅读 · 1 评论 -
降级和熔断:如何增强服务稳定性?
上一课时我们分析了限流的常用策略,下面来看一下,高可用的另外两大撒手锏:降级和熔断,关于这两种技术手段如何实施,又有哪些区别呢?文章目录高可用之降级高可用之熔断总结高可用之降级为什么在大促时要开启降级,平时不去应用呢?在大促场景下,请求量剧增,可我们的系统资源是有限的,服务器资源是企业的固定成本,这个成本不可能无限扩张,所以说,降级是解决系统资源不足和海量业务请求之间的矛盾。降级的具体实现手段是,在暴增的流量请求下,对一些非核心流程业务、非关键业务,进行有策略的放弃,以此来释放系统资源,保证核心业原创 2020-10-09 21:25:10 · 365 阅读 · 1 评论 -
分布式下如何实现统一日志系统?
在业务系统开发中,日志的收集和分析很重要,特别是在进行故障分析时,日志记录得好,可以帮我们快速定位问题原因。在互联网分布式系统下,日志变得越来越分散,数据规模也越来越大,如何更好地收集和分析日志,就变成了一个特别重要的问题。文章目录传统的日志查看tail 和 head 命令more 和 lesscat为什么需要统一日志系统无法实现日志的快速搜索日志的集中收集和存储困难日志分析聚合及可视化ELK 统一日志系统在 ElasticSearch 中实现索引处理通过 Kibana 进行可视化操作、查询等总结传统的原创 2020-10-09 21:24:48 · 682 阅读 · 0 评论 -
高并发场景下如何实现系统限流?
在分布式高可用设计中,限流应该是应用最广泛的技术手段之一,今天一起来讨论一下,为什么需要限流,以及常见的限流算法都有哪些。文章目录常见限流算法计数器法漏桶和令牌桶算法不同限流算法的比较总结常见限流算法限流是服务降级的一种手段,顾名思义,通过限制系统的流量,从而实现保护系统的目的。合理的限流配置,需要了解系统的吞吐量,所以,限流一般需要结合容量规划和压测来进行。当外部请求接近或者达到系统的最大阈值时,触发限流,采取其他的手段进行降级,保护系统不被压垮。常见的降级策略包括延迟处理、拒绝服务、随机拒绝等。原创 2020-10-09 14:31:57 · 414 阅读 · 1 评论 -
从双十一看高可用的保障方式
从双十一限制退款说起每年的电商大促活动,规模最大的就是双十一促销,双十一已经从光棍节,演变成了国内最大的电商促销活动。每年的双十一,我都会买一些打折力度比较大的商品,特别是数码产品,比如相机、键盘等,相信你肯定也和我一样,有很多“买买买”的经历。类似双十一、618 这种促销活动,都会设置整点抢购。不知道你在双十一零点下单的过程中,有没有经历过排队等待,或者系统不可用的情况呢?另外,细心的你可能已经发现了,历年的双十一活动,当天往往是不支持退款的,几大电商网站都会提前发布公告,对和订单无关的业务进行降级原创 2020-10-09 11:35:11 · 398 阅读 · 1 评论 -
分布式缓存考点梳理 + 高频面试题
分布式缓存在面试中如何考察对缓存和数据库的考察,一直都是业务开发同学在面试中的核心问题,特别是缓存部分,随着大部分公司业务规模的增加,缓存的应用越来越重要。我偶尔会和身边的同事调侃:如何应对高并发?答案是加一层缓存,如果不够,就再加一层缓存。缓存在分布式场景下的应用,比单机情况下更加复杂,除了常见的缓存雪崩、缓存穿透的预防,还要额外考虑缓存数据之间的一致性,缓存节点的负载均衡,缓存的监控和优化等。在面试中,对分布式缓存的考察一般有两种方式:通过实际场景来考察对缓存设计和应用的理解;直接考察常原创 2020-10-08 17:32:04 · 370 阅读 · 0 评论 -
缓存高可用:缓存如何保证高可用?
上一课时提到了缓存集群的负载均衡策略,保证缓存服务的高可用,集群策略是最常用的,这一课时,我们以 Redis 为例,分析一下单点缓存如何扩展到集群,以及集群部署的几种常见模式。文章目录Redis 的主从复制Redis Sentinel——Redis 哨兵Redis Cluster 集群Redis 的主从复制集群实现依靠副本,而副本技术有个非常关键的一点,那就是各个副本之间的快速数据同步,也就是我们常说的主从复制。主从复制技术在关系型数据库、缓存等各类存储节点中都有比较广泛的应用。Redis 的主从复原创 2020-10-08 17:10:38 · 573 阅读 · 1 评论 -
负载均衡:一致性哈希解决了哪些问题?
在业务开发中,缓存服务和其他数据服务一样,需要满足高可用性,而高可用最常用的手段就是集群扩展。文章目录缓存的集群高可用不同路由方案的扩容问题哈希取模路由一致性哈希总结缓存的集群高可用目前 Redis 流行的集群方案有 官方 Cluster 方案、twemproxy 代理方案、哨兵模式、Codis 等方案,关于这几种方案的具体应用,我们在下一课时将详细展开讲解。缓存服务从单点扩展到集群以后,势必会产生缓存数据的分发问题,假设我们的缓存服务器有 3 台,每台缓存的数据是不相同的,那么我们在更新缓存时,该原创 2020-10-08 16:34:48 · 304 阅读 · 0 评论 -
失效策略:缓存过期都有哪些策略?
缓存使用的是内存资源,而内存资源是非常宝贵的,要用有限的服务器资源支撑更多的业务,就必须让那些访问频率不高的缓存删除掉,为新的缓存腾出内存空间。这一课时,我们一起来看一下,缓存失效有哪些策略。页面置换算法我们从一开始就提到,缓存技术在计算机系统设计中有着非常广泛的应用,对应到操作系统中,就是缓存页面的调度算法。在操作系统中,文件的读取会先分配一定的页面空间,也就是我们说的 Page,使用页面的时候首先去查询空间是否有该页面的缓存,如果有的话,则直接拿出来;否则就先查询,页面空间没有满,就把新页面缓存起原创 2020-10-07 15:31:03 · 534 阅读 · 0 评论 -
经典问题:先更新数据库,还是先更新缓存?
上一课时分享了缓存使用中的几个问题场景:缓存穿透、缓存击穿和缓存雪崩,这几个问题聚焦的是缓存本身的稳定性,包括缓存集群和缓存的数据,除了这些,缓存应用中,缓存和上下游系统的数据同步也很重要。这一课时,我们来学习缓存应用中的另一个高频问题:应用缓存以后,缓存和数据库何时同步。文章目录数据不一致问题更新缓存有哪些方式先更新数据库,再更新缓存先删缓存,再更新数据库先更新数据库,再删缓存对缓存更新的思考为什么删除而不是更新缓存多级缓存如何更新数据不一致问题我们知道,除了少部分配置信息类缓存,比如业务中的黑白名原创 2020-10-07 15:14:58 · 635 阅读 · 0 评论 -
如何避免缓存穿透、缓存击穿、缓存雪崩?
设计缓存系统不得不考虑的问题是缓存穿透、缓存击穿与失效时的雪崩效应,同时,关于这几种问题场景的认识及解决方案,也是面试中的高频考点。今天的内容,可以说是缓存应用的三板斧,下面我们一起来分析一下缓存应用中的这几个热门问题。缓存穿透先来看一下缓存穿透,顾名思义,是指业务请求穿过了缓存层,落到持久化存储上。在大多数场景下,我们应用缓存是为了承载前端业务请求,缓存被击穿以后,如果请求量比较大,则会导致数据库出现风险。以双十一为例,由于各类促销活动的叠加,整体网站的访问量、商品曝光量会是平时的千倍甚至万倍。巨原创 2020-10-06 22:04:19 · 683 阅读 · 0 评论 -
分布式系统中有哪些缓存?
缓存是分布式系统开发中的常见技术,在分布式系统中的缓存,不止 Redis、Memcached 等后端存储;在前端页面、浏览器、网络 CDN 中也都有缓存的身影。文章目录缓存有哪些分类前端缓存网络传输缓存服务端缓存数据库缓存缓存有哪些分类如果你是做业务开发的话,提起缓存首先想到的应该是应用 Redis,或者 Memcached 等服务端缓存,其实这些在缓存分类中只是一小部分。然而在整个业务流程中,从前端 Web 请求,到网络传输,再到服务端和数据库服务,各个阶段都有缓存的应用。以电商业务场景为例,如果原创 2020-10-06 21:55:10 · 1015 阅读 · 0 评论 -
消息队列考点梳理 + 高频面试题
面试中如何考察消息队列消息队列作为日常开发中应用最高频的基础组件之一,相关的问题自然也是面试中的常客。在面试中对消息队列的考察方式,主要包括两种形式,一种是针对消息队列的相关理论,比如消息队列重复消费、消费幂等性、消息队列的可靠传输等;另一种考察方式是针对某个具体的消息队列中间件,考察组件应用的原理,实现方案和应用细节,比如常见的 Kafka、RabbitMQ、RocketMQ 等消息队列组件。下面我梳理了一些面试中的高频问题,你可以对照这些问题,检测自己是否掌握了问题考察的内容,针对自己薄弱的环节,原创 2020-10-06 21:45:26 · 304 阅读 · 0 评论 -
消息队列选型:RocketMQ 适用哪些场景?
关于消息队列的应用场景有很多,不同消息队列由于在实现上有着细微的差别,所以就有各自适合的应用场景。如果你的工作以业务开发为主,建议了解一下消息队列背后的设计思想,以及其基本的特性,这样才能在业务开发中应用消息队列时,对消息队列进行合理的选型。这一课时我们一起来对 RocketMQ 做一个拆解。RocketMQ 应用RocketMQ 在阿里巴巴被大规模应用,其前身是淘宝的 MetaQ,后来改名为 RocketMQ,并加入了 Apache 基金会。RocketMQ 基于高可用分布式集群技术,提供低延时、高原创 2020-09-30 17:55:09 · 749 阅读 · 0 评论 -
消息队列选型:Kafka 如何实现高性能?
消息队列中应用最广泛的 Kafka 和 RocketMQ文章目录Kafka 的高性能磁盘顺序读写批量操作优化Sendfile 零拷贝MMAP 技术Kafka 的高性能不知道你有没有了解过自己电脑的配置?我们一般会认为高性能是和高配置联系在一起的,比如大内存比小内存快,8 核的机器比 4 核的机器快。我身边也有一些朋友是攒机爱好者,对各种硬件配置如数家珍。对于服务器来说,家用电脑的性能与配置的关系也同样适用——价格更昂贵的服务器会有更好的性能——这并不是一件需要大张旗鼓去讲述的事情。但 Kafka原创 2020-09-30 17:13:42 · 568 阅读 · 0 评论 -
高可用:如何实现消息队列的 HA?
管理学上有一个木桶理论,一只水桶能装多少水取决于它最短的那块木板,这个理论推广到分布式系统的可用性上,就是系统整体的可用性取决于系统中最容易出现故障,或者性能最低的组件。系统中的各个组件都要进行高可用设计,防止单点故障,消息队列也不例外,这一课时一起来看一下消息中间件的高可用设计。消息队列高可用手段一般来说,分布式系统的高可用依赖副本技术,副本的引入,使得分布式系统可以更好地进行扩展,当出现某个节点宕机时,由于副本的存在,也能够快速地进行替换,提升系统整体可靠性,防止数据丢失。消息队列如何实现高可用的原创 2020-09-30 15:57:55 · 533 阅读 · 0 评论 -
消息幂等:如何保证消息不被重复消费?
应用的幂等是在分布式系统设计时必须要考虑的一个方面,如果对幂等没有额外的考虑,那么在消息失败重新投递,或者远程服务重试时,可能会出现许多诡异的问题。一起来看一下,在消息队列应用中,如何处理因为重复投递等原因导致的幂等问题。文章目录对业务幂等的理解各类中间件对幂等性的处理远程服务调用的幂等问题消息消费中的重试问题消息投递的几种语义At most onceAt least onceExactly once不同消息队列支持的投递方式业务上如何处理幂等天然幂等不需要额外设计设置全局唯一消息 ID 或者任务 ID原创 2020-09-30 15:31:05 · 311 阅读 · 0 评论 -
业务上需要顺序消费,怎么保证时序性?
消息传输和消费的有序性,是消息队列应用中一个非常重要的问题,在分布式系统中,很多业务场景都需要考虑消息投递的时序。例如,电商中的订单状态流转、数据库的 binlog 分发,都会对业务的有序性有要求。今天我们一起来看下,消息队列顺序消费的相关内容。文章目录消息顺序消费有哪些困难分布式的时钟问题消息发送端和消费端的集群消息重传等的影响网络及内部并发不同消息队列对顺序消费的保证Kafka 顺序消息RocketMQ 顺序消息从业务角度保证顺序消费消息传输的有序性是否有必要业务中如何实现有序消费根据不同的业务场景,原创 2020-09-30 15:07:16 · 621 阅读 · 0 评论 -
集群消费和广播消费有什么区别?
为了规范消息队列中生产者和消费者的行为,消息中间件的构建中会实现不同的消费模型。这一篇讨论的话题来自 RocketMQ 中具体的两种消费模式,是消息队列中两种典型消费模型的实现。接下来我们就一起来看一下消息队列都有哪些消费模型,以及对应的具体实现。文章目录消息队列的消费模型消息队列的消费模型先来看一下消息队列的两种基础模型,也就是点对点和发布订阅方式。...原创 2020-09-29 17:51:09 · 742 阅读 · 0 评论 -
消息队列有哪些应用场景?
分布式系统不同模块之间的通信,除了远程服务调用以外,消息中间件是另外一个重要的手段,在各种互联网系统设计中,消息队列有着广泛的应用。从本篇开始,专栏进入分布式消息的模块,将讨论消息队列使用中的高频问题,先来看一下,消息队列的应用场景。文章目录什么是消息队列消息队列有哪些应用系统解耦异步处理请求缓冲数据分发几种常见的消息队列Apache KafkaApache RocketMQApache RabbitMQ总结什么是消息队列消息队列,顾名思义,就是传递消息的队列,学习操作系统中进程通信的时候我们知道,消原创 2020-09-29 16:43:05 · 362 阅读 · 0 评论 -
分布式存储考点梳理 + 高频面试题
面试中如何考察分布式存储广义的分布式存储根据不同的应用领域,划分为以下的类别:分布式协同系统分布式文件系统分布式任务调度框架分布式 NoSQL 存储分布式关系数据库各种消息队列 MQ流式计算框架当然,这只是一种划分方式,你也可以根据存储数据的特点,将分布式存储系统划分为块存储、对象存储等不同的分类。可以看到,分布式存储技术的范围非常大,技术覆盖的广度和深度都很有料,比如分布式协同系统或者各种流计算框架,都可以单独作为一个专栏来进行展开讲解。由于篇幅有限,原创 2020-09-28 15:56:52 · 1392 阅读 · 0 评论 -
ElasticSearch 是如何建立索引的?
前面讲到了 NoSQL 数据库的应用,在关系型数据库和 NoSQL 数据库之外,还有一类非常重要的存储中间件,那就是文件索引。当你在电商网站搜索商品,或者在搜索引擎搜索资料时,都离不开基于文件索引的各种检索框架的支持。我们就一起来看下以 ElasticSearch 为代表的文件索引相关的知识。文章目录ElasticSearch 简介ElasticSearch 应用ELK stack索引是如何建立的分词和索引建立索引对比 B+ 树ElasticSearch 简介在讨论 ElasticSearch 之前原创 2020-09-28 11:47:46 · 3780 阅读 · 0 评论 -
NoSQL 数据库有哪些典型应用?
之前介绍了数据库读写分离和分库分表相关知识,都是针对关系型数据库的,即通常说的 RDBMS。除了关系型数据库,NoSQL 在项目开发中也有着越来越重要的作用,与此同时,NoSQL 相关的内容也是面试的常客。今天我们一起来看下 NoSQL 数据库有哪些应用。文章目录对比关系型数据库NoSQL 数据库特性良好的扩展性,容易通过集群部署读写性能高,支持大数据量不限制表结构,灵活的数据模型NoSQL 数据库应用Key-Value 数据库文档型数据库列存储数据库图形数据库对比关系型数据库在介绍 NoSQL 数据原创 2020-09-28 10:22:14 · 1693 阅读 · 0 评论 -
分库分表以后,如何实现扩容?
在实际开发中,数据库的扩容和不同的分库分表规则直接相关,今天我们从系统设计的角度,抽象了一个项目开发中出现的业务场景,从数据库设计、路由规则,以及数据迁移方案的角度进行讨论。从业务场景出发进行讨论假设这样一个业务场景,现在要设计电商网站的订单数据库模块,经过对业务增长的估算,预估三年后,数据规模可能达到 6000 万,每日订单数会超过 10 万。首先选择存储实现,订单作为电商业务的核心数据,应该尽量避免数据丢失,并且对数据一致性有强要求,肯定是选择支持事务的关系型数据库,比如使用 MySQL 及 In原创 2020-09-27 19:46:48 · 1880 阅读 · 2 评论 -
存储拆分后,如何解决唯一主键问题?
上一篇我们讲到了分库分表,现在考虑这样一个问题:在单库单表时,业务 ID 可以依赖数据库的自增主键实现,现在我们把存储拆分到了多处,如果还是用数据库的自增主键,势必会导致主键重复。那么我们应该如何解决主键问题呢?这篇就来看下生成唯一主键相关的知识。生成主键有哪些方案如果用最简单的方式来生成唯一主键,可以怎么做呢?一个最直接的方案是使用单独的自增数据表,存储拆分以后,创建一张单点的数据表,比如现在需要生成订单 ID,我们创建下面一张数据表:CREATE TABLE IF NOT EXISTS `ord原创 2020-09-27 16:59:16 · 439 阅读 · 0 评论 -
为什么需要分库分表,如何实现?
“为什么需要分库分表,如何实现”?文章目录分库分表的背景读写的数据量限制数据库连接限制分库分表原理垂直切分水平切分在上一文章中讲到了读写分离,读写分离优化了互联网读多写少场景下的性能问题,考虑一个业务场景,如果读库的数据规模非常大,除了增加多个从库之外,还有其他的手段吗?方法总比问题多,实现数据库高可用,还有另外一个撒手锏,就是分库分表,分库分表也是面试的常客,今天一起来看一下相关的知识。分库分表的背景互联网业务的一个特点就是用户量巨大,BAT等头部公司都是亿级用户,产生的数据规模也飞速增长,传统原创 2020-09-25 18:06:38 · 865 阅读 · 1 评论 -
读写分离如何在业务中落地?
探讨读写分离如何在业务中落地。文章目录什么时候需要读写分离MySQL 主从复制技术binlog 日志主从复制过程读写分离要注意的问题主从复制下的延时问题主从复制如何避免丢数据总结读写分离是业务开发中常用的技术手段,在面试中也是热点问题,今天我们要讲的是在什么业务场景下需要读写分离,读写分离实现的机制,以及实际生产中应用读写分离要注意的问题。什么时候需要读写分离互联网大部分业务场景都是读多写少的,对于电商等典型业务,读和写的请求对比可能差了不止一个数量级。为了不让数据库的读成为业务瓶颈,同时也为了保证原创 2020-09-25 11:52:00 · 302 阅读 · 0 评论 -
分布式服务考点梳理 + 高频面试题
回顾一下该模块的核心内容,并且一起梳理一下面试中分布式服务的高频考点。文章目录如何考察分布式服务微服务技术栈梳理如何考察分布式服务在整个分布式课程中,分布式服务是大部分工程师实际开发中应用最多的,也是面试中经常出现的一个热点。在分布式服务部分的面试中,面试官通常会围绕“服务治理”的各个场景进行提问,考察候选人对微服务和服务治理各个环节的掌握程度。分布式服务这部分内容涉及的比较广,有非常丰富的内涵和外延知识。本课程只是带你描述了一些核心领域的知识点,剩下的内容,还需要你在平时的工作和学习中多多积累。原创 2020-09-25 11:36:07 · 492 阅读 · 0 评论 -
容器化升级对服务有哪些影响?
容器技术是近几年计算机领域的热门技术,特别是随着各种云服务的发展,越来越多的服务运行在以 Docker 为代表的容器之内。文章目录容器化技术简介虚拟化技术容器化技术两种虚拟化技术的对比容器化的原理NamespaceCgroups微服务如何适配容器化容器化技术简介相比传统虚拟化技术,容器技术是一种更加轻量级的操作系统隔离方案,可以将应用程序及其运行依赖环境打包到镜像中,通过容器引擎进行调度,并且提供进程隔离和资源限制的运行环境。虚拟化技术虚拟化技术通过 Hypervisor 实现虚拟机与底层硬件的解原创 2020-09-23 20:21:41 · 384 阅读 · 0 评论 -
ServiceMesh:服务网格有哪些应用?
微服务的部署架构中有一个有趣的边车模式,并且基于边车模式,扩展出了 Service Mesh 服务网格的概念。我们一起来学习下 Service Mesh 相关的知识。文章目录Sidecar 设计模式Service Mesh 服务网格什么是 Service MeshService Mesh 有哪些特点Service Mesh 和 API 网关的区别Service Mesh 解决方案IstioLinkerdSidecar 设计模式在了解服务网格之前,先来看一个微服务的设计模式——Sidecar,也就是边车原创 2020-09-23 20:21:29 · 976 阅读 · 0 评论 -
Dubbo vs Spring Cloud:两大技术栈如何选型?
提到微服务开源框架,不可不说的是 Dubbo 和 Spring Cloud,这两大框架应该是大家最熟悉的微服务解决方案,也是面试中的热点。梳理下 Dubbo 和 Spring Cloud 的应用特性,以及两个组件的功能对比。Dubbo 应用Dubbo 是阿里开源的一个分布式服务框架,目的是支持高性能的远程服务调用,并且进行相关的服务治理。在 RPC 远程服务这一课时我们也介绍过 Dubbo,从功能上,Dubbo 可以对标 gRPC、Thrift 等典型的 RPC 框架。总体架构下面这张图包含了 Du原创 2020-09-23 20:21:08 · 561 阅读 · 0 评论 -
分布式下如何实现配置管理?
随着业务的发展,应用系统中的配置会越来越多,配置之间也有不同的业务特点,比如业务依赖的数据库配置、缓存信息配置、索引存储配置等。这类配置一般比较稳定,不会频繁更改,通常会放在工程中作为配置文件随应用一起发布。除了这些配置,还有一部分配置会经常发生修改,比如限流降级开关配置、业务中的白名单配置等。这些配置项除了变更频繁,还要求实时性,如果采取和应用一起发布的方式,那么每次变更都要重新发布服务,非常不方便。为了解决这类配置问题,出现了分布式配置管理平台,我们就来了解一下分布式配置管理相关的内容。文章目录配原创 2020-09-23 16:06:45 · 575 阅读 · 0 评论