随笔分类 -  分布式

分库分表介绍
摘要:一、背景 读写分离是为了扩展数据库的读能力,分库分表则是为了扩展数据库的写能力。 一旦业务表中数据太大(对于mysql,单表数据一般不超过3000w,单库不超过300G),无论是任何CRUD操作,所耗费资源和性能都极大。这个时候一般就需要 分库分表,将海量数据分配给N个子表维护。 二、分库分表优点 阅读全文
posted @ 2018-08-22 15:28 知己一生 阅读(294) 评论(0) 推荐(0)
spring boot 分布式事务实现(XA方式)
摘要:关于spring boot 支持分布式事务,XA是常用的一种方式。 这里把相关的配置记下,方便以后使用。 首先配置两个不同的数据源 : 订单库、持仓库。 顺便把相关的依赖贴上,值得注意的是 spring-boot-starter-jta-atomikos 依赖,这是一个开源的事务管理器类。 以上就是 阅读全文
posted @ 2017-08-02 16:03 知己一生 阅读(6415) 评论(1) 推荐(0)
缓存失效策略(FIFO,LRU,LFU)
摘要:当缓存需要被清理时(比如空间占用已经接近临界值了),需要使用某种淘汰算法来决定清理掉哪些数据。常用的淘汰算法有下面几种: 1. FIFO:First In First Out,先进先出。判断被存储的时间,离目前最远的数据优先被淘汰。 2. LRU:Least Recently Used,最近最少使用 阅读全文
posted @ 2017-06-29 20:17 知己一生 阅读(251) 评论(0) 推荐(0)
微服务架构的特点
摘要:微服务架构的优势: 1.服务粒度小,根据业务功能划分服务粒度,降低了传统的单一结构系统的复杂性。 2.每个服务只做一件事(单一职责),负责该服务的团队可以更加独立工作。 3.管理容易,自动化部署与监控预警。 微服务化带来的挑战: 1.运维要求高,自动化、高可用 2.分布式复杂性,网络延迟、分布式事务 阅读全文
posted @ 2017-06-23 10:15 知己一生 阅读(935) 评论(0) 推荐(0)
java nio详解
摘要:一. 分布式rpc框架有很多,比如dubbo,netty,还有很多其他的产品。但他们大部分都是基于nio的, nio是非阻塞的io,那么它的内部机制是怎么实现的呢。 1.由一个专门的线程处理所有IO事件,并负责分发。 2.事件驱动机制,事件到来的时候触发操作,不需要阻塞的监视事件。 3.线程之前通过 阅读全文
posted @ 2017-06-08 17:10 知己一生 阅读(3485) 评论(0) 推荐(0)
关于dubbo的架构
摘要:dubbo是国内一个十分受欢迎的分布式rpc框架。 这篇博客是从dubbo官网出发,来说明下dubbo的技术架构。首先我们看下官网的架构图。 节点角色说明: Provider: 暴露服务的服务提供方。 Consumer: 调用远程服务的服务消费方。 Registry: 服务注册与发现的注册中心。 M 阅读全文
posted @ 2017-05-23 20:12 知己一生 阅读(194) 评论(0) 推荐(0)
系统并发量不同采用何种技术的讨论。
摘要:因为工作经验的原因,没有遇到很高并发的场景。所以对各种技术的应用场景都比较模糊。 今天偶尔看到了dubbo的官方文档。觉得上面的用户指南特别棒,让自己的思路一下子清晰了很多。 下面截了dubbo官网的一张图片 可以很清楚的看到系统集群在不同数量的时候,该采用何种架构。 单一应用架构: 当网站流量很小 阅读全文
posted @ 2017-05-12 13:31 知己一生 阅读(169) 评论(0) 推荐(0)
服务路由和负载均衡介绍。
摘要:分布式应用对业务逻辑复用的需求十分强烈。上层业务都想借用底层服务,来搭建更多、更丰富的应用。 将公共业务拆分出来,形成可共用的服务,最大程度的保障代码和逻辑的复用,这种设计成为SOA(面向服务架构)。 在SOA中,服务消费者通过服务名称,在服务列表中找到需要调用的服务,这称为服务的路由。 而对于负载 阅读全文
posted @ 2017-05-11 17:40 知己一生 阅读(703) 评论(0) 推荐(0)
分布式一致性的目的。
摘要:1.随着多线程的兴起,为系统的性能带来了卓越的提升。但也带来了另一个最大的副作用,那就是并发。 2.在分布式系统中,另一个需要解决的问题就是数据的复制。常见的场景如下: 1)增加系统可用性,防止单点故障。 2)提高系统性能,通过负载均衡,让分布在不同地方的数据副本都能够为用户提供服务。 所谓分布式一 阅读全文
posted @ 2017-05-08 20:27 知己一生 阅读(380) 评论(0) 推荐(0)