摘要:
一、为什么需要分布式调用跟踪系统 随着分布式服务架构的流行,特别是微服务等设计理念在系统中的应用,业务的调用链越来越复杂, 可以看到,随着服务的拆分,系统的模块变得越来越多,不同的模块可能由不同的团队维护, 一个请求可能会涉及到几十个服务的协同处理, 牵扯到多个团队的业务系统,那么如何快速准确的定位 阅读全文
摘要:
1.分布式服务框架设计 分布式服务框架一般可以分为以下几个部分, (1)RPC基础层: 包括底层通信框架,如NIO框架、通信协议,序列化和反序列化协议,以及在这几部分上的封装,屏蔽底层通信细节和序列化方式差异 (2)服务发布/消费: 服务提供者根据消费者请求消息中的接口名,方法名,参数列表等信息,通 阅读全文
摘要:
1.微服务架构 微服务这个词越来越多的被提到,2014、15年的一波创业大潮, 很多创业公司需要短平快的产品开发,推动了敏捷开发、持续交付以及基于Docker的应用部署的发展,同时微服务结构也开始慢慢流行起来。 2.应用架构演进 (1)垂直应用架构 传统的LAMP架构和Spring+Struts+i 阅读全文
摘要:
观察者模式(又被称为发布-订阅模式、模型-视图模式、源-收听者模式或从属者模式) 观察者模式中,一个目标对象管理所有依赖于它的观察者对象,并且在它本身的状态改变时主动发出通知。 应用场景 拍卖会可以认为是观察者模式的一种,每个投标人都可以出价。拍卖师开始拍卖时,他观察是否有牌子举起出价。每次接受一个 阅读全文
摘要:
模板方法模式(Template Method Pattern) 又叫模板模式,通过定义一个操作的算法骨架,而将一些步骤延迟到子类中,可以不改变一个算法的结构,却又可以重新定义概算法的某些特定步骤。 应用场景 Java抽象类的应用可以很好的展示模板模式的思想。 概念解释 Spring JDBC框架提供 阅读全文
摘要:
建造者(Builder)模式 GOF给出的定义为:建造者模式是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 应用场景 使用建造者模式是为了将构建复杂对象的过程和它的部件解耦。注意:是解耦过程和部件。 参与角色 建造者模式通常包括以下这几个角色: 1、Builder:给 阅读全文
摘要:
前端请求过程是指用户和应用服务器之间发生数据交互前的展现过程,这个过程通常不包含业务逻辑,不需要处理动态内容。 所谓唯快不破,互联网产品在用户体验方面,很重要的一点就是快。前端技术基本的架构与优化,主要是怎样让页面更快更好的展示在用户面前。 一、页面开发最佳实践 1.css样式置顶,Javascri 阅读全文
摘要:
一、分布式数据一致性 在分布式系统中,为了保证数据的高可用,通常会将数据保留多个副本(replica),这些副本会放置在不同的物理的机器上。 1.什么是数据一致性 在数据有多份副本的情况下,如果网络、服务器或者软件出现故障,会导致部分副本写入成功,部分副本写入失败。这就造成各个副本之间的数据不一致, 阅读全文
摘要:
这个跳槽季大概面试了近十家公司,也拿到了几个Offer,现在面试告一段落,简单总结下面经,我现在主要的方向是Java服务端开发,把遇到的问题和大家分享一下,也谈谈关于技术人员如何有方向的提高自己,做到有的放矢。 一、面试遇到的问题 1.百度 百度最近真是炙手可热,贴吧事件刚结束,医疗竞价排名又闹得沸 阅读全文
摘要:
ActiveMQ的几种集群配置。 Queue consumer clusters 此集群让多个消费者同时消费一个队列,若某个消费者出问题无法消费信息,则未消费掉的消息将被发给其他正常的消费者,结构图如下: Broker clusters 此种配置是一个消费者连接到多个broker集群的中的一个bro 阅读全文
摘要:
Java集合框架针对不同的数据结构提供了多种排序的方法,虽然很多时候我们可以自己实现排序,比如数组等,但是灵活的使用JDK提供的排序方法,可以提高开发效率,而且通常JDK的实现要比自己造的轮子性能更优化。 1.使用Arrays对数组进行排序 Java API对Arrays类的说明是:此类包含用来操作 阅读全文
摘要:
作为缓存系统都要定期清理无效数据,就需要一个主键失效和淘汰策略。 1.EXPIRE主键失效机制 在Redis当中,有生存期的key被称为volatile,在创建缓存时,要为给定的key设置生存期,当key过期的时候(生存期为0),它可能会被删除。 (1)影响生存时间的一些操作 生存时间可以通过使用 阅读全文
摘要:
最近在学习Dubbo,RMI是很重要的底层机制,RMI(Remote Method Invocation)远程方法调用是一种计算机之间利用远程对象互相调用实现双方通讯的一种通讯机制。使用这种机制,某一台计算机(即JVM虚拟机)上的对象可以调用另外一台计算机上的对象来获取远程数据。 RMI的实现对建立 阅读全文
摘要:
在MySQL中经常会配置自增长属性的字段作为主键,特别是使用InnoDB存储引擎, 因为InnoDB的聚集索引的特性,使用自增长属性的字段当主键性能更好,但是使用自增主键也可能会带来一些问题。举个例子,使用自增主键对数据库做分库分表,可能出现一些诸如主键重复等的问题,或者在数据库导入的时候,可能会因 阅读全文
摘要:
dubbo启动时默认有重试机制和超时机制。超时机制的规则是如果在一定的时间内,provider没有返回,则认为本次调用失败,重试机制在出现调用失败时,会再次调用。如果在配置的调用次数内都失败,则认为此次请求异常,抛出异常。 如果出现超时,通常是业务处理太慢,可在服务提供方执行:jstack PID 阅读全文