Dubbo

Spring Cloud Feign组件

为君一笑 提交于 2020-04-25 08:29:30
采用Spring Cloud微服务框架后,经常会涉及到服务间调用,服务间调用采用了Feign组件。 由于之前有使用dubbo经验。dubbo的负载均衡策略(轮训、最小连接数、随机轮训、加权轮训),dubbo失败策略(快速失败、失败重试等等), 所以Feign负载均衡策略的是什么? 失败后是否会重试,重试策略又是什么? 带这个疑问,查了一些资料,最后还是看了下代码。毕竟代码就是一切 Spring boot集成Feign的大概流程: 1、利用 FeignAutoConfiguration 自动配置。并根据EnableFeignClients 自动注册产生Feign的代理类。 2、注册方式利用 FeignClientFactoryBean,熟悉Spring知道FactoryBean 产生bean的工厂,有个重要方法getObject产生FeignClient容器bean 3、同时代理类中使用hystrix做资源隔离,Feign代理类中 构造 RequestTemplate ,RequestTemlate要做的向负载均衡选中的server发送http请求,并进行编码和解码一系列操作。 下面只是粗略的看了下整体流程,先有整体再有细节吧,下面利用IDEA看下细节: 一、Feign失败重试 SynchronousMethodHandler的方法中的处理逻辑 : @Override public

《jmeter:菜鸟入门到进阶》系列

时光毁灭记忆、已成空白 提交于 2020-04-25 01:49:04
jmeter是我从事软件测试工作以来接触的第一个性能测试工具,也是耗费时间精力最多的一个工具,当然,学习jmeter过程中,由于知识储备不够,也顺带学习了很多其他相关的一些知识。 一直有个想法,就是把jmeter写成一个完整的系列,包括元件构成、用法、不同组合能实现什么功能,以及利用jmeter来实现接口自动化、性能自动化测试等功能。 当然,工具只是辅助测试提高效率的手段,博采众长,选择合适的解决问题的方案才是我们学习的目的,工具只是手段,仅此而已。 这篇博客,将关于jmeter的一些使用技巧,遇到的错误整理成一个目录索引吧,方便自己查阅的同时也方便其他同行参考。 目前是持续更新状态,如果哪天断更了会提前说的,就这样吧。。。 1、 基础介绍 简单介绍jmeter的元件组成,作用等基础知识; 2、 录制脚本 简述了jmeter录制脚本的2种方式; 3、 元件的作用域及执行顺序 jmeter各元件的作用域及执行的顺序; 4、 Sampler之SOAP/XML-RPC Request 取样器中关于SOAP/XML-RPC Request的用法; 5、 Sampler之HTTP请求 取样器中关于HTTP请求的用法; 6、 http请求之content-type 取样器中关于HTTP请求的补充说明; 7、 Sample之JDBC Request 取样器中关于JDBC请求的用法; 8、

Dubbo面试八连问,这些你都能答上来吗?

假如想象 提交于 2020-04-24 23:34:43
面试题总览 Dubbo是什么? Dubbo能做什么? Dubbo内置了哪几种服务容器? Dubbo 核心的配置有哪些? Dubbo有哪几种集群容错方案,默认是哪种? Dubbo有哪几种负载均衡策略,默认是哪种? Dubbo默认使用的是什么通信框架,还有别的选择吗? 你觉得用Dubbo好还是SpringCloud好? 1.Dubbo是什么? Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC 分布式服务框架,现已成为 Apache 基金会孵化项目。致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在dubbo上注册) 其核心部分包含: 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。 自动发现: 基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明

webservice、httpClient、dubbo的区别

僤鯓⒐⒋嵵緔 提交于 2020-04-24 20:22:48
在开发中,对于同一个war包中的对象方法我们可以直接调用,但是很多情况下需要在不同项目或者不同服务器进行相互调用 webservice webservice技术可以实现不同服务器项目直接的调用和交换数据,即使语言,协议,部署环境不同也可以实现。webService是使用soap协议而不是Http协议 ;WebService曾经认为是解决异构系统间整合的最佳解决方案,不依赖于第三方任何系统的支持(不需要额外部署专门的MQ或者RDBMS服务器),大家只需要按照官方的规范,即可完成相互之间的数据交互。但是,webService存在的问题是,使用SOAP需要对消息进行多层次的封装,webservice之间进行数据交互的效率受到了严重的影响。虽然,webservice能够交互的数据格式多种多样,基本也不存在数据格式不支持的情况。但是,webservice的效率及其webservice的超时等问题,还是困扰了系统厂商。其主要的特点是跨语言、跨平台的。项目中不推荐使用,可用于不同公司间接口的调用; webservice实现远程调用的步骤分三部(三次握手) 1.请求获取服务对象 2.返回服务对象 3.调用服务对象方法 传统的webservice实现远程调用的方法耦合性较高,web层与服务层直接请求,在请求服务层获取服务对象的过程中,如果服务层因多种原因如网络延迟、请求过多出现迟迟没有返回对象

