Dubbo

java web轻量级开发面试教程

白昼怎懂夜的黑 提交于 2020-11-01 19:16:17
最近面试java后端开发的感受:如果就以平时项目经验来面试,通过估计很难——再论面试前的准备 在上周,我密集面试了若干位Java后端的候选人,工作经验在3到5年间。我的标准其实不复杂:第一能干活,第二Java基础要好,第三最好熟悉些分布式框架,我相信其它公司招初级开发时,应该也照着这个标准来面的。 我也知道,不少候选人能力其实不差,但面试时没准备或不会说,这样的人可能在进团队干活后确实能达到期望,但可能就无法通过面试,但面试官总是只根据面试情况来判断。 但现实情况是,大多数人可能面试前没准备,或准备方法不得当。要知道,我们平时干活更偏重于业务,不可能大量接触到算法,数据结构,底层代码这类面试必问的问题点,换句话说,面试准备点和平时工作要点匹配度很小。 作为面试官,我只能根据候选人的回答来决定面试结果。不过,与人方便自己方便,所以我在本文里,将通过一些常用的问题来介绍面试的准备技巧。大家在看后一定会感叹:只要方法得当,准备面试第一不难,第二用的时间也不会太多。 而且在本人的两本书里, Java Web轻量级开发面试教程 和 Java核心技术及面试指南 , 详细地给出了其它相关面试技巧。 1 框架是重点,但别让人感觉你只会山寨别人的代码 在面试前,我会阅读简历以查看候选人在框架方面的项目经验,在候选人的项目介绍的环节,我也会着重关注候选人最近的框架经验,目前比较热门的是SSM。 不过

同样都是Java开发3年,凭什么别人拿30k?你只拿10k?

给你一囗甜甜゛ 提交于 2020-11-01 13:53:03
目录 一、常见的框架源码分析 二、分布式框架 三、并发编程专题 四、性能调优 五、微服务系列 很多人做Java开发2,3年后,都会感觉自己遇到瓶颈。什么都会又什么都不会,如何改变困境? 很多人写了7,8年代码却还只是一个码农。如何突破自我?拿到更高的薪资? 很多程序员会有一个苦恼,工作了很久,在公司一味 的 增删改查,得不到技术的提高,在小企业温水煮青蛙,无缘底层代码,只会用却不知其原理!年龄大了不能熬了直接被劝退? 同样都是Java开发3年,凭什么别人拿30K,你只拿10K,为什么? 有人会会说:你技术没有别人高!人家有关系你没有!人家有后台! 在互联网的时代,公司的发展利益往往都是和项目挂钩的,难道就凭关系,后台不用技术了,没有技术的公司可以呆多久? 针对这些情况,小编看了很多文章和面试,最后总结了一个Java开发的程序员工作三年,想月薪3 0 K技术成长路线,这些也是目前身为一个程序员应该了解5大核心技术,那么接下来我们来详细看看。 一、常见的框架源码分析 1、应用框架Spring 2、ORM框架mybatis 3、应用框架Spring 想学习Java技术体系,这三个框架 师 必须需要了解的,编码必备的Spring5,做应用必不可少的框架mybatis。 二、分布式框架 1、初始分布式 2、分布式服务治理中间件(zookeeper,dubbo) 3、分布式消息中间件

妹妹问我:Dubbo集群容错负载均衡

