摘要: 医院的例子 现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其"分而治之",把一个系统划分为几个较小的子系统。如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类 阅读全文
posted @ 2018-09-02 16:56 请叫我老焦 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。 单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自 阅读全文
posted @ 2018-09-02 15:47 请叫我老焦 阅读(230) 评论(0) 推荐(0) 编辑
摘要: RabbitMQ一般情况很少丢失,但是不能排除意外,为了保证我们自己系统高可用,我们必须作出更好完善措施,保证系统的稳定性。 下面来介绍下,如何保证消息的绝对不丢失的问题,下面分享的绝对干货,都是在知名互联网产品的产线中使用。 1.消息持久化 2.ACK确认机制 3.设置集群镜像模式 4.消息补偿机 阅读全文
posted @ 2018-09-02 13:09 请叫我老焦 阅读(1628) 评论(0) 推荐(0) 编辑
摘要: 一、摘要 分布式消息系统作为实现分布式系统可扩展、可伸缩性的关键组件,需要具有高吞吐量、高可用等特点。而谈到消息系统的设计,就回避不了两个问题: 1、消息的顺序问题 2、消息的重复问题 二、关键特性以及其实现原理 2.1、顺序消息 要实现严格的顺序消息,简单且可行的办法就是: 保证生产者 - MQS 阅读全文
posted @ 2018-09-02 12:59 请叫我老焦 阅读(1625) 评论(0) 推荐(0) 编辑
摘要: (1)为什么使用消息队列啊? 其实就是问问你消息队列都有哪些使用场景,然后你项目里具体是什么场景,说说你在这个场景里用消息队列是什么 面试官问你这个问题,期望的一个回答是说,你们公司有个什么业务场景,这个业务场景有个什么技术挑战,如果不用MQ可能会很麻烦,但是你现在用了MQ之后带给了你很多的好处 先 阅读全文
posted @ 2018-09-02 10:37 请叫我老焦 阅读(18101) 评论(5) 推荐(3) 编辑
摘要: 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题 实现高性能,高可用,可伸缩和最终一致性架构 使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ 二、消息队列应用场景 以下介绍消息队列在实际应用中常用的使 阅读全文
posted @ 2018-09-02 10:12 请叫我老焦 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 前言 分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细 阅读全文
posted @ 2018-08-31 18:06 请叫我老焦 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 自行搜索:https://www.jianshu.com/p/2d1a81b2dafc 阅读全文
posted @ 2018-08-30 18:25 请叫我老焦 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 由于需要配置MySQL的主从同步配置,现将配置过程记录下,已被以后不时之需 MySql数据主从同步 1.1. 同步介绍 Mysql的 主从同步 是一个异步的复制过程,从一个 Master复制到另一个 Slave上。在 Master 与 Slave 之间的实现整个复制过程主要由三个线程来完成,其中两个 阅读全文
posted @ 2018-08-30 16:52 请叫我老焦 阅读(1374) 评论(0) 推荐(0) 编辑
摘要: 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。 ⑵ 阅读全文
posted @ 2018-08-30 16:15 请叫我老焦 阅读(235) 评论(0) 推荐(0) 编辑