2019最新初级JAVA面试问题

ε祈祈猫儿з 提交于 2020-04-24 18:01:00
首先我们需要明白一个事实,招聘的一个很关键的因素 是在给自己找未来的同事,同级别下要找比自己优秀的人,面试是一个双向选择的过程,也是一个将心比心去沟通的过程。 就像我们有的人感觉自己很牛逼,但是拿不到offer,而其他的人菜的一笔,却可以拿到offer,我们称之为玄学offer,遇到这种情况大家也不要感觉到有什么不可描述的心情,一切随缘即可! 小编这里可是有Java面试题参考答案的哟,需要各位小伙伴下来逐一学习 ! 一、开场白 简单的介绍一下自己的工作经历与职责,在校或者工作中主要的工作内容,主要负责的内容;( 你的信息一清二白的写在简历上,能答出来的最好写在上面,模棱两可不是很清楚的最好不要写,否则会被问的很尴尬) 介绍下自己最满意的,有技术亮点的项目或平台,重点介绍下自己负责那部分的技术细节;(主要对自己做过的事情是否有清晰的描述 ) 二、Java基础 什么是字符串常量池? String为什么是不可变的? String s = new String("xyz");究竟产生了几个对象,从JVM角度谈谈? String拼接字符串效率低,你知道原因吗? 你真的了解String的常见API吗? Java中的subString()真的会引起内存泄露么? 浅析Java中的final关键字? 浅析Java中的static关键字? 你对Java中的volatile关键字了解多少? i+

面对一个完全陌生的系统,如何快速的熟悉并上手?

一笑奈何 提交于 2020-04-24 11:31:18
面对一个完全陌生的系统,如何快速的熟悉并上手?本文将从三个方面进行总结,提供一个系统的方法,同时也可以用来 review 已有的系统,查漏补缺。 面对一个完全陌生的系统,如何快速的熟悉并上手?面对一个完全陌生的系统,如何快速的熟悉并上手? 前言 开发人员经常会面临下面一些场景: 新人入职,需要学习已有系统,作为 landing 的一部分,如何学习? 被拉过去参与一个陌生系统的迭代开发或者系统维护(bugfix),如何快速上手? 同事离职或转岗,需要把系统交接给你,怎么去接?内心 os:这是一口锅吗? 这样的场景多了,就需要去梳理常见问题以及应对方法,方便后续遇到类似场景可以快速应对。本文总结熟悉系统主要分三部分:业务学习、技术学习、实战。每部分会梳理一些在学习过程中需要解答的问题,这些问题随着经验的积累需要逐步补充完善。 业务学习 业务学习就是从业务角度去学习系统,我们需要了解系统的客户是谁、使用人是谁、带来了什么价值,系统提供了哪些功能等。不清楚业务,就等于不知道系统在干什么。技术是为业务落地而服务,清楚了业务才知道怎样用技术更好地服务业务,所以业务学习是熟悉一个系统的首要任务。这块主要的学习方式有跟产品、运营、开发沟通,学习产品设计文档文档、PRD、自己使用系统,还有一些常见图,如产品功能架构图、业务流程图、功能树,用例图等。 常见问题: 系统所在行业的情况是怎样?

面对一个完全陌生的系统,如何快速的熟悉并上手?

坚强是说给别人听的谎言 提交于 2020-04-24 09:13:01
面对一个完全陌生的系统,如何快速的熟悉并上手?本文将从三个方面进行总结,提供一个系统的方法,同时也可以用来 review 已有的系统,查漏补缺。 前言 开发人员经常会面临下面一些场景: 新人入职,需要学习已有系统,作为 landing 的一部分,如何学习? 被拉过去参与一个陌生系统的迭代开发或者系统维护(bugfix),如何快速上手? 同事离职或转岗,需要把系统交接给你,怎么去接?内心 os:这是一口锅吗? 这样的场景多了,就需要去梳理常见问题以及应对方法,方便后续遇到类似场景可以快速应对。本文总结熟悉系统主要分三部分:业务学习、技术学习、实战。每部分会梳理一些在学习过程中需要解答的问题,这些问题随着经验的积累需要逐步补充完善。 业务学习 业务学习就是从业务角度去学习系统,我们需要了解系统的客户是谁、使用人是谁、带来了什么价值,系统提供了哪些功能等。不清楚业务,就等于不知道系统在干什么。技术是为业务落地而服务,清楚了业务才知道怎样用技术更好地服务业务,所以业务学习是熟悉一个系统的首要任务。这块主要的学习方式有跟产品、运营、开发沟通,学习产品设计文档文档、PRD、自己使用系统,还有一些常见图,如产品功能架构图、业务流程图、功能树,用例图等。 常见问题: 系统所在行业的情况是怎样? 系统的目标用户是谁?比如是给公司高层做决策用?给运营或客服用?还是互联网用户用? 平均有多少人在使用