情到浓时终转凉″ 提交于 2020-10-31 10:27:16
前言 相信经过前面几篇之后,大家已经对 Dubbo 整体流程已经清晰了,包括服务是如何暴露的,服务是什么时候注册到注册中心的,以及服务是怎么引入的,服务整体的调用过程等等。 不过还有一个很重要的点没有深入的讲过,就是 Dubbo 的集群容错功能。 线上的服务肯定都是集群部署的,至少得来个两台,互相做 backup,那么问题来了,服务消费者要选用哪一台提供者进行调用呢?调用失败了怎么办呢? 这时候集群容错功能就派上用场了,今天咱们就来深入分析一波 Dubbo 的集群容错。 invoker 是什么? 其实这个在之前就说过了,今天再来复习一遍,因为真的很关键。 在 Dubbo 中 invoker 其实就是一个具有调用功能的对象,在服务暴露端封装的就是真实的服务实现,把真实的服务实现封装一下变成一个 invoker。 在服务引入端就是从注册中心得到服务提供者的配置信息,然后一条配置信息对应封装成一个 invoker,这个 invoker 就具备远程调用能力,当然要是走的是 injvm 协议那真实走的还是本地的调用。 然后还有个 ClusterInvoker ,它也是个 invoker ,它封装了服务引入生成的 invoker 们,赋予其集群容错等能力,这个 invoker 就是暴露给消费者调用的 invoker。 所以说 Dubbo 就是搞了个统一模型,将能 调用的服务的对象都封装成

妹妹问我:Dubbo集群容错负载均衡

我只是一个虾纸丫 提交于 2020-10-31 09:57:59
前言 相信经过前面几篇之后,大家已经对 Dubbo 整体流程已经清晰了,包括服务是如何暴露的,服务是什么时候注册到注册中心的,以及服务是怎么引入的,服务整体的调用过程等等。 不过还有一个很重要的点没有深入的讲过,就是 Dubbo 的集群容错功能。 线上的服务肯定都是集群部署的,至少得来个两台,互相做 backup,那么问题来了,服务消费者要选用哪一台提供者进行调用呢?调用失败了怎么办呢? 这时候集群容错功能就派上用场了,今天咱们就来深入分析一波 Dubbo 的集群容错。 invoker 是什么? 其实这个在之前就说过了,今天再来复习一遍,因为真的很关键。 在 Dubbo 中 invoker 其实就是一个具有调用功能的对象,在服务暴露端封装的就是真实的服务实现,把真实的服务实现封装一下变成一个 invoker。 在服务引入端就是从注册中心得到服务提供者的配置信息,然后一条配置信息对应封装成一个 invoker,这个 invoker 就具备远程调用能力,当然要是走的是 injvm 协议那真实走的还是本地的调用。 然后还有个 ClusterInvoker ,它也是个 invoker ,它封装了服务引入生成的 invoker 们,赋予其集群容错等能力,这个 invoker 就是暴露给消费者调用的 invoker。 所以说 Dubbo 就是搞了个统一模型,将能调用的服务的对象都封装成

视频课程 | 云原生与微服务架构

女生的网名这么多〃 提交于 2020-10-31 08:31:52
京东云开发者社区在3月底于北京举行了以“Cloud Native时代的应用之路与开源创新”为主题的技术沙龙,现场多位技术大咖与开发者们面对面就Cloud Native进行了深入交流,探讨涉及 容器、开源数据库 等诸多技术层面的问题。 现场有超百位开发者热情参与了交流与互动,尤其对 容器、微服务、Serverless 等技术应用与开源创新十分关注。想必这些探讨也将为云计算、架构等相关领域的从业者们提供借鉴与新思路,十分值得广大开发者们认真学习与总结! 我们将整理后的视频及内容资料在这里分享给大家,没能到场的小伙伴可以通过这些资料来学习和了解课程内容。 ## 沙龙内容概要 沙龙活动重点聚焦云原生时代下,容器、微服务、Serverless以及数据库等技术应用与开源创新,同时高度结合京东云在Cloud Native以及开源领域的核心技术与一系列成功实践为开发者们进行答疑解惑! 以下是沙龙 第二部分 分享的全部内容,希望能给各位开发者带来帮助: ## 云原生与微服务架构 —— 京东云专家架构师 王碧波—— (建议在Wi-Fi环境下观看) https://v.qq.com/x/page/t0856s6qgbg.html?start=undefined 01微服务架构概述 第一部分聊完容器相关内容,王碧波作为本场沙龙的第二位分享嘉宾,为开发者们现场带来了主题为“云原生与微服务架构”的技术演讲

