猿人启示录

为什么我们总是没有时间把事情做对,却有时间做完它?

  • 博客(108)
  • 资源 (1)
  • 收藏
  • 关注

原创 如何优雅的进行重试

重试机制可以保护系统减少因网络波动、依赖服务短暂性不可用带来的影响,让系统能更稳定的运行的一种保护机制。让你原本就稳如狗的系统更是稳上加稳。为了方便说明,先假设我们想要进行重试的方法如下:@Slf4j@Componentpublic class HelloService { private static AtomicLong helloTimes = new AtomicLong(); public String hello(){ long times =

2020-08-21 15:25:15 922

原创 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 1064

原创 关于HTTP99% 的面试官都爱问这些问题

HTTP 和 HTTPS 的区别HTTP 是一种 超文本传输协议(Hypertext Transfer Protocol),HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范HTTP 主要内容分为三部分,超文本(Hypertext)、传输(Transfer)、协议(Protocol)。超文本就是不单单只是本文,它还可以传...

2020-04-20 17:49:08 1071

原创 ElasticSearch 面试题解析

1、elasticsearch 了解多少,说说你们公司 es 的集群架构,索引数据大小,分片有多少,以及一些调优手段 。面试官:想了解应聘者之前公司接触的 ES 使用场景、规模,有没有做过比较大规模的索引设计、规划、调优。解答:如实结合自己的实践场景回答即可。比如:ES 集群架构 13 个节点,索引根据通道不同共 20+索引,根据日期,每日递增 20+,索引:10 分片,每日递增 1 ...

2020-03-23 10:05:34 904

原创 Dubbo高频面试题

1、为什么要用 Dubbo?随着服务化的进一步发展,服务越来越多,服务之间的调用和依赖关系也越来越复杂,诞生了面向服务的架构体系(SOA),也因此衍生出了一系列相应的技术,如对服务提供、服务调用、连接处理、通信协议、序列化方式、服务发现、服务路由、日志输出等行为进行封装的服务框架。就这样为分布式系统的服务治理框架就出现了,Dubbo 也就这样产生了。2、Dubbo 的整体架构设计有哪些分层...

2020-03-23 10:00:26 453

原创 RabbitMQ高频面试题

1、什么是 rabbitmq采用 AMQP 高级消息队列协议的一种消息队列技术,最大的特点就是消费并不需要确保提供方存在,实现了服务之间的高度解耦2、为什么要使用 rabbitmq(1)在分布式系统下具备异步,削峰,负载均衡等一系列高级功能;(2)拥有持久化的机制,进程消息,队列中的信息也可以保存下来。(3)实现消费者和生产者之间的解耦。(4)对于高并发场景下,利用消息队列...

2020-03-23 09:43:31 467

原创 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 415

原创 Java微服务面试题

1、您对微服务有何了解?微服务,又称微服务 架 构,是一种架构风格,它将应用程序构建为以业务领域为模型的小型自治服务集合 。通俗地说,你必须看到蜜蜂如何通过对齐六角形蜡细胞来构建它们的蜂窝状物。他们最初从使用各种材料的小部分开始,并继续从中构建一个大型蜂箱。这些细胞形成图案,产生坚固的结构,将蜂窝的特定部分固定在一起。这里,每个细胞独立于另一个细胞,但它也与其他细胞相关。这意味着对一个细胞...

2020-03-20 14:06:53 924

原创 Spring Boot面试都问了什么

1、什么是 Spring Boot?多年来,随着新功能的增加,spring 变得越来越复杂。访问spring官网页面,我们就会看到可以在我们的应用程序中使用的所有 Spring 项目的不同功能。如果必须启动一个新的 Spring 项目,我们必须添加构建路径或添加 Maven 依赖关系,配置应用程序服务器,添加 spring 配置。因此,开始一个新的 spring 项目需要很多努力,因为我们现在...

2020-03-20 14:03:01 293

原创 出镜率最高的ZooKeeper面试题

1. ZooKeeper 是什么?ZooKeeper 是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。分布式应用程序可以基于 Zookeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。...

2020-03-20 14:01:34 387

原创 MyBatis面试题集锦

1、什么是 Mybatis?(1)Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高。(2)MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数据库...

2020-03-20 13:59:30 291

原创 redis相关面试题集锦

1、什么是 Redis?Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key-value 数据库。Redis 与其他 key - value 缓存产品有以下三个特点:(1)Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。(2)Redis 不仅仅支持简单的 key-value 类型的数据,同时还提供 list,set,...

2020-03-20 11:20:23 378

原创 面试中JVM与性能调优相关问题分享

一、JVM 内存区域划分1.程序计数器(线程私有)程序计数器(Program Counter Register),也有称作为 PC 寄存器。保存的是程序当前执行的指令的地址(也可以说保存下一条指令的所在存储单元的地址),当 CPU 需要执行指令时,需要从程序计数器中得到当前需要执行的指令所在存储单元的地址,然后根据得到的地址获取到指令,在得到指令之后,程序计数器便自动加 1 或者根据转移指...

2020-03-20 11:18:20 283

原创 Java并发编程面试题合集

1、在 java 中守护线程和本地线程区别?java 中的线程分为两种:守护线程(Daemon)和用户线程(User)。任何线程都可以设置为守护线程和用户线程,通过方法 Thread.setDaemon(boolon);true 则把该线程设置为守护线程,反之则为用户线程。Thread.setDaemon()必须在 Thread.start()之前调用,否则运行时会抛出异常。两者的区别...

2020-03-20 11:13:27 285 1

原创 Java面试题基础(第四弹)

116、什么时候使用访问者模式?访问者模式用于解决在类的继承层次上增加操作,但是不直接与之关联。这种模式采用双派发的形式来增加中间层。117、什么时候使用组合模式?组合模式使用树结构来展示部分与整体继承关系。它允许客户端采用统一的形式来对待单个对象和对象容器。当你想要展示对象这种部分与整体的继承关系时采用组合模式。118、继承和组合之间有什么不同?虽然两种都可以实现代码复用,但...

2020-03-20 11:09:01 1941

原创 Java面试题基础(第三弹)

1、Java 中能创建 volatile 数组吗?能,Java 中可以创建 volatile 类型数组,不过只是一个指向数组的引用,而不是整个数组。我的意思是,如果改变引用指向的数组,将会受到 volatile 的保护,但是如果多个线程同时改变数组的元素,volatile 标示符就不能起到之前的保护作用了。2、volatile 能使得一个非原子操作变成原子操作吗?一个典型的例子是在类中...

2020-03-20 10:26:13 6538

原创 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 428

原创 Java面试题基础(第一弹)

1、面向对象的特征有哪些方面?面向对象的特征主要有以下几个方面:抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继...

2020-03-19 17:47:14 726

转载 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 250

转载 Java后端学习路线(适合科班、非科班和已工作的仔)

前言今天看到一篇关于后端学习的硬核博文,感觉原博主说的很详细,涉及面很广,很适合正准备提升自己的小伙伴,故转载此文,与大家共勉,原作者用一个完整的电商系统作为切入点,带着大家看看,我们需要学些啥,原作者还收集配套视频和资料,绝对的呕心沥血之作,如需了解更多可以微信搜索「三太子敖丙」第一时间阅读,回复【路线】获取详细的后端学习资料。原文链接:https://juejin.im/post/5e...

2020-03-19 11:11:42 673

原创 @Autowired的使用:推荐对构造函数进行注释

最近在使用idea开发时经常看到右侧栏有黄色一堆堆的,好恶心,这些代表代码不符合规范,可能会出现问题,为了代码整洁和代码规范,则优化一把,重点记录下autowired注解优化。@autowired含义 spring 2.5引入了@autowired注释,@autowired注释可以对类成员变量、方法、构造函数进行标注,完成自动装配功能。@autowired查找bean首先是先通过byTy...

2020-01-06 11:05:33 1217

原创 如何解决WebSocket的兼容性

我们知道WebSocket是一种在服务器与客户端双向通讯的技术,使用原生的WebSocket可以最小化 服务器资源的使用并且为两者提供了一种统一的通信方式。随着HTML5的普及,现代浏览器(IE10+)基本上都已经原生支持WebSocket了,下面是支持WebSocket协议的浏览器:Internet Explorer 10 Firefox 6 Chrome 14 Safari 6.0...

2019-12-18 11:09:37 1503 1

原创 身份证号码的编码规则及校验

前言本文内容适用于二代身份证,如无特殊说明,本文中所说的身份证皆指二代身份证。笔者目前使用的jdk版本是1.6.0_29,Eclipse版本是Juno Release,Build id 20120614-1722。如无特殊说明,本文所有的Java代码都是基于此。本文包含大量数学公式和Java代码,手机端浏览体验较差,可在手机端浏览文字性内容,数学公式和Java代码在PC端浏览,同时建议...

2019-11-27 11:02:20 5511

原创 2019 Java常见面试题解析(二)

86. 如何实现跨域?实现跨域有以下励方案:• 服务器端运行跨域设置CORS等于*;• 在单个接口使用注解@CrossOrigin运行跨域;• 使用jsonp跨域;87. 说一下JSONP实现原理?jsonp:JSON with Padding,它是利用script标签的src连接可以访问不同源的特性,力口载 远程返回的“JS函数”来...

2019-11-18 11:11:13 725 2

原创 2019 Java常见面试题解析(一)

前言简述你所知道的Linux:Linux起源于1991年,1995年流行起来的免费操作系统,目前, Linux是主流的服务器操作系统, 广泛应用于互联网、云计算、智能手机(Android)等领域。由于Java主要用于服务器端的开发,因此Java应用的部署环境有很多为Linux。Windows操作系统的目录结构,是以盘符为单位,C盘、D盘、E盘等等,数据存储在各个盘符之下,而Linux操作系...

2019-11-18 11:11:01 6289 4

转载 RocketMQ相关流程图/原理图

前言整理了一些RocketMQ相关流程图/原理图,做一下笔记,大家一起学习。RocketMQ是什么是一个队列模型的消息中间件,具有高性能、高可靠、高实时、分布式特点。 Producer、Consumer、队列都可以分布式。 Producer 向一些队列轮流发送消息,队列集合称为 Topic,Consumer 如果做广播消费,则一个 consumer 实例消费这...

2019-11-18 11:10:16 849

转载 云原生时代,什么是蚂蚁金服推荐的金融架构?

蚂蚁金服在过去十五年重塑支付改变生活,为全球超过十二亿人提供服务,这些背后离不开技术的支撑。在 2019 杭州云栖大会上,蚂蚁金服将十五年来的技术沉淀,以及面向未来的金融技术创新和参会者分享。我们将其中的优秀演讲整理成文并将陆续发布在“金融级分布式架构”公众号上,本文为其中一篇。本文作者:杨延昭(杨冰),蚂蚁金服智能科技产品技术部总监互联网技术发展日新月异,我们正...

2019-10-21 13:47:40 356

原创 简单易懂的 SpringBoot 异步编程指南

通过本文你可以了解到下面这些知识点:Future 模式介绍以及核心思想 核心线程数、最大线程数的区别,队列容量代表什么; ThreadPoolTaskExecutor 饱和策略; SpringBoot 异步编程实战,搞懂代码的执行逻辑。Future 模式异步编程在处理耗时操作以及多任务处理的场景下非常有用,我们可以更好的让我们的系统利用好机器的 CPU 和 内存,提高它们的利用率。...

2019-10-21 12:03:04 180

原创 9102年了参数校验(validator)应该这么写

很痛苦遇到大量的参数进行校验,在业务中还要抛出异常或者 不断的返回异常时的校验信息,在代码中相当冗长, 充满了if-else这种校验代码,今天我们就来学习spring的javax.validation 注解式参数校验.为什么要用validator javax.validation的一系列注解可以帮我们完成参数校验,免去繁琐的串行校验 不然我们的代码就像下面这样: // ...

2019-10-12 16:27:21 183

原创 spring boot 配置文件配置项前缀为0的数字特殊处理

问题:spring boot yml配置文件中 ,配置前缀0的数字时,会被特殊处理,如下图配置001001 会当做八进制数处理成513解决方法:配置项两边加引号或单引号,这时会当做字符串处理源码类分析:ConstructYamlInt分析源码可知:1、以0b开头的数字,会被当做二进制数处理2、以0x开头的数字,会被当做十六进制数处理3、以0开头的数字,会被当做八...

2019-06-12 15:11:11 850 3

原创 Java 开发之 Lombok

我们可以初步认识一下 Lombok,一个作用于编辑器和构建工具的 Java 库,可以对编写的 Java 代码进行增强,比如说不用再写实体类的 getter 方法,equals 方法而是自动生成,自动生成日志输出变量等等,减少重复模板的代码。大概知道了 Lombok 框架提供的功能后,接下来我们就真正使用一下 Lombok 提供的注解,看它是如何帮助我们提高书写 Java 代码的简洁性和效率的。...

2019-06-10 11:54:46 228

转载 net.sf.json Maven依赖配置

最近由于公司要需要优化app界面展示,因此需要重新开发登录注册功能,以前的老项目没有使用maven,现在的新项目要用到maven,所以有时候在jar包上回碰到一些问题。刚好在开发QQ登录的时候碰到一个json的jar包问题,所以现在记录一下刚开始的时候,在maven仓库中查到的依赖是这样的: <dependency> <gro...

2019-06-03 11:45:38 444

原创 java生成json如何隐藏掉关键属性

今天在工作中遇到一个这样的问题,当后端返回数据时一些关键信息或敏感信息并不想返回到前端,但是又懒得定义专用的DTO返回怎么办(强烈不推荐,最好定义专用的DTO返回),比如一张用户表有属性有用户名、密码、昵称、头像、性别、个人简介,用@ResponseBody生成json直接用户名和密码都输出到前台展示了,用户名和密码这两个属性怎么隐藏掉。我们项目中使用的是Spring Boot,默认用...

2019-06-03 11:05:25 2661

转载 springboot:使用Jenkins部署Spring Boot

jenkins是devops神器,本篇文章介绍如何安装和使用jenkins部署Spring Boot项目jenkins搭建 部署分为三个步骤;第一步,jenkins安装 第二步,插件安装和配置 第三步,Push SSH 第四步,部署项目第一步 ,jenkins安装准备环境:JDK:1.8Jenkins:2.83Centos:7.3maven 3.5‘jdk...

2019-05-14 14:31:02 360

转载 Java多线程编程简明教程

Future模式Future模式5分钟教程Future模式用于的场景是,不急于马上就拿到结果的任务,可以放到后台先做着,然后主线程继续忙别的去。等主线程需要用后台任务的结果了,再去从Future去拿结果。如果Future任务已经做完了,当然皆大欢喜,马上使用结果,代码逻辑继续往下跑;如果还没做完,至少等待的时间比一直干等着强。总之,稳赚不赔,何乐而不为。如果这时候那个结果已经不重要了,取消...

2019-04-15 17:31:34 243

转载 Java 8 中的 Streams API 详解

为什么需要 StreamStream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合...

2019-04-15 16:37:08 198

转载 Java8-Lambda表达式

Lambda 表达式简介Lambda 表达式是一种匿名函数(对 Java 而言这并不完全正确,但现在姑且这么认为),简单地说,它是没有声明的方法,也即没有访问修饰符、返回值声明和名字。你可以将其想做一种速记,在你需要使用某个方法的地方写上它。当某个方法只使用一次,而且定义很简短,使用这种速记替代之尤其有效,这样,你就不必在类中费力写声明与方法了。Java 中的 Lambda 表达式...

2019-04-12 17:58:54 312

原创 java8 时间类LocalDateTime

1、创建根据年、月、日、时、分、秒、纳秒等创建LocalDateTimeeg:LocalTime zero = LocalTime.of(0, 0, 0); // 00:00:00LocalTime mid = LocalTime.parse("12:00:00"); // 12:00:00LocalTime now = LocalTime.now(); // 23:11:08.0...

2019-04-12 13:39:13 274

原创 银行卡号的编码规则及校验

银行卡号的编码规则银行卡号由最多19位数字组成。前6位数字被称为发行者识别号码(Issuer Identification Number,缩写为IIN),也称为发卡行识别码(Bank Identification Number,简称BIN),常说的卡BIN就是指它,由中国银联代国内各发卡机构统一向ISO申请。6位IIN的第一位,是主要行业标识符(Major industry identif...

2019-04-12 10:15:21 38623 7

原创 Spring Boot 中使用 RabbitMQ

RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。AMQP,即Advanced message Queuing Protocol,高级消息队列协议,是...

2019-02-27 10:12:55 239

JavaEE开发的颠覆者 Spring Boot实战 PDF

《JavaEE开发的颠覆者 Spring Boot实战》是国内市场上为数不多的讲解Spring Boot的中文书。本书从Spring 基础、Spring MVC 基础讲起,适合初学者。涵盖了使用Spring Boot 进行Java EE 开发的绝大数应用场景,如Web 开发、数据访问、安全控制、批处理、异步消息、系统集成、开发与部署、应用监控、分布式系统开发等。 全栈解决Java EE 开发中所遇到的绝大多数问题。 本书特点1本书每个章节的基本架构都是:点睛+实战。 点睛:用简练的语言去描述当前的技术; 实战:对当前技术进行实战意义的代码演示。 本书特点2技术相关,业务不相关。 在本书的实战例子中不会假设一个业务需求,然后让读者既要理解技术,又要理解假设的业务,本书的目标是让读者“学习时只关注技术,开发时只关注业务”。

2018-08-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除