-
如何基于 MySQL 主从模式搭建上万并发的系统架构?
一、主从复制基础概念 在了解主从复制之前必须要了解的就是数据库的二进制日志(binlog),主从复制架构大多基于二进制日志进行。 1.1 二进制日志管理说明 二进制日志在哪?如何设置位置和命名? 在my.cnf文件中使用 log-bin = 指定;命名规则为 mysql-bin.000000 (后为6位数字) 二进制日志位置: mysql> show ...
时间:2019-09-11点击:672收藏
-
spring boot原理分析启动依赖中parent帮我们干了什么
主要内容: 1:分析spring-boot-starter-parent 这个依赖 通过前面几篇文章的学习,我们感受到了spring boot的魅力。最明显的感觉就是pom.xml文件。代码少了很多。其实这主要归功于依赖的parent。下面我们就来看看spring-boot-starter-parent这个依赖为什么有了它很多其他依赖(如spring cor...
时间:2019-09-10点击:782收藏
-
组合模式就是几个模式组合一起吗?来看看组合模式原理
组合模式引导篇及组合模式原理 在上一个《迭代器模式》中,我们讲到了阿里收购网易考拉后,店铺合并的问题使用到了迭代器模式。现在又有了新需求。我们先来看看新需求: 先说明:组合模式并非是把之前学过的设计模式组合在一起的一种模式哈。别理解错了。 在原有菜单的基础上,新增餐后甜点功能,如在中餐厅(DinerMenu)中添加餐后甜点。 我们先来回顾下上一个模式下的类图...
时间:2019-09-09点击:750收藏
-
在阿里云上通过宝塔面板安装禅道
在阿里云上通过宝塔面板安装禅道 禅道安装,这个之前答应过朋友的。正好,今晚又说起这个事,索性就在阿里云上安装算了。 相信很多朋友都用过禅道这个工具。使用过的朋友都知道,禅道是基于PHP开发的。对于使用Java开发的凯哥来说,LAMP环境,还真不会搭建。还好,之前就一直使用宝塔面板。有了这个面板LAMP环境就很容易搭建了。本教程是基于禅道11.6.2开源版的。...
时间:2019-09-08点击:864收藏
-
设计模式之迭代器模式 引导篇
迭代器模式-引导篇 这两天,比较火的并购新闻就是,网易考拉被阿里以20亿美元收购。从此网易考拉不再姓“网”而姓“阿”了。并购后的网易考拉和阿里的电商系统进行对接。那么问题来了:在阿里有个早餐店的菜单(CakeHouseMenu)使用的事ArrayList来存放菜单的,考拉有个午餐店的菜单(DinerMenu)使用的是数组结构存放的。现在考拉和阿里合并了,两个...
时间:2019-09-07点击:862收藏
-
我竟然不再抗拒 Java 的类加载机制了
很长一段时间里,我对Java 的类加载机制都非常的抗拒,因为我觉得太难理解了。但为了成为一名优秀的 Java 工程师,我决定硬着头皮研究一下。01、字节码 在聊 Java 类加载机制之前,需要先了解一下 Java 字节码,因为它和类加载机制息息相关。计算机只认识 0 和 1,所以任何语言编写的程序都需要编译成机器码才能被计算机理解,然后执行,Java 也不例...
时间:2019-09-06点击:637收藏
-
一次难得的分库分表实践
从标题可以看得出来,当时我们只做了分表;还是由于业务发展,截止到现在也做了分库,目前看来都还比较顺利,所以借着脑子还记得清楚来一次复盘。 <!--more--> 先来回顾下整个分库分表的流程如下: 整个过程也很好理解,基本符合大部分公司的一个发展方向。 很少会有业务一开始就会设计为分库分表,虽说这样会减少后续的坑,但部分公司刚开始都是以业务为主...
时间:2019-09-02点击:850收藏
-
Flink 源码解析 —— 深度解析 Flink 是如何管理好内存的?
前言如今,许多用于分析大型数据集的开源系统都是用 Java 或者是基于 JVM 的编程语言实现的。最着名的例子是 Apache Hadoop,还有较新的框架,如 Apache Spark、Apache Drill、Apache Flink。基于 JVM 的数据分析引擎面临的一个常见挑战就是如何在内存中存储大量的数据(包括缓存和高效处理)。合理的管理好 JVM...
时间:2019-08-20点击:744收藏
-
重磅发布- Java秒杀系统的设计与实战视频教程(SpringBoot版)
概要介绍:历经一个多月的时间,debug亲自录制的“Java商城秒杀系统的设计与实战视频教程(SpringBoot版)”终于完成了!在本课程中,debug真正的将之前所讲解的相关技术融入到了本课程中,即本课程所介绍的“秒杀系统”是一个真正意义上的项目,主要介绍了商城平台举办商品秒杀活动期间所涉及的相关业务。值得介绍的是,本课程在技术栈层面涵盖了前端和后端的大...
时间:2019-07-15点击:820收藏
-
分布式事务中间件Seata的设计原理
在微服务架构体系下,我们可以按照业务模块分层设计,单独部署,减轻了服务部署压力,也解耦了业务的耦合,避免了应用逐渐变成一个庞然怪物,从而可以轻松扩展,在某些服务出现故障时也不会影响其它服务的正常运行。总之,微服务在业务的高速发展中带给我们越来越多的优势,但是微服务并不是十全十美,因此不能盲目过度滥用,它有很多不足,而且会给系统带来一定的复杂度,其中伴随而来的...
时间:2019-07-12点击:710收藏
-
RabbitMQ如何保证消息99.99%被发送成功?
1. 本篇概要RabbitMQ针对这个问题,提供了以下几个机制来解决:1、生产者确认2、持久化3、手动Ack 本篇博客我们先讲解下生产者确认机制,剩余的机制后续单独写博客进行讲解。2. 生产者确认要想保证消息不丢失,首先我们得保证生产者能成功的将消息发送到RabbitMQ服务器。但在之前的示例中,当生产者将消息发送出去之后,消息到底有没有正确地到达服务器呢?...
时间:2019-07-03点击:813收藏
-
大型网站稳定性技术建设
稳定性技术策略 什么是稳定性 对于大型微服务系统,在错综复杂的服务逻辑各种交互情景下,面对各种未知的条件变化,整体系统依旧能够正常平稳的提供服务,这便是稳定性。 影响稳定性的因素 系统稳定性影响因素非常多,举例来说: 服务间的依赖:某个服务 BUG 造成其他依赖服务的不可用; 业务逻辑变更:业务逻辑不断迭代演变,新老服务的不兼容; 访问流量激增:流量突然增加...
时间:2019-06-19点击:915收藏