分布式架构的演进过程
一个成熟的大型网站架构并不是一开始就设计的非常完美,也不是一开始就具备高性能、高可用、安全性等特性,而是随着用户量的增加,业务功能的扩展逐步完善演变过来的。在这个过程中,开发模式、技术架构等都会发生非常大的变化。而针对不同业务特征的系统,会有各自的侧重点,比如像淘宝这类的网站,要解决的是海量商品搜索、下单、支付等问题;腾讯,要解决的是数亿级别用户的实时消息传输;百度所要解决的是海量数据的搜索。架构
分布式缓存Redis使用心得
一、缓存在系统中用来做什么?1. 少量数据存储,高速读写访问。通过数据全部in-momery 的方式来保证高速访问,同时提供数据落地的功能,实际这正是Redis最主要的适用场景。2. 海量数据存储,分布式系统支持,数据一致性保证,方便的集群节点添加/删除。Redis3.0以后开始支持集群,实现了半自动化的数据分片,不过需要smart-client的支持。二、从不同的角度来详细介绍redis网络模型
Java面试题:面向对象,类加载器,JDBC, Spring 基础概念
1. 为什么说Java是一门平台无关语言?平台无关实际的含义是“一次编写到处运行”。Java 能够做到是因为它的字节码(byte code)可以运行在任何操作系统上,与底层系统无关。2. 为什么 Java 不是100%面向对象?Java 不是100%面向对象,因为它包含8个原始数据类型,例如 boolean、byte、char、int、float、double、long、short。它们不是对象。
设计模式“6”大原则!
面向对象设计原则概述对于面向对象软件系统的设计而言,在支持可维护性的同时,提高系统的可复用性是一个至关重要的问题,如何同时提高一个软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题之一。在面向对象设计中,可维护性的复用是以设计原则为基础的。每一个原则都蕴含一些面向对象设计的思想,可以从不同的角度提升一个软件结构的设计水平。 面向对象设计原则为支持可维护性复用而诞生,这些原则蕴含在很多设计
千万级规模【高性能、高并发】互联网架构经验分享~
架构以及我理解中架构的本质在开始谈我对架构本质的理解之前,先谈谈对今天技术沙龙主题的个人见解,千万级规模的网站感觉数量级是非常大的,对这个数量级我们 战略上 要重 视 它 , 战术上又 要 藐 视 它 。先举个例子感受一下千万级到底是什么数量级?现在很流行的优步(Uber),从媒体公布的信息看,它每天接单量平均在百万左右, 假如每天有10个小时的服务时间,平均QPS只有30左右
一文弄懂“分布式锁”,一直以来你的选择依据正确吗?
一文弄懂“分布式锁”,一直以来你的选择依据正确吗?
百亿数据量下,掌握这些Redis技巧你大概就稳住了全场
百亿数据量下,掌握这些Redis技巧你大概就稳住了全场
RabbitMQ的前世今生
关于RabbitMQ 出身:诞生于金融行业的消息队列 语言:Erlang 协议:AMQP(Advanced Message Queuing Protocol 高级消息队列协议) 关键词:内存队列,高可用
MySQL基本知识点梳理和查询优化
目录一、索引相关二、EXPLIAN中有用的信息三、字段类型和编码四、SQL语句总结五、踩坑六、千万大表在线修改七、慢查询日志八、查看sql进程和杀死进程九、一些数据库性能的思考本文主要是总结了工作中一些常用的操作,以及不合理的操作,在对慢查询进行优化时收集的一些有用的资料和信息,本文适合有mysql基础的开发人员。一、索引相关1、索引基数:基数是数据列所包含的不同值的数量。例如,某个数据列包含值1
填坑利器?Redis如何弥补传统MySQL架构的不足。
传统MySQL架构难以满足的现代应用程序需求包括:传统数据库的读/写速度对会话存储等用例不友好;引入新表或修改现有模式非常复杂,这也导致了添加新功能和应用程序会有困难;传统数据库会受到每秒可执行操作的数量和并发连接数的限制,所以在数据库实例增多的情况下,基础架构和维护成本也会增加。Redis和传统数据库结合会产生哪些化学反应呢?首先,如果应用程序的数据是存储在MySQL或其它关系型数据库中,那么R
Java每天5道面试题,跟我走,offer有!(八)
Java每天5道面试题,跟我走,offer有!(八)
当我们输入一条 SQL 查询语句时,发生了什么?
当我们输入一条 SQL 查询语句时,发生了什么?
Java每天10道面试题,跟我走,offer有!(七)
Java每天10道面试题,跟我走,offer有!(七)
Redis分布式锁的实现原理看这篇就够了~
一、写在前面现在面试,一般都会聊聊分布式系统这块的东西。通常面试官都会从服务框架(Spring Cloud、Dubbo)聊起,一路聊到分布式事务、分布式锁、ZooKeeper等知识。所以咱们这篇文章就来聊聊分布式锁这块知识,具体的来看看Redis分布式锁的实现原理。说实话,如果在公司里落地生产环境用分布式锁的时候,一定是会用开源类库的,比如Redis分布式锁,一般就是用Redisson
一文替你全部搞定:MySQL命令。
MySQL的基本操作可以包括两个方面:MySQL常用语句如高频率使用的增删改查(CRUD)语句和MySQL高级功能,如存储过程,触发器,事务处理等。而这两个方面又可以细分如下:MySQL常用语句表(或者数据库)的CRUD表数据的CRUD,其中表数据查询使用最多,也更复杂。查询可以按照单表还是多表可以分为:单表SELECT查询和多表的联结查询(INNER JOIN, LEFT JOIN, RIGHT
8 个面试被问烂的 SpringMVC 过程
SpringMVC ,这个应该是国内面试必问题,网上有很多答案,其实背背就可以。但今天笔者带大家一起深入浅出源码,看看他的原理。以期让印象更加深刻,面试的时候游刃有余。Spring MVC 过程先来张图: 代码位置:com.interface21.web.servlet.DispatcherServlet#doService(没错,就是 Spring 1.0 的代
大型企业网络系统集成方案如何设计?
网络系统集成是企业实现无纸化办公和即时通讯办公的基础建设,在以生产效率为核心竞争力的市场中,企业想要快速获取信息并有效提高企业工作效率及业务能力,企业网络系统集成是必不可少的,由于目前网络技术复杂多样化,企业网络系统集成不再那么简单,必须经过详细、周密的规划设计,才能确保网络系统达到目的,那么企业网络系统集成需遵循哪些原则?企业网络系统集成方案又该如何设计呢?网络系统集成方案设计原则在企业网络应用
Netty原理分析往这边看!
Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。作为当前最流行的NIO框架,Netty在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,一些业界著名的开源组件
别再问我分布式锁了,看这篇就够了。
别再问我分布式锁了,看这篇就够了。
每天10道Java面试题,跟我走,offer有!
每天10道Java面试题,跟我走,offer有!