Dubbo

Java自学路线图之Java系统自学

ぐ巨炮叔叔 提交于 2020-11-20 08:19:14
Java自学不是一朝一夕的事情。可以采用“懒开始”的方法,但是必须要坚持下去,才能真正自学Java掌握编程技术。那些企图学几天去包装一下找工作的,请绕道。如果你下定决心自学Java,那么这套Java自学路线图绝对是你系统性、全面自学的最佳选择! Java自学路线是螺旋上升的,需要耗费的时间和精力不比其他学科的少,但由于其稳健性的特点使其成为企业开发的刚需编程语言。从网上看到发布Java自学路线图的很多,但大部分学习路线图是很零碎的,没有系统的自学目标和自学中需要掌握的重点知识。 黑马程序员2020年最新版Java自学路线图是根据主流企业的要求不断更新的,而且各阶段的Java教程在黑马程序员视频库都能找到自学资源,这些Java自学教程收获了大量好评。相比同时自学的其他同学能少走弯路,并且保证自学到的能力也是企业在招聘中所需要的。 Java自学资源 新手该如何一步步的自学Java? (点击进入) 第一阶段 Java零基础自学路线图--Java基础自学 此阶段的学习目标: 基础语法是学习任何编程语言的第一课,学好基础语法,才能更好的学习后面的课程知识点。 此阶段的市场价值: 具备Java语言编程基础,可以实现简单的小系统程序,但达不到企业型人才的标准。 此阶段的重点知识: 掌握Java开发环境基本配置 掌握运算符、表达式、流程控制语句、数组等的使用 熟练使用IDEA开发工具

多线程编程中的"坑"--近期遇到的多线程bug总结

主宰稳场 提交于 2020-11-20 07:59:50
最近工作中连续碰到几个涉及多线程方面的bug,在这总结梳理一下,就当提醒自己别犯同样的错误。 Bug 1 - 狂转的CPU 同事的一个项目上线的时候,发现CPU占用率奇高,达到700%,而平常的时候,也就100%左右。用jstack查看线程栈,发现很多线程都卡在一个名为 waitUntilInited() 的方法里面。查看代码,发现这个方法是这样的: private boolean inited = false; ... void waitUntilInited() { while(!inited) { ; } } 有一个线程会执行一些初始化操作,初始化完成会将inited变量赋值为true;而业务线程调用 waitUntilInited() 方法等待初始化完成才能执行操作。说到这里,bug已经很明显了。这是典型的没使用volatile导致的线程可见性bug。这个bug的情况比较简单,由于一直在做循环,比较容易定位到问题所在。但有时候由于可见性问题造成的bug会比这个诡异得多,因此在写多线程程序的时候要特别留心共享变量的可见性。 Bug 2 - 忽隐忽现的地址已绑定异常 最近同事的项目在启动的时候,Dubbo服务打开端口偶尔会出现地址已经被绑定异常( java.net.BindException )。出现异常的代码在 com.alibaba.dubbo.rpc.protocol

Dubbo 一些你不一定知道但是很好用的功能

我的梦境 提交于 2020-11-19 11:54:02
dubbo功能非常完善,很多时候我们不需要重复造轮子,下面列举一些 你不一定知道,但是很好用 的功能; 直连Provider 在开发及测试环境下,可能需要绕过注册中心,只测试指定服务提供者,这时候可能需要点对点直连,点对点直连模式,将以服务接口为单位,忽略注册中心的提供者列表,A 接口配置点对点,不影响 B 接口从注册中心获取列表(说明:官方只建议开发&测试环境使用该功能),用法如下,url指定的地址就是直连地址: <dubbo:reference id="demoService" interface="com.alibaba.dubbo.demo.DemoService" version="1.0.0" url="dubbo://172.18.1.205:20888/" /> 多版本 当一个接口实现,出现不兼容升级时,可以用版本号过渡,版本号不同的服务相互间不引用,用法如下: <dubbo:service interface="com.alibaba.dubbo.demo.DemoService" ref="demoService" version="1.0.0" /> 利用dubbo该特性,我们能够实现一些功能的灰度发布,实现步骤如下: 接口旧的实现定义version="1.0.0",接口新的实现version="2.0.0" Consumer端定义version="*"

Java后端面试题

