分布式、微服务
文章平均质量分 91
分布式,微服务,中间件相关
qxhly
但行善事,莫问前程
展开
-
分布式锁实现
对于一个单机的系统,我们可以通过synchronized或者ReentrantLock等这些常规的加锁方式来实现,然而对于一个分布式集群的系统而言,单纯的本地锁已经无法解决问题,所以就需要用到分布式锁了,通常我们都会引入三方组件或者服务来解决这个问题,比如数据库、Redis、Zookeeper等。 通常来说,分布式锁要保证互斥性、不死锁、可重入等特点 互斥性指的是对于同一个资源,任意时刻,都只有一个客户端能持有锁 不死锁指的是必须要有锁超时这种机制,保证在出现问题的时候释放锁,不会出现死锁的问题 可重入指的转载 2021-08-27 11:18:58 · 98 阅读 · 0 评论 -
分布式ID
什么是分布式ID 在我们业务数据量不大的时候,单库单表完全可以支撑现有业务,数据再大一点搞个MySQL主从同步读写分离也能对付。 但随着数据日渐增长,主从同步也扛不住了,就需要对数据库进行分库分表,但分库分表后需要有一个唯一ID来标识一条数据,数据库的自增ID显然不能满足需求;特别一点的如订单、优惠券也都需要有唯一ID做标识。此时一个能够生成全局唯一ID的系统是非常必要的。那么这个全局唯一ID就叫分布式ID。 分布式ID需要满足那些条件 全局唯一:必须保证ID是全局性唯一的,基本要求 高性能:高可用低延时转载 2021-08-26 16:49:49 · 119 阅读 · 0 评论 -
分布式事务
什么是分布式事务 分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器「分别位于不同的分布式系统的不同节点之上」 一个大的操作由N多的小的操作共同完成。而这些小的操作又分布在不同的服务上。针对于这些操作,「要么全部成功执行,要么全部不执行」 为什么会有分布式事务 上图中包含了库存和订单两个独立的微服务,每个微服务维护了自己的数据库。在交易系统的业务逻辑中,一个商品在下单之前需要先调用库存服务,进行扣除库存,再调用订单服务,创建订单记录。 正常情况下,两个数据库各自更新成功,两边数据维持着转载 2021-08-26 09:52:29 · 142 阅读 · 0 评论 -
CAP和BASE理论
问题的提出 在计算机科学领域,分布式一致性是一个相当重要且被广泛探索与论证问题,首先来看下面三种业务场景: 火车站售票 假如我们的用户是一位经常坐火车的旅行家,通常他是去车站的售票处购买车票,然后拿着车票去检票口,再坐上火车,开始一段美好的旅行,一切似乎都是那么和谐。想象一下,如果他选择的目的地是杭州,而某一趟开往杭州的火车只剩下最后一张车票,可能在同一时刻,不同售票窗口的另一位乘客也购买了同一张车票。假如说售票系统没有进行一致性的保障,两人都购票成功了。而在检票口 检票的时候,其中一位乘客会被告知他的车票转载 2021-08-25 15:22:11 · 118 阅读 · 0 评论 -
RabbitMQ基础
RabbitMQ 简介 RabbitMQ 是采用 Erlang 语言实现 AMQP(Advanced Message Queuing Protocol,高级消息队列协议)的消息中间件,它最初起源于金融系统,用于在分布式系统中存储转发消息。 RabbitMQ 发展到今天,被越来越多的人认可,这和它在易用性、扩展性、可靠性和高可用性等方面的卓著表现是分不开的。RabbitMQ 的具体特点可以概括为以下几点: 可靠性: RabbitMQ使用一些机制来保证消息的可靠性,如持久化、传输确认及发布确认等。 灵活的路由转载 2021-08-22 19:21:27 · 216 阅读 · 0 评论