摘要: 1 背景 经常会遇到这种情况,我们的业务已经稳定地运行一段时间了,并且流量渐渐已经上去了。这时候,却因为某些原因(比如功能调整或者业务扩展),你需要对数据表进行调整,加字段 or 修改表结构。 可能很多人说 alter table add column ... / alter table modif 阅读全文
posted @ 2022-05-31 14:41 Hello-Brand 阅读(1007) 评论(5) 推荐(8) 编辑
摘要: 1 背景 分布式系统绕不开的核心之一的就是数据缓存,有了缓存的支撑,系统的整体吞吐量会有很大的提升。通过使用缓存,我们把频繁查询的数据由磁盘调度到缓存中,保证数据的高效率读写。 当然,除了在内存内运行还远远不够,我们今天就以具有代表性的缓存中间件Redis为例子,分析下,它是如何达到飞起的效率。 2 阅读全文
posted @ 2022-05-21 14:19 Hello-Brand 阅读(287) 评论(0) 推荐(5) 编辑
摘要: ★微服务系列 微服务1:微服务及其演进史 微服务2:微服务全景架构 微服务3:微服务拆分策略 微服务4:服务注册与发现 微服务5:服务注册与发现(实践篇) 微服务6:通信之网关 微服务7:通信之RPC 微服务8:通信之RPC实践篇(附源码) 微服务9:服务治理来保证高可用 1 微服务带来的挑战 在第 阅读全文
posted @ 2022-05-06 14:25 Hello-Brand 阅读(350) 评论(1) 推荐(0) 编辑
摘要: 1 关于消息中间件 1.1 什么是消息中间件? 消息中间件是指在分布式系统中完成消息的发送和接收的基础软件。 消息中间件也可以称消息队列(Message Queue / MQ),用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息队列模型,可 阅读全文
posted @ 2022-04-14 14:08 Hello-Brand 阅读(534) 评论(0) 推荐(0) 编辑
摘要: 1 理解泛型的本质 JDK 1.5开始引入Java泛型(generics)这个特性,该特性提供了编译时类型安全检测机制,允许程序员在编译时检测到非法的类型。 泛型的本质是参数化类型,即给类型指定一个参数,然后在使用时再指定此参数具体的值,那样这个类型就可以在使用时决定了。这种参数类型可以用在类、接口 阅读全文
posted @ 2022-04-11 14:25 Hello-Brand 阅读(449) 评论(0) 推荐(0) 编辑
摘要: ★微服务系列 微服务1:微服务及其演进史 微服务2:微服务全景架构 微服务3:微服务拆分策略 微服务4:服务注册与发现 微服务5:服务注册与发现(实践篇) 微服务6:通信之网关 微服务7:通信之RPC 微服务8:通信之RPC实践篇(附源码) 1 说明 上一节我们我们详细学习了RPC的概念和原理,以及 阅读全文
posted @ 2022-03-22 14:40 Hello-Brand 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 1 动态数据源的必要性 我们知道,物理服务机的CPU、内存、存储空间、连接数等资源都是有限的,某个时段大量连接同时执行操作,会导致数据库在处理上遇到性能瓶颈。而在复杂的互联网业务场景下,系统流量日益膨胀。为了解决这个问题,行业先驱门充分发扬了分而治之的思想,对大库表进行分割,然后实施更好的控制和管理 阅读全文
posted @ 2022-03-17 14:56 Hello-Brand 阅读(422) 评论(0) 推荐(3) 编辑
摘要: ★微服务系列 微服务1:微服务及其演进史 微服务2:微服务全景架构 微服务3:微服务拆分策略 微服务4:服务注册与发现 微服务5:服务注册与发现(实践篇) 微服务6:通信之网关 微服务7:通信之RPC 1 什么是RPC通信 RPC:Remote Procedure Call Protocol,指的是 阅读全文
posted @ 2022-03-15 17:14 Hello-Brand 阅读(415) 评论(0) 推荐(0) 编辑
摘要: ★微服务系列 微服务1:微服务及其演进史 微服务2:微服务全景架构 微服务3:微服务拆分策略 微服务4:服务注册与发现 微服务5:服务注册与发现(实践篇) 微服务6:通信之网关 1 概述 回顾下前面几篇关于微服务的介绍,我们可以了解到从当单体系统到微服务,再到服务网格的演进过程。那单体系统和微服务相 阅读全文
posted @ 2022-02-18 15:58 Hello-Brand 阅读(503) 评论(0) 推荐(0) 编辑
摘要: 1 回顾下MySQL主从复制 主从复制,是指建立一个和主数据库完全一样的数据库环境(称为从数据库),并将主库的操作行为进行复制的过程:将主数据库的DDL和DML的操作日志同步到从数据库上, 然后在从数据库上对这些日志进行重新执行,来保证从数据库和主数据库的数据的一致性。 1.1 为什么要做主从复制 阅读全文
posted @ 2022-02-10 13:40 Hello-Brand 阅读(711) 评论(2) 推荐(1) 编辑
摘要: ★微服务系列 微服务1:微服务及其演进史 微服务2:微服务全景架构 微服务3:微服务拆分策略 微服务4:服务注册与发现 微服务5:服务注册与发现(实践篇) 1 服务注册中心 前面我们对业内几种比较常见的注册中心做了介绍:Eureka、Zookeeper、Consul、Etcd。 并且在各个指标上做了 阅读全文
posted @ 2022-01-28 14:32 Hello-Brand 阅读(701) 评论(0) 推荐(1) 编辑
摘要: 1 介绍 在分布式系统中,由于涉及到多个不同业务module的交互,以及高并发的场景。我们需要系统能够生成一个跨业务module的全网唯一序列号,来保证我们业务操作的独立性和唯一性。 在常见的业务场景中,比如全局订单Id,唯一标识的支付编号等,都需要这个来保证。 那生成ID都有哪些解决方案呢?特别是 阅读全文
posted @ 2022-01-24 14:42 Hello-Brand 阅读(615) 评论(2) 推荐(2) 编辑
摘要: ★ 微服务系列 微服务1:微服务及其演进史 微服务2:微服务全景架构 微服务3:微服务拆分策略 微服务4:服务注册与发现 微服务5:服务注册与发现(实践篇) 1 微服务的注册与发现 我们前面在全景架构中对服务注册与发现做了大致的说明,本章我们着重详细说明微服务下注册与发现的这个能力。 微服务注册与发 阅读全文
posted @ 2022-01-20 15:51 Hello-Brand 阅读(927) 评论(0) 推荐(1) 编辑
摘要: 1 介绍 前面的文章我们介绍了分布式系统和它的CAP原理:一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)。参考这篇《分布式事务》 我们知道,一个分布式系统无法同时满足三个特性,所以在设计系统之初,就有一个特性要被妥协和牺牲, 阅读全文
posted @ 2022-01-14 15:16 Hello-Brand 阅读(439) 评论(0) 推荐(1) 编辑
摘要: ★ 微服务系列 微服务1:微服务及其演进史 微服务2:微服务全景架构 微服务3:微服务拆分策略 微服务4:服务注册与发现 微服务5:服务注册与发现(实践篇) 前面我们学习了微服务的全景架构,了解到相对于传统单体架构,微服务的优势,以及系统服务化的发展趋势。 对于新启动的项目,我们在权衡之后可以大方的 阅读全文
posted @ 2022-01-09 10:53 Hello-Brand 阅读(811) 评论(0) 推荐(1) 编辑
摘要: 1 背景 我们的云办公系统有一个会议预定模块,每个月最后一个工作日的下午三点,会启动对下个月会议室的可用预定。 公司的会议室大约200个,但是需求量远不止于此,所以会形成会议室抢订的场面(抢订大军为行政助理、人事助理、开发经理、产品运营等对会议室有刚性需求的人)。 程序团队,经常会接到投诉,A同学和 阅读全文
posted @ 2021-12-31 15:01 Hello-Brand 阅读(2650) 评论(5) 推荐(6) 编辑
摘要: ★ 微服务系列 微服务1:微服务及其演进史 微服务2:微服务全景架构 微服务3:微服务拆分策略 微服务4:服务注册与发现 微服务5:服务注册与发现(实践篇) 1 微服务优势与挑战 1.1 微服务的优势 1.1.1 单一职责 微服务架构中的每个节点高度服务化,都是具有业务逻辑的,符合高内聚、低耦合原则 阅读全文
posted @ 2021-12-28 15:34 Hello-Brand 阅读(1071) 评论(0) 推荐(3) 编辑
摘要: 1 关于分布式系统 1.1 介绍 我们常见的单体结构的集中式系统,一般整个项目就是一个独立的应用,所有的模块都聚合在一起。明显的弊端就是不易扩展、发布冗重、服务治理不好做。 所以我们把整个系统拆分成若干个具备独立运行能力的计算服务的集合,而从用户的角度看,是一个完整的系统,但实际上,它是一个分布式服 阅读全文
posted @ 2021-12-23 15:27 Hello-Brand 阅读(1557) 评论(3) 推荐(3) 编辑
摘要: ★ 微服务系列 微服务1:微服务及其演进史 微服务2:微服务全景架构 微服务3:微服务拆分策略 微服务4:服务注册与发现 微服务5:服务注册与发现(实践篇) 1 传统单体系统介绍 在很多项目的业务初期阶段,高速迭代上线是首要考虑的事情,对后期的容量预估、可扩展性和系统健壮性、高可用一般没有那么重视。 阅读全文
posted @ 2021-12-16 14:51 Hello-Brand 阅读(4049) 评论(11) 推荐(21) 编辑
摘要: 1 真实案例 云办公系统用户实时信息查询功能优化发布之后,系统发生宕机事件(系统挂起,页面无法加载)。 1.1 背景 我们IM原有的一个功能,当鼠标移动到用户头像的时候,会显示出用户的基本信息。信息比较简单,只包含简单的用户名、昵称、性别、邮箱、电话等基本数据, 这是一个典型的数据查询,大概过程如下 阅读全文
posted @ 2021-12-10 14:45 Hello-Brand 阅读(5023) 评论(9) 推荐(21) 编辑
摘要: 1 背景 经常会遇到这种情况,我们的业务已经稳定地运行一段时间了,并且流量渐渐已经上去了。这时候,却因为某些原因(比如功能调整或者业务扩展),你需要对数据表进行调整,加字段 or 修改表结构。 可能很多人说 alter table add column ... / alter table modif 阅读全文
posted @ 2022-05-31 14:41 Hello-Brand 阅读(1007) 评论(5) 推荐(8) 编辑
摘要: 1 背景 分布式系统绕不开的核心之一的就是数据缓存,有了缓存的支撑,系统的整体吞吐量会有很大的提升。通过使用缓存,我们把频繁查询的数据由磁盘调度到缓存中,保证数据的高效率读写。 当然,除了在内存内运行还远远不够,我们今天就以具有代表性的缓存中间件Redis为例子,分析下,它是如何达到飞起的效率。 2 阅读全文
posted @ 2022-05-21 14:19 Hello-Brand 阅读(287) 评论(0) 推荐(5) 编辑
摘要: ★微服务系列 微服务1:微服务及其演进史 微服务2:微服务全景架构 微服务3:微服务拆分策略 微服务4:服务注册与发现 微服务5:服务注册与发现(实践篇) 微服务6:通信之网关 微服务7:通信之RPC 微服务8:通信之RPC实践篇(附源码) 微服务9:服务治理来保证高可用 1 微服务带来的挑战 在第 阅读全文
posted @ 2022-05-06 14:25 Hello-Brand 阅读(350) 评论(1) 推荐(0) 编辑
摘要: 1 关于消息中间件 1.1 什么是消息中间件? 消息中间件是指在分布式系统中完成消息的发送和接收的基础软件。 消息中间件也可以称消息队列(Message Queue / MQ),用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息队列模型,可 阅读全文
posted @ 2022-04-14 14:08 Hello-Brand 阅读(534) 评论(0) 推荐(0) 编辑
摘要: 1 理解泛型的本质 JDK 1.5开始引入Java泛型(generics)这个特性,该特性提供了编译时类型安全检测机制,允许程序员在编译时检测到非法的类型。 泛型的本质是参数化类型,即给类型指定一个参数,然后在使用时再指定此参数具体的值,那样这个类型就可以在使用时决定了。这种参数类型可以用在类、接口 阅读全文
posted @ 2022-04-11 14:25 Hello-Brand 阅读(449) 评论(0) 推荐(0) 编辑
摘要: ★微服务系列 微服务1:微服务及其演进史 微服务2:微服务全景架构 微服务3:微服务拆分策略 微服务4:服务注册与发现 微服务5:服务注册与发现(实践篇) 微服务6:通信之网关 微服务7:通信之RPC 微服务8:通信之RPC实践篇(附源码) 1 说明 上一节我们我们详细学习了RPC的概念和原理,以及 阅读全文
posted @ 2022-03-22 14:40 Hello-Brand 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 1 动态数据源的必要性 我们知道,物理服务机的CPU、内存、存储空间、连接数等资源都是有限的,某个时段大量连接同时执行操作,会导致数据库在处理上遇到性能瓶颈。而在复杂的互联网业务场景下,系统流量日益膨胀。为了解决这个问题,行业先驱门充分发扬了分而治之的思想,对大库表进行分割,然后实施更好的控制和管理 阅读全文
posted @ 2022-03-17 14:56 Hello-Brand 阅读(422) 评论(0) 推荐(3) 编辑
摘要: ★微服务系列 微服务1:微服务及其演进史 微服务2:微服务全景架构 微服务3:微服务拆分策略 微服务4:服务注册与发现 微服务5:服务注册与发现(实践篇) 微服务6:通信之网关 微服务7:通信之RPC 1 什么是RPC通信 RPC:Remote Procedure Call Protocol,指的是 阅读全文
posted @ 2022-03-15 17:14 Hello-Brand 阅读(415) 评论(0) 推荐(0) 编辑
摘要: ★微服务系列 微服务1:微服务及其演进史 微服务2:微服务全景架构 微服务3:微服务拆分策略 微服务4:服务注册与发现 微服务5:服务注册与发现(实践篇) 微服务6:通信之网关 1 概述 回顾下前面几篇关于微服务的介绍,我们可以了解到从当单体系统到微服务,再到服务网格的演进过程。那单体系统和微服务相 阅读全文
posted @ 2022-02-18 15:58 Hello-Brand 阅读(503) 评论(0) 推荐(0) 编辑
摘要: 1 回顾下MySQL主从复制 主从复制,是指建立一个和主数据库完全一样的数据库环境(称为从数据库),并将主库的操作行为进行复制的过程:将主数据库的DDL和DML的操作日志同步到从数据库上, 然后在从数据库上对这些日志进行重新执行,来保证从数据库和主数据库的数据的一致性。 1.1 为什么要做主从复制 阅读全文
posted @ 2022-02-10 13:40 Hello-Brand 阅读(711) 评论(2) 推荐(1) 编辑