烈酒焚心 提交于 2020-11-19 06:34:45
标★号为重要知识点 id全局唯一且自增,如何实现? Redis的 incr 和 increby 自增原子命令 统一数据库的id发放 美团Leaf Leaf——美团点评分布式ID生成系统(批发号段) Twitter的snowflake算法 UUID ★如何设计算法压缩一段URL? 通过发号策略,给每一个过来的长地址,发一个号即可,小型系统直接用mysql的自增索引就搞定了。如果是大型应用,可以考虑各种分布式key-value系统做发号器。不停的自增就行了。第一个使用这个服务的人得到的短地址是 http://xx.xx/0 第二个是 http://xx.xx/1 第11个是 http://xx.xx/a 第依次往后,相当于实现了一个62进制的自增字段即可。 常用的url压缩算法是短地址映射法。具体步骤是: 将长网址用md5算法生成32位签名串,分为4段,,每段8个字符; 对这4段循环处理,取每段的8个字符, 将他看成16进制字符串与0x3fffffff(30位1)的位与操作,超过30位的忽略处理; 将每段得到的这30位又分成6段,每5位的数字作为字母表的索引取得特定字符,依次进行获得6位字符串; 这样一个md5字符串可以获得4个6位串,取里面的任意一个就可作为这个长url的短url地址。 ★Dubbo负载均衡策略? 随机、轮询、最少使用、一致性哈希(除了一致性哈希外,都有加权)

独角兽余额宝(Java现场面试48题):JVM调优+索引+缓存+HashMap+GC

此生再无相见时 提交于 2020-11-15 19:15:36
余额宝一面 介绍一下自己。 JVM 内存分哪几个区,每个区的作用是什么?JVM有哪些回收算法,对应的收集器有哪些? JVM,垃圾回收机制,内存划分等 GC 的两种判定方法 ?CMS 收集器与 G1 收集器的特点。 HashMap中的get()方法是如何实现的? HashMap、HashMap如何保证线程安全、ConcurrentHashMap HashMap底层结构 put操作讲一下 GC 的两种判定方法 ?CMS 收集器与 G1 收集器的特点。 java线程同步都有哪几种方式,在 Java 中 CycliBarriar 和 CountdownLatch 有什么区别? cas的原理,变量要用哪个关键字修饰,volatile实现的原理。 你在多线程环境中遇到的常见的问题是什么?你是怎么解决它的? MYSQL 数据库服务器性能分析的方法命令有哪些? SQL优化,常用的索引? 手撕代码:按层次遍历二叉树? Java 配置的方式配置 Spring spring中用到了什么, 简述 AOP 和 IOC 概念,aop是怎么实现的? 第一轮非常重要,第一面能通过,后续被录用的可能性就比较高了,建议系统性的学习面试题目 余额宝二面 项目用 Spring 比较多,有没有了解 Spring 的原理?AOP 和 IOC 的原理 对哪些技术比较熟悉? 分布式锁原理 乐观锁如何保证线程安全? CAS 算法

500道高频面试+4套Github商城项目教程(源码+视频)

孤人 提交于 2020-11-15 06:28:03
最近很多粉丝问我有没有最新的面试题?于是,我就把我见过的以及遇到过的,还有根据读者反馈的大厂面试真题,进行了汇总整理。 于是就有了这份 《Java大厂面试题合集》, 并且按照细分了41个方向。 题库非常全面 包括Java基础、Java异常、Spring、SpirngMVC、MyBatis、SpringBoot、SpringCloud、BIO、NIO、AIO、Netty、Tomcat、Redis、MySQL、Memcache、ElasticSearch、zookeeper、RabbitMQ、Vue、Dubbo、并发编程、Java虚拟机、TCP、Http、大数据、设计模式、Linux等 面试题,如何获取? 关注我添加助理VX:MXW5308 即可免费获取 另外,我还给大家准备了5个Java实战项目 现在这个时代,没有微服务、分布式的项目经验真的有点难了,其次在项目中用到的中间接比如Redis、MQ、Nginx、solr、ElasticSearch、Docker、Dubbo、Kafka、ShardingSphere等等。 项目分别是: 青橙商城完整版 后台+前台+青橙秒杀 Java大型电商系统谷粒商城项目开发实践 淘淘商城(分布式基于SSM) 大型微服务项目十次方 【乐优商城】项目(SpringBoot、SpringCloud、Vue) 部分截图 关注我添加助理VX:MXW5308

每天两小时轻松掌握java、spring、Redis、JVM、分布式、高并发

早过忘川 提交于 2020-11-13 13:14:34
干货视频,高级架构师最新java、spring、Redis、JVM、分布式、高并发。要的留下私信我,一小时之内回复。里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring,MyBatis,Netty源码分析,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点高级进阶干货的免费直播讲解。 需要资料直接关注下方公众号即可免费领取。 精选JAVA 高并发分布式架构课程视频 。 高可用、高并发、高性能及分布式、Jvm性能调优、Spring,MyBatis,Netty源码分析,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx 互联网架构专题课程【马士兵教育】---Java架构师学这个就够了 若干架构资料文档 面试系列视频发放 如果需要获取到这个里面的文档的话帮忙转发一下然后再关注下方公众号得到获取方式吧! 来源: oschina 链接: https://my.oschina.net/u/4310950/blog/4715598

