
架构
文章平均质量分 88
以我技术不会翻
很高兴和大家一起学习java
展开
-
重构—改善代码既有设计 之if/else使用
以前在 csdn上看到一篇 “你还在使用if/else吗?”文章,提到如果你还在使用if语句,那么你就需要对你的代码重构。那篇文章许多人的评论上褒贬不一,但我现在想举的一个例子是对if/else的重构。(当然,是从别人那偷学来的,^_^)。enum employeetype{ salers; engineer; manager;}if(emp原创 2012-03-23 23:17:22 · 4411 阅读 · 1 评论 -
放弃 Dubbo,选择最流行的 Spring Cloud 微服务架构实践与经验总结
前言在使用 Spring Cloud 之前,我们对微服务实践是没有太多的体会和经验的。从最初的开源软件云收藏来熟悉 Spring Boot,到项目中的慢慢使用,再到最后全面拥抱 Spring Cloud。这篇文章给大家介绍我们使用 Spring Boot / Cloud 一年多的经验总结。在开始之前我们先介绍几个概念,什么是微服务,它的特点是什么? Spring Boot / Cloud 都做了那...原创 2018-04-12 11:43:55 · 458 阅读 · 1 评论 -
归并排序算法(Java实现)
1、基本思想归并排序(Merge)是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序...原创 2018-04-12 09:35:44 · 406 阅读 · 0 评论 -
一致性Hash
一致性Hash算法简介一致性Hash算法是在1997年由麻省理工提出的一种分布式Hash实现算法,设计的目标是为了解决英特网中的热点问题。一致性Hash算法提出了在动态变化的Cache环境中,判定Hash算法好坏的四个定义。平衡性(Balance):平衡性是指哈希的结果能够尽可能的分布到所有的节点中去,这样从算法上解决负载均衡的问题。单调性(monotonicity):单调性是指在新增或者删减节点...原创 2018-04-12 09:14:30 · 302 阅读 · 0 评论 -
TOMCAT源码分析-生命周期管理2
容器生命周期每个容器都会有自身的生命周期,其中也涉及状态的迁移,以及伴随的事件生成,本节详细介绍Tomcat中的容器生命周期实现。所有容器的转态转换(如新疆、初始化、启动、停止等)都是由外到内,由上到下进行,即先执行父容器的状态转换及相关操作,然后再执行子容器的转态转换,这个过程是层层迭代执行的。容器新建所有容器在构造的过程中,都会首先对父类LifecycleBase进行构造。Life原创 2017-09-06 23:13:34 · 413 阅读 · 0 评论 -
TOMCAT源码分析-生命周期管理
前言 从server.xml文件解析出来的各个对象都是容器,比如:Server、Service、Connector等。这些容器都具有新建、初始化完成、启动、停止、失败、销毁等状态。tomcat的实现提供了对这些容器的生命周期管理,本文将通过对Tomcat7.0的源码阅读,深入剖析这一过程。TOMCAT生命周期类接口设计 我们先阅读图1原创 2017-09-06 23:09:41 · 390 阅读 · 0 评论 -
应对高并发笔记
浏览器应对高并发1、浏览器缓存,减少请求2、多个子域名部署,突破浏览器链接限制3、图片文件独立域名部署,减少请求传输量4、减少浏览器cookie大小服务器端:1、动静分离部署nginx+tomcat2、应用集群,负载均衡--F5/Array/LVS/Nginx/TOMCAT3、分布式缓存Memcached+Redis4、应用本地缓存 Ehcache5原创 2017-01-18 15:24:32 · 505 阅读 · 1 评论 -
冗余表如何保证数据的一致性
本文主要讨论四个问题:(1)为什么会有冗余表的需求(2)如何实现冗余表(3)正反冗余表谁先执行(4)冗余表如何保证数据的一致性 一、需求缘起互联网很多业务场景的数据量很大,此时数据库架构要进行水平切分,水平切分会有一个patition key,通过patition key的查询能够直接定位到库,但是非patition key上的查询可能就转载 2016-09-01 15:06:53 · 3225 阅读 · 0 评论 -
数据库单点与Nginx单点提高可用性
一、需求缘起明明架构要求高可用,为何系统中还会存在单点?回答:单点master的设计,会大大简化系统设计,何况有时候避免不了单点 在哪些场景中会存在单点?先来看一下一个典型互联网高可用架构。典型互联网高可用架构:(1)客户端层,这一层是浏览器或者APP,第一步先访问DNS-server,由域名拿到nginx的外网IP(2)负载均衡层,ng转载 2016-09-01 14:51:50 · 2516 阅读 · 0 评论 -
如何实现超高写多读少并发的无锁缓存
一、需求缘起【业务场景】有一类写多读少的业务场景:大部分请求是对数据进行修改,少部分请求对数据进行读取。例子1:滴滴打车,某个司机地理位置信息的变化(可能每几秒钟有一个修改),以及司机地理位置的读取(用户打车的时候查看某个司机的地理位置)。void SetDriverInfo(long driver_id, DriverInfoi); // 大量请求调用修改转载 2016-09-01 14:35:58 · 9420 阅读 · 3 评论 -
单表60亿记录等大数据场景的MySQL优化和运维之道
此文是根据杨尚刚在【QCON高可用架构群】中,针对MySQL在单表海量记录等场景下,业界广泛关注的MySQL问题的经验分享整理而成,转发请注明出处。杨尚刚,美图公司数据库高级DBA,负责美图后端数据存储平台建设和架构设计。前新浪高级数据库工程师,负责新浪微博核心数据库架构改造优化,以及数据库相关的服务器存储选型设计。前言MySQL数据库大家应该都很熟悉,而且随着前几年的阿里的去IOE,MySQL逐...转载 2018-04-25 08:35:32 · 459 阅读 · 1 评论