Docker容器
阿里P8架构师谈:Docker简介、组成架构、使用步骤、以及生态产品
阿里P8架构师谈:Docker容器的原理、特征、基本架构、与应用场景
消息中间件
阿里P8架构师谈:消息中间件介绍、典型使用场景、以及使用原则
阿里P8架构师谈:分布式消息K……继续阅读 »
2年前 (2018-10-09) 5117浏览 2评论
10个赞
web前端性能优化
Web前端指网站业务逻辑之前的部分,包括:
1.浏览器加载
2.网站视图模型
3.图片服务
4.CDN服务等
主要优化手段有优化浏览器访问,使用反向代理,CDN等。
1.浏览器访问优化
(1)减少http请求
HTTP协议是无状态的应用层协议,意味……继续阅读 »
2年前 (2018-10-09) 3554浏览 0评论
6个赞
本文主要围绕微服务的技术选型、通讯协议、服务依赖模式、开始模式、运行模式等几方面来综合比较Dubbo和Spring Cloud 这2种开发框架。架构师可以根据公司的技术实力并结合项目的特点来选择某个合适的微服务架构平台,以此稳妥地实施项目的微服务化改造或开发进程。
微服务架构是互联网很热门的话题,是互联网技术发展的必然结果。它提倡将单一应用程序划分成一组小的服务,服务之间互相协……继续阅读 »
2年前 (2018-10-09) 9530浏览 1评论
21个赞
1.什么是微服务
1)一组小的服务(大小没有特别的标准,只要同一团队的工程师理解服务的标识一致即可)
2)独立的进程(java的tomcat,nodejs等)
3)轻量级的通信(不是soap,是http协议)
4)基于业务能力(类似用户服务,商品服务等等)
5)独立部署(迭代速度快)
6)无集中式管理(无须统……继续阅读 »
2年前 (2018-10-09) 4530浏览 0评论
4个赞
Docker简介
Docker是DotCloud开源的、可以将任何应用包装在Linux container中运行的工具。
Docker基于Go语言开发,代码托管在Github上,目前超过10000次commit。
基于Docker的沙箱环境可以实现轻型隔离,多个容器间不会相互影响;Docker可以自动化打包和部署任何应用,方便地……继续阅读 »
2年前 (2018-10-09) 3672浏览 0评论
2个赞
数据拆分前其实是要首先做准备工作的,然后才是开始数据拆分,我先讲拆分前需要做的事情:
第一步:采用分布式缓存redis、memcached等降低对数据库的读操作。
第二步:如果缓存使用过后,数据库访问量还是非常大,可以考虑数据库读、写分离原则。
第三步:当我们使用读写分离、缓存后,数据库的压力还是很大的时候,这就需要使用到数据库拆……继续阅读 »
2年前 (2018-10-06) 3686浏览 1评论
13个赞
分布式锁的几种实现方式
目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。
分布式的CAP理论告诉我们,任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。
所以,很多系统在设计……继续阅读 »
2年前 (2018-10-06) 6454浏览 2评论
12个赞
Java并发编程实战 (java并发的圣经)
多处理器编程的艺术 (并发编程的各种算法,java实现,有点难度)
并发的艺术 (多核处理器的共享内存模型中的各种算法)
Java虚拟机并发编程 (jvm平台上各种语言的并发比较,如java,scala,clojure)
Jav……继续阅读 »
2年前 (2018-10-06) 6108浏览 0评论
2个赞
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。
因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的……继续阅读 »
2年前 (2018-10-04) 4648浏览 0评论
7个赞
背景
可用性(Availability)和一致性(Consistency)是分布式系统的基本问题,先有著名的CAP理论定义过分布式环境下二者不可兼得的关系,又有神秘的Paxos协议号称是史上最简单的分布式系统一致性算法并获得图灵奖,再有开源产品ZooKeeper实现的ZAB协议号称超越Paxos。
在大数据场景下,分布式数据库的数据一致性管理是其最重要的内核技术之……继续阅读 »
2年前 (2018-09-29) 5565浏览 0评论
9个赞
摘要
HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。
随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。
简介
Ja……继续阅读 »
2年前 (2018-09-29) 12642浏览 2评论
30个赞
Java一面
hashmap与concurrenthashmap的区别
垃圾回收算法以及垃圾回收器
CMS的回收步骤
G1和CMS的区别
CMS哪个阶段是并发的哪个阶段是串行的?
G1内部是如何分区的(region)
HashMap如……继续阅读 »
2年前 (2018-09-28) 3377浏览 0评论
0个赞
前端的性能对于一个Web应用来说非常重要,如果一个Web应用的页面加载速度非常快、对于用户的操作可以及时响应,那么产品的用户体验将会极大地提升。下图显示了页面加载速度对于用户体验的影响。
大型网站Web优化最佳实践
1. 避免坏请求
有时页面中的HTML或CSS会向服务器请求一个不存在的资源,比如图片或HTML文件,这会……继续阅读 »
2年前 (2018-09-28) 2070浏览 0评论
1个赞
在高并发大量用户的场景,系统一般会面临如下三个挑战:
1. 日益增长的用户数量
2. 日渐复杂的业务
3. 急剧膨胀的数据
这些挑战对于性能优化而言表现为:在保持和降低系统TP95响应时间(指的是将一段时间内的请求响应时间从低到高排序,高于95%请求响应时间的下确界)的前提下,不断提高系统吞吐量,提升流量高峰时期的服务可用性。
……继续阅读 »
2年前 (2018-09-27) 3086浏览 1评论
3个赞
经常面试都会问到MYSQL有哪些存储引擎,以及各自的优缺点。今天主要分享常见的存储引擎:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)等,以及最常用的MyISAM与InnoDB两个引擎 ,文章尾部有两者的详细比较。
MySQL常用存储引擎介绍
1.InnoDB 引擎(MySQL5.5以后默认使用)
M……继续阅读 »
2年前 (2018-09-27) 4128浏览 0评论
2个赞
什么是RPC
RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
简言之,RPC使得程序能够像访问本地系统资源一样,去访问远端系统资源。
比较关键的一些方面包括:
通讯协议
序列化
……继续阅读 »
2年前 (2018-09-25) 4388浏览 1评论
5个赞
Dubbo是什么?
Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。
简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中……继续阅读 »
2年前 (2018-09-25) 5341浏览 0评论
4个赞
消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。
当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发的Notify、MetaQ、RocketMQ等。
本文主要探讨主流的消息队列MQ比较,特征,以及典型使……继续阅读 »
2年前 (2018-09-25) 5846浏览 0评论
6个赞
本文涉及的内容以及知识点如下:
1、单体架构
2、单体架构的拆分
3、SOA与微服务的区别
4、微服务的优缺点
5、微服务的消息
6、服务集成
7、数据的去中心化
单体架构
Web应用程序发展的早期,大部分web工程是将所有的功能模块(servic……继续阅读 »
2年前 (2018-09-21) 3712浏览 0评论
7个赞
分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在这几年越来越火的微服务架构中,几乎可以说是无法避免,本文就围绕分布式事务各方面与大家进行介绍。
事务
1.1 什么是事务
数据库事务(简称:事务,Transaction)是指数据库执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。
……继续阅读 »
2年前 (2018-09-21) 4980浏览 1评论
9个赞
JVM内存模型
首先我们来了解一下JVM的内存模型的怎么样的:
1.堆:存放对象实例,几乎所有的对象实例都在这里分配内存
堆得内存由-Xms指定,默认是物理内存的1/64;最大的内存由-Xmx指定,默认是物理内存的1/4。
默认空余的堆内存小于40%时,就……继续阅读 »
2年前 (2018-09-20) 8746浏览 1评论
27个赞
Redis相比memcached有哪些优势?
(1) memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型
(2) redis的速度比memcached快很多
(3) redis可以持久化其数据
Redis支持哪几种数据类型?
……继续阅读 »
2年前 (2018-09-20) 7013浏览 2评论
36个赞
Java实现线程有哪几种方式?
1、继承Thread类实现多线程
2、实现Runnable接口方式实现多线程
3、使用ExecutorService、Callable、Future实现有返回结果的多线程
多线程同步有哪几种方法?
Synchronized关键字,Lock锁实现,……继续阅读 »
2年前 (2018-09-20) 8632浏览 6评论
61个赞
在Java面试的首轮,经常会问很多关于Java面试基础以及高级的问题,今天收集相关Java面试36题和答案分享出来。
1.”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?
“static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访……继续阅读 »
2年前 (2018-09-20) 9820浏览 6评论
51个赞
淘宝技术架构变迁
自2003年创立以来的,淘宝业务发展非常迅速,几乎是每年以100%的速度在成长。创立之初,为了快速上线,抢占市场,选择了当时流行的LAMP架构,用PHP作为网站开发语言, Linux作为操作系统,Apache作为Web服务器,MySQL为数据库,用了三个月不到的时间淘宝就上线了。当时整个网站应用服务器大概10台左右,MySQL数据库采用了读……继续阅读 »
2年前 (2018-09-19) 3373浏览 1评论
5个赞
一面:
HashMap实现原理,ConcurrentHashMap实现原理
红黑树,为什么允许局部不平衡
TCP,UDP区别,为什么可靠和不可靠
一次HTTP请求的全过程,包括域名解析、定位主机等
TCP三次握手
MySQL事务是什么?四大特性,四大隔离级别……继续阅读 »
2年前 (2018-09-19) 2575浏览 1评论
1个赞
BAT技术面试范围
数据结构与算法:最常见的各种排序,最好能手写
Java高级:JVM内存结构、垃圾回收器、回收算法、GC、并发编程相关(多线程、线程池等)、NIO/BIO、各种集合类的比较优劣势(底层数据结构也要掌握,特别是扩容等)等。
性能优化、设计模式、UML的……继续阅读 »
2年前 (2018-09-18) 4191浏览 0评论
9个赞
什么是session
服务器为每个用户创建一个会话,存储用户的相关信息,以便多次请求能够定位到同一个上下文。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。
当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过……继续阅读 »
2年前 (2018-09-17) 5183浏览 0评论
3个赞
我们在操作数据库的时候,可能会由于并发问题而引起的数据的不一致性(数据冲突)。如何保证数据并发访问的一致性、有效性,是所有数据库必须解决的一个问题,锁的冲突也是影响数据库并发访问性能的一个重要因素,从这一角度来说,锁对于数据库而言就显得尤为重要。
MySQL锁概述
相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。
……继续阅读 »
2年前 (2018-09-15) 5936浏览 1评论
14个赞
常见性能优化策略分类
1.代码
之所以把代码放到第一位,是因为这一点最容易引起技术人员的忽视。很多技术人员拿到一个性能优化的需求以后,言必称缓存、异步、JVM等。实际上,第一步就应该是分析相关的代码,找出相应的瓶颈,再来考虑具体的优化策略。有一些性能问题,完全是由于代码写的不合理,通过直接修改一下代码就能解决问题的,比如for循环次数过多、作了很多无谓的条件判断、……继续阅读 »
2年前 (2018-09-14) 3581浏览 0评论
5个赞