857页Alibaba“Java学习进阶笔记”开源!分布式/微服务/Spring框架/JVM/数据结构与算法啥都有

做~自己de王妃 提交于 2020-11-13 11:36:26
笔记作者: 来自于阿里P8级架构师: Mark 笔记特点: 条理清晰,含图像化表示更加易懂。 内容概要: 包括 Java 集合、JVM、多线程、并发编程、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat等大厂面试题等、等技术栈! 由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。 即可免费获取 JAVA集合 接口继承关系和实现 List ArrayList(数组) Vector(数组实现、线程同步) LinkList(链表) Set HashSet(Hash表) TreeSet(二叉树) JVM JVM就是java虚拟机,它是一个虚构出来的计算机,可在实际的计算机上模拟各种计算机的功能。JVM有自己完善的硬件结构,例如处理器、堆栈和寄存器等,还具有相应的指令系统。 线程 JVM内存区域 JVM运行时内存 垃圾回收与算法 JAVA 四种引用类型 GC分代收集算法 VS 分区收集算法 GC垃圾收集器 JAVA IO/NIO JVM 类加载机制 JAVA多线程并发 JAVA并发知识库 JAVA线程实现/创建方式 4种线程池 线程生命周期(状态) 终止线程4种方式

SpringCloud基础教程(一)-微服务与SpringCloud

北城余情 提交于 2020-11-13 02:03:41
 我的博客: 程序员笑笑生 ,欢迎浏览博客!  近年来,随着互联网公司自身的业务体系越来越大,系统复杂度越来越高,导致我们不得不将服务进行拆分,微服务的概念也是迅速在互联网发酵。我们也迫切的需要一套框架、一个生态系统能够健全、稳定的为我们解决问题。本章就简单的介绍一下微服务的概念,以及Spring Cloud的生态组件。 一、微服务架构简介  微服务架构风格是将单体应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务之间通过轻量级的通讯机制(通常是HTTP资源api).。每一个服务是围绕这个业务能力构建,并且可以独立的部署、可独立扩展。不同的服务可以使用不同的语言来编写,也可以使用不同的数据存储。总结如下: 服务功能单一 可独立部署、独立扩展 可跨语言编程 服务间良好的通信机制  在 https://spring.io/ 官方网站介绍Spring Cloud时,以图的方式展现了微服的架构图:图中包含了网关,各个微服务单元,服务注册,服务配置等   二、SpingCloud 简介  在微服务的发展过程中,随着分布式水平的提高,系统会变得越来越复杂,系统发生的错误率随着系统的复杂性呈指数型增长、因此微服务也出现了反对的声音,认为微服务增加了系统的维护、部署难度、导致一些功能模块和代码很难反复的使用。有没有一种框架可以尽可能的解决上述的问题呢。有,就是Spring

香香了,3280多页实战pdf集合:Redis+多线程+Nginx+JVM+中间件+MySQL

你离开我真会死。 提交于 2020-11-12 09:29:18
写在前面 作为一名Java开发者,在现在这个信息化时代很快的时代,很少会有人停下脚步去思考以及去总结,忽略了很重要的一个步骤,没有反思和总结,只会用原来固有的想法去做事情,所以还是需要隔一段时间去总结。LZ今天总结了自己在平时会用到的一些: 01—Redis实战 在Redis诞生数年之后的今天,这个项目已经发生了显著的变化:我们现在拥有了一个更为健壮的系统,并且随着Redis 2.6的发布,开发的重点已经转移到实现集群以及高可用特性上面,Redis正在进入它的成熟期。在我看来,Redis 生态系统中进步最为明显的一个地方,就是redis.io网站以及Redis Google Group这些由用户和贡献者组成的社区。数以千计的人通过GitHub的问题反馈系统参与到了这个项目里面,他们为Redis编写客户端库、提交补丁并帮助其他遇到麻烦的用户。 时至今日, Redis 仍然是一一个BSD授权的社区项目,它没有那些需要付钱才能使用的闭源插件或者功能增强版。Redis 的参考文档非常详细和准确,在遇到问题时也很容易就可以找到Redis开发者或者专家来为你排忧解难。 pdf的目录大纲介绍: 第一部分入门 第1章初识Redis 第2章使用Redis构建Web应用 第二部分核心概念 第3章Redis命令 第4章数据安全与性能保障 第5章使用Redis构建支持程序