二面快手,凉在SpringBoot上!

旧街凉风 提交于 2020-10-31 06:03:42
Java 圈内最近对“面试问 Spring” 的吐槽越来越多:不管大小 公司 o r 项 目,面试官都要跟 你扯一扯 Sprin g Boot、微服务 ,如果答不下来,大概率直接说拜拜! 不少互联网企业,像快手、美团、网易这些一线大厂都在用 Spring 来做敏捷开发。尤其有过不少项目经历的技术人,跟 Spring 相处的时间比跟对象相处的时间还要长。“SpringBoot、SSM 框架有什么好问的?”等类似的吐槽频频曝出。 的确, 作为Java 后端开发, 技术更新迭代是相当快, SpringBoot、SringCloud、Dubbo等各种开源框架 对于使用者来说十分友好,只要编程功底良好,较短的时间就能玩转。但如果仅仅止步于此,就有点陷入误区了。 以SpringBoot 为例,它 解决 的问题就是 Spring 依赖和自动配置的问题。 这 对初学者来说非常便捷 ,但一旦涉及到组件的细节配置,其他框架的整合、调优, 改起来就非常吃力,最后只能追源码。 因此,要想把一种技术吃透,仅限于会用是远远不够的。 如何提高代码性能?出现问题如何快速定位和排查?如何高效实现业务整合? 都是开发者需要考虑的问题。 这里分享一个十分干货的技术分享 《 SpringBoot 技术整合秘籍》,相信各位 从中学习到前辈优秀的高性能代码设计经验、调优配置技巧,总结出最优使用方案,绕过工作中遇到的很多坑

微服务架构

不打扰是莪最后的温柔 提交于 2020-10-31 05:31:19
原文: 微服务架构 微服务架构到底应该如何选择? 什么是微服务? 微服务的概念最早是在 2014 年由 Martin Fowler 和 James Lewis 共同提出,他们定义了微服务是由单一应用程序构成的小服务,拥有自己的进程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通讯。同时,服务会使用最小规模的集中管理 (例如 Docker)技术,服务可以用不同的编程语言与数据库等。 微服务是SOA架构下的最终产物,该架构的设计目标是为了肢解业务,使得服务能够独立运行。 主要有一下几个特点 服务拆分粒度更细 微服务可以说是更细维度的服务化,小到一个子模块,只要该模块依赖的资源与其他模块都没有关系,那么就可以拆分为一个微服务。 服务独立部署 每个微服务都严格遵循独立打包部署的准则,互不影响。比如一台物理机上可以部署多个 Docker 实例,每个 Docker 实例可以部署一个微服务的代码。 服务独立维护 每个微服务都可以交由一个小团队甚至个人来开发、测试、发布和运维,并对整个生命周期负责。 服务治理能力要求高 因为拆分为微服务之后,服务的数量变多,因此需要有统一的服务治理平台,来对各个服务进行管理。 微服务架构下,服务调用主要依赖下面几个基本组件: 服务描述 注册中心 服务框架 服务监控 服务追踪 服务治理 开源RPC框架介绍 Dubbo

Java程序员从阿里、京东、美团面试回来,这些面试题你会吗?

时光毁灭记忆、已成空白 提交于 2020-10-30 01:20:32
最近有很多朋友去目前主流的大型互联网公司面试(阿里巴巴、京东、美团、滴滴),面试回来之后会发给我一些面试题。有些朋友轻松过关,拿到offer,但是有一些是来询问我答案的。 其实本来真的没打算写这篇文章,主要是自己得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的。 但是,最近问我的人实在是太多了,为了避免重复回答,给自己省点力气,干脆就在这里统一回复了。 说实话,我只能隐约想起并发、JVM、分布式、TCP/IP协议这些个关键字,具体的问题真的是几乎都没记住。而且就算我记住了,也告诉你了,你也背会了,但我觉得,在面试中,你被问到一模一样问题的可能性依然很小。 甚至,就算你运气好被问到了,你也照着背下来了,也不一定就能对你的面试起到正面的作用,因为面试官万一多问一句,你可能就露馅了,那还不如干脆点说不会更好,在此给大家讲一下大型互联网企业面试题。 先来看下自己记录的面试材料: 一、阿里巴巴面试 第一个:阿里面试都问什么? :(55分钟) 1、开发中Java用了比较多的数据结构有哪些? 2谈谈你对HashMap的理解,底层原理的基本实现,HashMap怎么解决碰撞问题的? 这些数据结构中是线程安全的吗?假如你回答HashMap是线程安全的

