笔记
文章平均质量分 96
猿人启示录
这个作者很懒,什么都没留下…
展开
-
如何优雅的进行重试
重试机制可以保护系统减少因网络波动、依赖服务短暂性不可用带来的影响,让系统能更稳定的运行的一种保护机制。让你原本就稳如狗的系统更是稳上加稳。为了方便说明,先假设我们想要进行重试的方法如下:@Slf4j@Componentpublic class HelloService { private static AtomicLong helloTimes = new AtomicLong(); public String hello(){ long times =原创 2020-08-21 15:25:15 · 980 阅读 · 0 评论 -
Canal入门(二)
本文简单的实现一个小Demo,实现功能为基于Canal和Kafka实现MySQL的Binlog近实时同步。部署所需的中间件搭建一套可以用的组件需要部署MySQL、Zookeeper、Kafka和Canal四个中间件的实例,下面简单分析一下部署过程。选用的虚拟机系统是CentOS7。安装MySQL为了简单起见,选用yum源安装(官方链接是https://dev.mysql.com/downloads/repo/yum):::: info mysql80-community-releas原创 2020-08-14 16:04:29 · 1166 阅读 · 0 评论 -
关于HTTP99% 的面试官都爱问这些问题
HTTP 和 HTTPS 的区别HTTP 是一种 超文本传输协议(Hypertext Transfer Protocol),HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范HTTP 主要内容分为三部分,超文本(Hypertext)、传输(Transfer)、协议(Protocol)。超文本就是不单单只是本文,它还可以传...原创 2020-04-20 17:49:08 · 1155 阅读 · 0 评论 -
ElasticSearch 面试题解析
1、elasticsearch 了解多少,说说你们公司 es 的集群架构,索引数据大小,分片有多少,以及一些调优手段 。面试官:想了解应聘者之前公司接触的 ES 使用场景、规模,有没有做过比较大规模的索引设计、规划、调优。解答:如实结合自己的实践场景回答即可。比如:ES 集群架构 13 个节点,索引根据通道不同共 20+索引,根据日期,每日递增 20+,索引:10 分片,每日递增 1 ...原创 2020-03-23 10:05:34 · 937 阅读 · 0 评论 -
Dubbo高频面试题
1、为什么要用 Dubbo?随着服务化的进一步发展,服务越来越多,服务之间的调用和依赖关系也越来越复杂,诞生了面向服务的架构体系(SOA),也因此衍生出了一系列相应的技术,如对服务提供、服务调用、连接处理、通信协议、序列化方式、服务发现、服务路由、日志输出等行为进行封装的服务框架。就这样为分布式系统的服务治理框架就出现了,Dubbo 也就这样产生了。2、Dubbo 的整体架构设计有哪些分层...原创 2020-03-23 10:00:26 · 505 阅读 · 0 评论 -
RabbitMQ高频面试题
1、什么是 rabbitmq采用 AMQP 高级消息队列协议的一种消息队列技术,最大的特点就是消费并不需要确保提供方存在,实现了服务之间的高度解耦2、为什么要使用 rabbitmq(1)在分布式系统下具备异步,削峰,负载均衡等一系列高级功能;(2)拥有持久化的机制,进程消息,队列中的信息也可以保存下来。(3)实现消费者和生产者之间的解耦。(4)对于高并发场景下,利用消息队列...原创 2020-03-23 09:43:31 · 509 阅读 · 0 评论 -
kafka高频面试题
1、如何获取 topic 主题的列表bin/kafka-topics.sh --list --zookeeper localhost:21812、生产者和消费者的命令行是什么?生产者在主题上发布消息:bin/kafka-console-producer.sh --broker-list 192.168.43.49:9092 --topicHello-Kafka注意这里的 IP ...原创 2020-03-20 14:09:00 · 444 阅读 · 0 评论 -
Java微服务面试题
1、您对微服务有何了解?微服务,又称微服务 架 构,是一种架构风格,它将应用程序构建为以业务领域为模型的小型自治服务集合 。通俗地说,你必须看到蜜蜂如何通过对齐六角形蜡细胞来构建它们的蜂窝状物。他们最初从使用各种材料的小部分开始,并继续从中构建一个大型蜂箱。这些细胞形成图案,产生坚固的结构,将蜂窝的特定部分固定在一起。这里,每个细胞独立于另一个细胞,但它也与其他细胞相关。这意味着对一个细胞...原创 2020-03-20 14:06:53 · 961 阅读 · 0 评论 -
Spring Boot面试都问了什么
1、什么是 Spring Boot?多年来,随着新功能的增加,spring 变得越来越复杂。访问spring官网页面,我们就会看到可以在我们的应用程序中使用的所有 Spring 项目的不同功能。如果必须启动一个新的 Spring 项目,我们必须添加构建路径或添加 Maven 依赖关系,配置应用程序服务器,添加 spring 配置。因此,开始一个新的 spring 项目需要很多努力,因为我们现在...原创 2020-03-20 14:03:01 · 331 阅读 · 0 评论 -
出镜率最高的ZooKeeper面试题
1. ZooKeeper 是什么?ZooKeeper 是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。分布式应用程序可以基于 Zookeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。...原创 2020-03-20 14:01:34 · 425 阅读 · 0 评论 -
MyBatis面试题集锦
1、什么是 Mybatis?(1)Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高。(2)MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数据库...原创 2020-03-20 13:59:30 · 330 阅读 · 0 评论 -
redis相关面试题集锦
1、什么是 Redis?Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key-value 数据库。Redis 与其他 key - value 缓存产品有以下三个特点:(1)Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。(2)Redis 不仅仅支持简单的 key-value 类型的数据,同时还提供 list,set,...原创 2020-03-20 11:20:23 · 420 阅读 · 0 评论 -
面试中JVM与性能调优相关问题分享
一、JVM 内存区域划分1.程序计数器(线程私有)程序计数器(Program Counter Register),也有称作为 PC 寄存器。保存的是程序当前执行的指令的地址(也可以说保存下一条指令的所在存储单元的地址),当 CPU 需要执行指令时,需要从程序计数器中得到当前需要执行的指令所在存储单元的地址,然后根据得到的地址获取到指令,在得到指令之后,程序计数器便自动加 1 或者根据转移指...原创 2020-03-20 11:18:20 · 325 阅读 · 0 评论 -
Java面试题基础(第三弹)
1、Java 中能创建 volatile 数组吗?能,Java 中可以创建 volatile 类型数组,不过只是一个指向数组的引用,而不是整个数组。我的意思是,如果改变引用指向的数组,将会受到 volatile 的保护,但是如果多个线程同时改变数组的元素,volatile 标示符就不能起到之前的保护作用了。2、volatile 能使得一个非原子操作变成原子操作吗?一个典型的例子是在类中...原创 2020-03-20 10:26:13 · 7154 阅读 · 0 评论 -
Java面试题基础(第二弹)
51、类 ExampleA 继承 Exception,类 ExampleB 继承ExampleA。有如下代码片断:try { throw new ExampleB("b")}catch(ExampleA e){ System.out.println("ExampleA");}catch(Exception e){ System.out.println("Exception"...原创 2020-03-19 18:01:01 · 470 阅读 · 0 评论 -
Java面试题基础(第一弹)
1、面向对象的特征有哪些方面?面向对象的特征主要有以下几个方面:抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继...原创 2020-03-19 17:47:14 · 759 阅读 · 0 评论 -
Spring Cloud原理及分析
目录一、业务场景介绍二、Spring Cloud核心组件:Eureka三、Spring Cloud核心组件:Feign四、Spring Cloud核心组件:Ribbon五、Spring Cloud核心组件:Hystrix六、Spring Cloud核心组件:Zuul七、总结概述毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在...转载 2020-03-19 13:47:19 · 283 阅读 · 0 评论 -
Java后端学习路线(适合科班、非科班和已工作的仔)
前言今天看到一篇关于后端学习的硬核博文,感觉原博主说的很详细,涉及面很广,很适合正准备提升自己的小伙伴,故转载此文,与大家共勉,原作者用一个完整的电商系统作为切入点,带着大家看看,我们需要学些啥,原作者还收集配套视频和资料,绝对的呕心沥血之作,如需了解更多可以微信搜索「三太子敖丙」第一时间阅读,回复【路线】获取详细的后端学习资料。原文链接:https://juejin.im/post/5e...转载 2020-03-19 11:11:42 · 717 阅读 · 0 评论 -
@Autowired的使用:推荐对构造函数进行注释
最近在使用idea开发时经常看到右侧栏有黄色一堆堆的,好恶心,这些代表代码不符合规范,可能会出现问题,为了代码整洁和代码规范,则优化一把,重点记录下autowired注解优化。@autowired含义 spring 2.5引入了@autowired注释,@autowired注释可以对类成员变量、方法、构造函数进行标注,完成自动装配功能。@autowired查找bean首先是先通过byTy...原创 2020-01-06 11:05:33 · 1272 阅读 · 0 评论 -
如何解决WebSocket的兼容性
我们知道WebSocket是一种在服务器与客户端双向通讯的技术,使用原生的WebSocket可以最小化 服务器资源的使用并且为两者提供了一种统一的通信方式。随着HTML5的普及,现代浏览器(IE10+)基本上都已经原生支持WebSocket了,下面是支持WebSocket协议的浏览器:Internet Explorer 10 Firefox 6 Chrome 14 Safari 6.0...原创 2019-12-18 11:09:37 · 1683 阅读 · 1 评论 -
云原生时代,什么是蚂蚁金服推荐的金融架构?
蚂蚁金服在过去十五年重塑支付改变生活,为全球超过十二亿人提供服务,这些背后离不开技术的支撑。在 2019 杭州云栖大会上,蚂蚁金服将十五年来的技术沉淀,以及面向未来的金融技术创新和参会者分享。我们将其中的优秀演讲整理成文并将陆续发布在“金融级分布式架构”公众号上,本文为其中一篇。本文作者:杨延昭(杨冰),蚂蚁金服智能科技产品技术部总监互联网技术发展日新月异,我们正...转载 2019-10-21 13:47:40 · 384 阅读 · 0 评论 -
简单易懂的 SpringBoot 异步编程指南
通过本文你可以了解到下面这些知识点:Future 模式介绍以及核心思想 核心线程数、最大线程数的区别,队列容量代表什么; ThreadPoolTaskExecutor 饱和策略; SpringBoot 异步编程实战,搞懂代码的执行逻辑。Future 模式异步编程在处理耗时操作以及多任务处理的场景下非常有用,我们可以更好的让我们的系统利用好机器的 CPU 和 内存,提高它们的利用率。...原创 2019-10-21 12:03:04 · 208 阅读 · 0 评论 -
9102年了参数校验(validator)应该这么写
很痛苦遇到大量的参数进行校验,在业务中还要抛出异常或者 不断的返回异常时的校验信息,在代码中相当冗长, 充满了if-else这种校验代码,今天我们就来学习spring的javax.validation 注解式参数校验.为什么要用validator javax.validation的一系列注解可以帮我们完成参数校验,免去繁琐的串行校验 不然我们的代码就像下面这样: // ...原创 2019-10-12 16:27:21 · 196 阅读 · 0 评论 -
从 Spring Boot 1.0 升级到 2.0 所踩的坑
从 Spring Boot 1.0 升级到 2.0 的时候也遇到了一些问题,在修改的过程中记录下来,今天整理一下分享出来,方便后续升级的朋友少踩一些坑。1、第一个问题:启动类报错Spring Boot 部署到 Tomcat 中去启动时需要在启动类添加SpringBootServletInitializer,2.0 和 1.0 有区别。// 1.0import org.springf...转载 2018-07-23 14:25:49 · 2140 阅读 · 0 评论 -
JVM内存模型
JAVA的主题是其著名的WOTA:“一次编写,随处运行”。为了应用它,Sun Microsystems创建了Java虚拟机,它是解释编译的java代码的底层操作系统的抽象。该JVM是JRE(Java运行环境)的核心组件,创建运行Java代码,但现在所使用的其他语言(Scala, Groovy, JRuby, Closure …)。在本文中,我将重点介绍JVM规范中描述的运行时数据区。这些区域旨...原创 2018-07-23 14:59:45 · 195 阅读 · 0 评论 -
HashMap如何在JAVA中工作
大多数JAVA开发人员都在使用Map,尤其是HashMap。HashMap是一种存储和获取数据的简单而强大的方法。但有多少开发人员知道HashMap如何在内部工作?几天前,我阅读了java.util.HashMap的大部分源代码(在Java 7中,然后是Java 8),以便深入理解这个基本数据结构。在这篇文章中,我将解释java.util.HashMap的实现,介绍JAVA 8实现中的新功能,并讨...原创 2018-07-23 15:09:57 · 380 阅读 · 0 评论 -
SpringBoot整合Mybatis-Plus
新建一个项目。pom文件中加入Mybatis依赖,完整pom如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schema...原创 2018-07-23 15:53:20 · 178 阅读 · 0 评论 -
Docker概念详细篇
本文只是对Docker的概念做了较为详细的介绍,并不涉及一些像Docker环境的安装以及Docker的一些常见操作和命令。阅读本文大概需要15分钟,通过阅读本文你将知道一下概念:容器 什么是Docker? Docker思想、特点 Docker容器主要解决什么问题 容器 VS 虚拟机 Docker基本概念: 镜像(Image),容器(Container),仓库(Repository...原创 2018-07-23 16:12:17 · 694 阅读 · 0 评论 -
后端开发的奇淫技巧大集合
本博文转载自https://juejin.im/post/5b07c69f6fb9a07ac560916a,如有冒犯原作者请留言,本人将第一时间撤销本博文。Hi,大家好,很荣幸有这个机会可以通过写博文的方式,把这些年在后端开发过程中总结沉淀下来的经验和设计思路分享出来模块化设计根据业务场景,将业务抽离成独立模块,对外通过接口提供服务,减少系统复杂度和耦合度,实现可复用,易维护,易拓展...转载 2018-07-23 16:27:46 · 264 阅读 · 0 评论 -
项目中可能用到的一些工具类Utils
StringUtilsimport java.net.URLEncoder;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.GregorianCalendar;import java.util.Hashtable;...原创 2018-07-23 17:02:06 · 538 阅读 · 0 评论 -
Redis 入门
1 Redis 介绍Nosql 基本概念为了解决高并发、高可用、高可扩展,大数据存储等一系列问题而产生的数据库解决方案,就是NoSql。NoSql,叫非关系型数据库,它的全名Not only sql。它不能替代关系型数据库,只能作为关系型数据库的一个良好补充。Nosql 分类 键值(Key-Value)存储数据库 相关产品: Tokyo Cabinet/Tyrant、Redi...原创 2018-07-24 13:46:19 · 379 阅读 · 0 评论 -
Java多线程 ——多线程入门篇
1 说到线程,首先来说下进程,以下是进程的定义:进程是操作系统结构的基础,是程序的一次执行,是一个程序及其数据结构在处理机上顺序执行时所发生的活动,是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。简单来说一个任务管理器中列表的一个exe文件就可以理解成进程,如QQ.exe就是一个进程,进程是受系统管理的基本运行单元。1.1 什么是线程?线程是操作系统能够...原创 2018-07-24 14:32:34 · 236 阅读 · 0 评论 -
JSON Web Token 入门教程
JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案,本文介绍它的原理和用法。一、跨域认证的问题互联网服务离不开用户认证。一般流程是下面这样。1、用户向服务器发送用户名和密码。2、服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色、登录时间等等。3、服务器向用户返回一个 session_id,写入用户的 Cookie。4...转载 2018-07-24 17:05:50 · 248 阅读 · 0 评论 -
SpringBoot定时任务及Cron表达式详解
一、定时任务概述 后台项目开发中经常会用到定时任务,现在实现定时任务都方式也是多种多样。下面列举几种常见的定时任务实现方式: 1. Quartz:Quartz的使用相当广泛,它是一个功能强大的调度器,当然使用起来也相对麻烦; 2. java.util包里的Timer,它也可以实现定时任务但是功能过于单一所有使用很少。 3. 就是我们今天要介绍的Spring自...转载 2018-07-25 10:21:06 · 435 阅读 · 0 评论 -
理解 Spring 定时任务的 fixedRate 和 fixedDelay 的区别
用过 Spring 的 @EnableScheduling 的都知道,我们用三种形式来部署计划任务,即 @Scheduled 注解的 fixedRate(fixedRateString), fixedDelay(fixedDelayString), 以及 cron. cron 不在这里讨论的范畴。我们着重在如何理解 fixedRate 和 fixedDelay 的区别。在 Spring 的 ...原创 2018-07-25 10:22:39 · 1179 阅读 · 0 评论 -
使用spring boot +WebSocket实现(后台主动)消息推送(基于非Stomp协议的Demo)
前言:使用此webscoket务必确保生产环境能兼容/支持!使用此webscoket务必确保生产环境能兼容/支持!使用此webscoket务必确保生产环境能兼容/支持!主要是tomcat的兼容与支持,在次介绍下使用 tomcat8+h5 环境下的实现。1.pom<dependency> <groupId>org.springframework.boot&...原创 2018-07-26 15:08:00 · 1283 阅读 · 0 评论 -
SpringBoot集成WebSocket【基于纯H5】(非Stomp协议的原生WebSocket协议)
之前实现WebSocket基于STOMP的,如果觉得SpringBoot封装的太高,不怎么灵活,现在实现一个纯H5的,也大概了解webSocket在内部是怎么传输的。1.环境搭建因为在上一篇基于STOMP协议实现的WebSocket里已经有大概介绍过Web的基本情况了,所以在这篇就不多说了,我们直接进入正题吧,在SpringBoot中,我们还是需要导入WebSocket的包。在pox....原创 2018-07-26 15:26:28 · 1682 阅读 · 10 评论 -
springboot+websocket+sockjs进行消息推送【基于STOMP协议】
1.浅谈WebSocketWebSocket是在HTML5基础上单个TCP连接上进行全双工通讯的协议,只要浏览器和服务器进行一次握手,就可以建立一条快速通道,两者就可以实现数据互传了。说白了,就是打破了传统的http协议的无状态传输(只能浏览器请求,服务端响应),websocket全双工通讯,就是浏览器和服务器进行一次握手,浏览器可以随时给服务器发送信息,服务器也可以随时主动发送信息给浏览器了...原创 2018-07-26 15:44:20 · 41266 阅读 · 257 评论 -
Hibernate 与Mybatis 区别
1 简单简介 1.1 Hibernate 框架 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,建立对象与数据库表的映射。是一个全自动的、完全面向对象的持久层框架。 1.2 Mybatis框架 Mybatis是一个开源对象关系映射框架,原名:ibatis,2010年由谷歌接管以后更名...转载 2018-07-30 10:20:01 · 127 阅读 · 0 评论 -
Spring Boot 整合 Redis 实现缓存操作
摘要: 原创出处 www.bysocket.com 「泥瓦匠BYSocket 」本文提纲一、缓存的应用场景二、更新缓存的策略三、运行 springboot-mybatis-redis 工程案例四、springboot-mybatis-redis 工程代码配置详解 运行环境:Mac OS 10.12.xJDK 8 +Redis 3.2.8Spring Bo...转载 2018-07-27 14:45:26 · 127 阅读 · 0 评论