进军2020年:Java研发岗千道面试题总结:MyBatis+Redis+Spring...

為{幸葍}努か 提交于 2020-04-24 02:05:54
互联网 Java 工程师面试题 MyBatis(27道) ZooKeeper(28道) Dubbo(30道) Elasticsearch(24道) Memcached(23道) Redis(40道) MySQL(50道) Java 并发编程(一)Java 并发编程(二)(123道) Java面试题(一)Java面试题(二)(228道) Spring 面试题(一)Spring 面试题(二)(119道) 微服务(50道) Linux(45道) Spring Boot(22道) Spring Cloud(8道) RabbitMQ(12道) kafka(18道) 由于内容太过全面,所有这里只截取出部分题目粗略的介绍一下. 这份PDF文档有将近500页,另外也有配套的283页“Java核心知识笔记”. 相信足够各位Java同僚备战刷题了,需要完整“互联网 Java 工程师面试题”及“Java核心知识笔记”的可以直接文末获取: MyBatis(27道) 什么是 Mybatis? Mybaits 的优点 MyBatis 框架的缺点 MyBatis 框架适用场合 MyBatis 与 Hibernate 有哪些不同? {}和${}的区别是什么? 当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 模糊查询 like 语句该怎么写? 通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应,请问

面对一个完全陌生的系统,如何快速的熟悉并上手?

扶醉桌前 提交于 2020-04-23 22:27:36
面对一个完全陌生的系统,如何快速的熟悉并上手?本文将从三个方面进行总结,提供一个系统的方法,同时也可以用来 review 已有的系统,查漏补缺。 前言 开发人员经常会面临下面一些场景: 新人入职,需要学习已有系统,作为 landing 的一部分,如何学习? 被拉过去参与一个陌生系统的迭代开发或者系统维护(bugfix),如何快速上手? 同事离职或转岗,需要把系统交接给你,怎么去接?内心 os:这是一口锅吗? 这样的场景多了,就需要去梳理常见问题以及应对方法,方便后续遇到类似场景可以快速应对。本文总结熟悉系统主要分三部分:业务学习、技术学习、实战。每部分会梳理一些在学习过程中需要解答的问题,这些问题随着经验的积累需要逐步补充完善。 业务学习 业务学习就是从业务角度去学习系统,我们需要了解系统的客户是谁、使用人是谁、带来了什么价值,系统提供了哪些功能等。不清楚业务,就等于不知道系统在干什么。技术是为业务落地而服务,清楚了业务才知道怎样用技术更好地服务业务,所以业务学习是熟悉一个系统的首要任务。这块主要的学习方式有跟产品、运营、开发沟通,学习产品设计文档文档、PRD、自己使用系统,还有一些常见图,如产品功能架构图、业务流程图、功能树,用例图等。 常见问题: 系统所在行业的情况是怎样? 系统的目标用户是谁?比如是给公司高层做决策用?给运营或客服用?还是互联网用户用? 平均有多少人在使用

助你技术上的提升,斩获阿里、京东、小米等Offer,Java最全体系脑图与面试题汇集

与世无争的帅哥 提交于 2020-04-23 22:24:46
所谓并发编程是指在一台处理器上“同时”处理多个任务。 并发是在同一实体上的多个事件。 多个事件在同一时间间隔发生,编写优质的并发代码是一件难度极高的事情。 Java语言从第一版本开始内置了对多线程的支持,这一点在当年是非常了不起的. 但是当我们对并发编程有了更深刻的认识和更多的实践后. 实现并发编程就有了更多的方案和更好的选择,并发编程的目标是充分的利用处理器的每一个核. 以达到最高的处理性能. 并发编程路线脑图 并发编程面试题汇集: Synchronized用过吗 ,其原理是什么 ? 什么是可重入性,为什么说 Synchronized是可重入锁 ? JVM对Java的原生锁做了哪些优化 ? 那么请谈谈AQS框架是怎么回事儿 ? 请尽可能详 尽地对比下Synchronized和ReentrantLock的异同 。 什么是原子操作,Java 中的原子操作是什么? 创建线程池的几个核心构造参数 ? 什么是Java的内存模型,Java中各个线程是怎么彼此看到对方的变量的 ? 在Java中CycliBarriar和CountdownLatch有什么区别? 请谈谈ThreadLocal是怎么解决并发安全的 ? 文末底下有面试题汇集以及学习全脑图 曾经我也对 JVM 感到很头痛,完全搞不懂应该如何入门 JVM 的学习。 但经过了几年的学习,我对 JVM 有了更深入的理解。