如何接手一个新项目

做~自己de王妃 提交于 2020-10-29 21:02:12
项目好与不好,它就在那里;架构优雅或者丑陋,它就在那里;注释有或者没有,它还在那里;文档乱或者不乱,它始终都在那里。不论它是什么样子的,线上就那样跑着。 一般来讲,项目分为两种: 1、为业务服务的项目,比如公司内部项目、电商项目、各种 app 项目; 2、为技术服务的项目,比如开源中间件项目(dubbo、spring cloud、各种数据库中间件、各种缓存方案等); 首先说第二种项目,它专注于提供某一个或几个特定的功能。相对来说,这种项目技术实现上可能需要对这一领域有比较深的要求,但职责单一,目标明确。而且这种项目都是面向开发人员的,所以设计文档、接口文档、使用文档都会比较齐全。而且这种项目一般都会承担比较核心、比较重要的功能,并且还会在公司内部开放,甚至直接开源到社区。所以要经得起考验,代码都会写的比较规整。 开放出去,如果架构和代码不规整,就不会有人在 github 上 star,也不会有多少人使用。没人用事小,被人骂事大,让团队和公司丢脸更了不得了。所以这种项目比较容易接手,因为在文档和代码都比较规整的情况下,只需要在技术上下功夫就可以了。 本来项目应该有齐备的文档的,而现实中的好多项目往往不是这样的。由于各种各样的原因,比如框架比较老,人员变动,业务变动等,可能造成项目结构变的比较混乱。那么当我们应该如何快速的接手这样一个项目呢。 1、首先需要了解项目的的表现形式

一名北漂三年的Java程序员的面试经历和题库总结

六眼飞鱼酱① 提交于 2020-10-29 16:57:26
最近打算换城市了,受不了北京的雾霾了,所以准备逃离啦。所以一直在面试中,整理了下最近遇到的一些面试题,供大家参考。其中会包含一些面试的小经验,如果您是面霸,希望能给予指导。自己不是大牛,如果您是大牛,也可以忽略之。我面试的岗位是Java后端开发工程师。 一、简历 简历里面需要包含的内容应该是学历,自己的技术栈,然后自己做过的一些项目。简历不需要太长,两页纸即可。里面应该重点写你使用过的一些框架,自己做的一些项目,以及自己的收获,简练第一。一般面试官不会有很多的耐心,看你的项目详细描述,所以尽量简洁明了即可。 二、简历投递 投递的方式有几种吧,相信大家也都知道。一般在程序员的垂直招聘网站投递即可,比如脉脉、BOSS直聘、拉勾等等。智联招聘啥的,不太适合咱们程序员,你懂的。另外,由于自己不是大牛,所以如果有猎头勾搭的话,我尽量不会理会,因为有过血的教训。所以尽量还是自己投简历比较靠谱,或者是内推。 三、面试 由于我是跨城市,所以我接到的面试一般都是电话面试+视频面试,如果聊得差不多了,也有现场面试,不会拘泥于形式。 一般来说,面试流程都差不太多。首先自我介绍,重点介绍一下自己的一些工作经历,以及自己主要负责的一些内容。这块可以提前准备一下,不过也不需要特地准备,别搞得像背书似的,反而觉得不真实。 3.1 技术面试 一般公司都会有两到三轮的技术面试,大厂的技术面试轮次还可能更多