摘要: 测试代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 5 阅读全文
posted @ 2020-05-11 15:04 YoungDeng 阅读(4154) 评论(0) 推荐(0)
摘要: 上篇讲了RPC服务端的实现。原理就是解析netty通道数据拿到类、方法及入参等信息,然后通过java反射机制调用本地接口返回结果。没有用到很复杂的技术。 这篇我们将客户端的实现。说白了客户端的任务很简单:一是建立socket长连接。二是封装发送服务端需要的数据包。三是处理返回结果。 demo地址 h 阅读全文
posted @ 2020-05-11 15:03 YoungDeng 阅读(1388) 评论(0) 推荐(0)
摘要: demo地址 https://gitee.com/syher/grave-netty RPC介绍 首先了解一下RPC:远程过程调用。简单点说就是本地应用可以调用远程服务器的接口。那么通过什么方式调用远程接口呢?说白了RPC只是一种概念。他的调用可以基于HTTP实现,也可以基于TCP/IP实现。甚至私 阅读全文
posted @ 2020-05-11 15:01 YoungDeng 阅读(849) 评论(0) 推荐(0)
摘要: demo地址 https://gitee.com/syher/grave-netty RPC介绍 首先了解一下RPC:远程过程调用。简单点说就是本地应用可以调用远程服务器的接口。那么通过什么方式调用远程接口呢?说白了RPC只是一种概念。他的调用可以基于HTTP实现,也可以基于TCP/IP实现。甚至私 阅读全文
posted @ 2020-05-11 15:01 YoungDeng 阅读(940) 评论(0) 推荐(0)
摘要: 目录1. 反射机制的概念2. 反射的基础Class类3. 反射的用法4. 反射的应用示例 作者简介:全栈学习笔记,一个正在努力的人 反射机制的概念: 在运行状态中,对于任意一个类,都能够获取到这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性(包括私有的方法和属性),这种动态 阅读全文
posted @ 2020-05-11 14:59 YoungDeng 阅读(257) 评论(0) 推荐(0)
摘要: 目录: 一、SMTP协议简介 二、开启SMTP服务并获取授权码 三、依赖导入与配置说明 四、邮件发送 1.简单邮件发送 2. 带附件内容和正文带图片的邮件发送 3. thymeleaf模板作为邮件发送 五、总结 一、SMTP协议简介 SMTP是一种提供可靠且有效的电子邮件传输的协议。SMTP是建立在 阅读全文
posted @ 2020-05-11 14:56 YoungDeng 阅读(2825) 评论(0) 推荐(0)
摘要: 本文目录 一、SpringBoot中的日志 二、自定义日志常用配置 1. 日志输出级别 2. 日志输出到文件 3. 自定义日志输出格式 三、xml文件实现日志配置的方式 四、AOP + 自定义注解实现统一日志处理 五、总结 一、SpringBoot中的日志 在我们运行项目的时候,你会发现控制台是有日 阅读全文
posted @ 2020-05-11 14:54 YoungDeng 阅读(1900) 评论(0) 推荐(0)
摘要: 目录 1. 过滤器简介 2. 过滤器配置的两种方法 3. 测试编写与结果 4. 总结 1. 过滤器简介 1. 过滤器是什么? Filter也称之为过滤器,过滤器是对数据进行过滤,预处理。开发人员可以对客户端提交的数据进行过滤处理,比如敏感词,也可以对服务端返回的数据进行处理。还有就是可以验证用户的登 阅读全文
posted @ 2020-05-11 14:53 YoungDeng 阅读(4075) 评论(0) 推荐(0)
摘要: 目录 1. 拦截器介绍 2.自定义拦截器 3.拦截器注入适配器 4.controller测试 5. 测试 6. 扩展内容:拦截器链 7. 总结 1. 拦截器介绍 拦截器是在servlet执行之前执行的程序(这里就是controller代码执行之前),它主要是用于拦截用户请求并作相应的处理,比如说可以 阅读全文
posted @ 2020-05-11 14:52 YoungDeng 阅读(1472) 评论(0) 推荐(0)
摘要: SpringBoot系列(十)统一异常处理与统一结果返回 往期推荐 SpringBoot系列(一)idea新建Springboot项目 SpringBoot系列(二)入门知识 springBoot系列(三)配置文件详解 SpringBoot系列(四)web静态资源配置详解 SpringBoot系列( 阅读全文
posted @ 2020-05-11 14:50 YoungDeng 阅读(1821) 评论(0) 推荐(0)
摘要: SpringBoot系列(九)分分钟解决文件上传 往期推荐SpringBoot系列(一)idea新建Springboot项目 SpringBoot系列(二)入门知识 springBoot系列(三)配置文件详解 SpringBoot系列(四)web静态资源配置详解 SpringBoot系列(五)Myb 阅读全文
posted @ 2020-05-11 14:48 YoungDeng 阅读(485) 评论(0) 推荐(0)
摘要: SpringBoot系列(八) 分分钟学会SpringBoot多种跨域解决方式 往期推荐SpringBoot系列(一)idea新建Springboot项目 SpringBoot系列(二)入门知识 springBoot系列(三)配置文件详解 SpringBoot系列(四)web静态资源配置详解 Spr 阅读全文
posted @ 2020-05-11 14:46 YoungDeng 阅读(425) 评论(0) 推荐(0)
摘要: Springboot 配置接口文档swagger 往期推荐 SpringBoot系列(一)idea新建Springboot项目 SpringBoot系列(二)入门知识 springBoot系列(三)配置文件详解 SpringBoot系列(四)web静态资源配置详解 SpringBoot系列(五)My 阅读全文
posted @ 2020-05-11 14:45 YoungDeng 阅读(737) 评论(0) 推荐(0)
摘要: 1. thymeleaf简介 1. Thymeleaf是适用于Web和独立环境的现代服务器端Java模板引擎。 2. Thymeleaf的主要目标是为您的开发工作流程带来优雅的自然模板 -HTML可以在浏览器中正确显示,也可以作为静态原型工作,从而可以在开发团队中加强协作。 3. Thymeleaf 阅读全文
posted @ 2020-05-11 14:43 YoungDeng 阅读(791) 评论(0) 推荐(0)
摘要: SpringBoot系列(五)Mybatis整合 1. Mybatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生 阅读全文
posted @ 2020-05-11 14:42 YoungDeng 阅读(204) 评论(0) 推荐(0)
摘要: Springboot系列(四)web静态资源配置 往期精彩 SpringBoot系列(一)idea新建Springboot项目 SpringBoot系列(二)入门知识 SpringBoot系列(三)配置文件详解完整版 引言:SpringBoot web项目开发中往往会涉及到一些静态资源的使用,比如说 阅读全文
posted @ 2020-05-11 14:41 YoungDeng 阅读(1313) 评论(0) 推荐(0)
摘要: 目录 properties 文件 1.语法 2.优先级 3.自定义数据配置 4.获取自定义数据配置 1.通过prefix获取 yml文件 1.语法 2.优先级 3.自定义数据配置。 4.获取自定义数据配置 1.通过prefix 2.通过@value注解获取 引言:Springboot有一个全局配置文 阅读全文
posted @ 2020-05-11 14:40 YoungDeng 阅读(1108) 评论(0) 推荐(0)
摘要: SpringBoot系列(二)入门知识 往期推荐 SpringBoot系列(一)idea新建springboot项目 引言 本来新建springboot项目应该放在入门知识这一章的,但是由于新建springboot的第一篇文章只介绍了一种新建项目的方法,所以在这一章讲解一下springboot的基本 阅读全文
posted @ 2020-05-11 14:39 YoungDeng 阅读(174) 评论(0) 推荐(0)
摘要: 不多说废话,直接进入正题,按照下面的步骤创建一个springboot项目一般不会出错,当然不排除可能会有一些脸黑的,不过应该问题不大。 第一步,如果你是在已有的项目里面,新建一个springboot项目 如果你们是在idea打开后没有项目打开创建项目,那就比较简单了,当然你也可以这样回退到选择打开项 阅读全文
posted @ 2020-05-11 14:37 YoungDeng 阅读(1544) 评论(0) 推荐(0)
摘要: CAS底层原理 概念 CAS的全称是Compare-And-Swap,它是CPU并发原语 它的功能是判断内存某个位置的值是否为预期值,如果是则更改为新的值,这个过程是原子的 CAS并发原语体现在Java语言中就是sun.misc.Unsafe类的各个方法。调用UnSafe类中的CAS方法,JVM会帮 阅读全文
posted @ 2020-05-11 14:35 YoungDeng 阅读(3893) 评论(1) 推荐(2)
摘要: @ 目录 提出一个需求 解决方案: 使用SpringSecurity进行解决 SpringSecurity和SpringBoot结合 1. 首先在pom.xml中引入依赖: 2. 配置用户角色和接口的权限关系 3. 配置用户名和密码 4.进行测试 总结: 本教程是基于SpringMVC而创建的,不适 阅读全文
posted @ 2020-05-11 14:32 YoungDeng 阅读(3219) 评论(0) 推荐(3)
摘要: 一、错误处理原理分析 使用SpringBoot创建的web项目中,当我们请求的页面不存在(http状态码为404),或者器发生异常(http状态码一般为500)时,SpringBoot就会给我们返回错误信息。 也就是说,在SpringBoot的web项目中,会自动创建一个/error的错误接口,来返 阅读全文
posted @ 2020-05-11 14:30 YoungDeng 阅读(5510) 评论(0) 推荐(0)
摘要: 有些人认为,写单元测试就是在浪费时间 ,写完代码,依然还是能够进行测试的。但是,还是建议写单元测试的,可以让你的条理更加清晰,而且当某个功能出现问题时,可能通过单元测试很容易的定位和解决问题。本文主要总结下在Spring及SpringBoot项目中,使用单元测试时的方法。将JUnit4和JUnit5 阅读全文
posted @ 2020-05-11 14:28 YoungDeng 阅读(3410) 评论(0) 推荐(0)
摘要: RPC远程过程调用可以说是分布式系统的基础,本文将通过Java演示一次普通的rpc调用到底发生了什么。 我曾经在网上看到有人提问,为什么RPC要叫作远程过程调用,而不叫作RMC远程方法调用。个人认为RPC的叫法才是合理的,远程调用的是某个过程,不一定是一个具体的方法,你只要看过第一个版本的代码就能懂 阅读全文
posted @ 2020-05-11 14:26 YoungDeng 阅读(1154) 评论(0) 推荐(0)
摘要: 一般我们对缓存读操作的时候有这么一个固定的套路: 如果我们的数据在缓存里边有,那么就直接取缓存的。 如果缓存里没有我们想要的数据,我们会先去查询数据库,然后将数据库查出来的数据写到缓存中。 最后将数据返回给请求 代码例子: 1 @Override 2 public R selectOrderById 阅读全文
posted @ 2020-05-11 14:25 YoungDeng 阅读(706) 评论(0) 推荐(0)
摘要: 本章节使用spring-security-custom-login 1|0一、工程准备 1|11、pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xml 阅读全文
posted @ 2020-05-11 14:24 YoungDeng 阅读(270) 评论(0) 推荐(0)
摘要: 上一篇我们简单的分析了一下认证流程,通过程序的启动加载了各类的配置信息。接下来我们一起来看一下授权流程,争取完成和前面简单的web基于sessin的认证方式一致。由于在授权过程中,我们预先会给用于设置角色,关于如果加载配置的角色信息这里就不做介绍了,上一篇的加载过程中我们可以发现相关的信息。 本篇依 阅读全文
posted @ 2020-05-11 14:21 YoungDeng 阅读(3717) 评论(0) 推荐(0)
摘要: 上面我们一起开始了Spring Security的初体验,并通过简单的配置甚至零配置就可以完成一个简单的认证流程。可能我们都有很大的疑惑,这中间到底发生了什么,为什么简单的配置就可以完成一个认证流程啊,可我啥都没看见,没有写页面,没有写接口。这一篇我们将深入到源码层面一起来了解一下spring se 阅读全文
posted @ 2020-05-11 14:19 YoungDeng 阅读(1137) 评论(0) 推荐(0)
摘要: 本篇将开始Spring Security的学习,将从最简单的搭建工程到自定义配置改造的方式完成一系列的教程。所有的代码将集中在一个工程中,通过不同的module的方式区分每一个篇章,重点突出每个module的特点,关注一个方面的功能或者配置 1|0什么是Spring Security 上面介绍的: 阅读全文
posted @ 2020-05-11 14:18 YoungDeng 阅读(388) 评论(1) 推荐(1)
摘要: 这一篇将通过一个简单的web项目实现基于Session的认证授权方式,也是以往传统项目的做法。先来复习一下流程 用户认证通过以后,在服务端生成用户相关的数据保存在当前会话(Session)中,发给客户端的数据将通过session_id存放在cookie中。在后续的请求操作中,客户端将带上sessio 阅读全文
posted @ 2020-05-11 14:16 YoungDeng 阅读(305) 评论(0) 推荐(0)
摘要: 在互联网中我们一致都有提到或接触到关于认证和授权概念或名字,那到底什么是认证?什么是授权?他们两又有什么联系和区别呢?本系列将记录自己近一段时间学习和实践的过程,以便加深理解过程。 我们先来一起认识两个单词authentication和 authorization,有没有发现什么特点,我第一次接触到 阅读全文
posted @ 2020-05-11 14:13 YoungDeng 阅读(742) 评论(0) 推荐(0)
摘要: 前言 刚开始接触Elasticsearch的时候被Elasticsearch的搜索功能搞得晕头转向,每次想在Kibana里面查询某个字段的时候,查出来的结果经常不是自己想要的,然而又不知道问题出在了哪里。出现这个问题归根结底是因为对于Elasticsearch的底层索引原理以及各个查询搜索方式的不了 阅读全文
posted @ 2020-05-11 14:12 YoungDeng 阅读(4279) 评论(0) 推荐(1)
摘要: 前言 相比于大多数人熟悉的MySQL数据库的索引,Elasticsearch的索引机制是完全不同于MySQL的B+Tree结构。索引会被压缩放入内存用于加速搜索过程,这一点在效率上是完爆MySQL数据库的。但是Elasticsearch会对全部text字段进行索引,必然会消耗巨大的内存,为此Elas 阅读全文
posted @ 2020-05-11 14:09 YoungDeng 阅读(970) 评论(0) 推荐(0)
摘要: 前言 Elasticsearch诞生的本意是为了解决文本搜索太慢的问题,ES会默认将所有的输入内容当作字符串来理解,对于字段类型是keyword或者text的数据比较友好。但是如果输入的类型是数字,ES还会把数字当作字符串吗?排序问题还有范围查询问题怎么解决呢?这篇文章就简单介绍了ES对于数字类型( 阅读全文
posted @ 2020-05-11 14:08 YoungDeng 阅读(7873) 评论(0) 推荐(0)
摘要: 官网的说法 我们先来认真看一下官网的说法。翻译过来大意如下:CPU并不是您使用Redis的瓶颈,因为通常Redis要么受内存限制,要么受网络限制。例如,使用在一般Linux系统上运行的流水线Redis每秒可以发送一百万个请求,因此,如果您的应用程序主要使用O(N)或O(log(N))命令,则几乎不会 阅读全文
posted @ 2020-05-11 14:07 YoungDeng 阅读(1703) 评论(0) 推荐(0)
摘要: 上一篇我们简单的分析了一下认证流程,通过程序的启动加载了各类的配置信息。接下来我们一起来看一下授权流程,争取完成和前面简单的web基于sessin的认证方式一致。由于在授权过程中,我们预先会给用于设置角色,关于如果加载配置的角色信息这里就不做介绍了,上一篇的加载过程中我们可以发现相关的信息。 本篇依 阅读全文
posted @ 2020-05-11 14:05 YoungDeng 阅读(810) 评论(0) 推荐(0)
摘要: 我得意地来到老板的办公室:“报告老板,高可用神器已祭出,您花巨资营销的高流量什么时候到?”老板呵呵一声:“高流量下周一来报道,你可以准备下和他做工作交接了”窗户外一阵冷风吹过,接下来是不是会发生点什么。 @ 目录 一、从阿里双11的高并发高流量开始 二、核心功能及原理说明 2.1 模块说明 2.2 阅读全文
posted @ 2020-05-11 14:04 YoungDeng 阅读(192) 评论(0) 推荐(0)
摘要: 使用springboot+dubbo搭建RPC入门案例 本文背景简述:最近在学习公司的一套RPC框架,初步接触的时候感觉挺复杂的。但是知道其原理肯定是和dubbo很相似的,毕竟都是RPC框架嘛,只是各自使用的范围和使用者群体有些不同罢了。于是就去dubbo官网熟悉了其相关文档和案例教程,然后结合网上 阅读全文
posted @ 2020-05-11 14:03 YoungDeng 阅读(1092) 评论(0) 推荐(0)
摘要: 有不少朋友或同事都问过我这个问题:为什么我们要搞微服务架构,一个项目把代码从头撸到尾不是很方便吗,开发更快速,部署也容易。而且一提起微服务,涉及的技术就一大堆,好像几辈子也学不完。 怎么解答这个问题呢?我想还是通过架构的发展变迁史来说起,为什么会出现现在的各种架构。只有从整体上了解了架构的脉络,我们 阅读全文
posted @ 2020-05-11 14:00 YoungDeng 阅读(798) 评论(1) 推荐(2)
摘要: 1 简介 不知不觉Https相关的文章已经写了6篇了,本文将是这个专题的最后一篇,起码近期是最后一篇。前面6篇讲的全都是单向的Https验证,本文将重点介绍一下双向验证。有兴趣的同学可以了解一下之前的文章: (0)Https专题 (1)Springboot整合https原来这么简单 (2)HTTPS 阅读全文
posted @ 2020-05-11 13:58 YoungDeng 阅读(3279) 评论(1) 推荐(1)
摘要: 1 简介 Spring WebFlux是一个新兴的技术,Spring团队把宝都压在响应式Reactive上了,于是推出了全新的Web实现。本文不讨论响应式编程,而是通过实例讲解Springboot WebFlux如何把http重定向到https。 作为餐前小吃,建议大家先吃以下https小菜,以帮助 阅读全文
posted @ 2020-05-11 13:56 YoungDeng 阅读(1600) 评论(0) 推荐(0)
摘要: 1 简介 Nginx是一个非常强大和流行的高性能Web服务器。本文讲解Nginx如何整合https并将http重定向到https。 https相关文章如下: (1)Springboot整合https原来这么简单 (2)HTTPS之密钥知识与密钥工具Keytool和Keystore-Explorer 阅读全文
posted @ 2020-05-11 13:54 YoungDeng 阅读(3178) 评论(0) 推荐(0)
摘要: 1 简介 之前讲过如何通过Docker安装Redis,也讲了Springboot以Repository方式整合Redis,建议阅读后再看本文效果更佳: (1) Docker安装Redis并介绍漂亮的可视化客户端进行操作 (2) 实例讲解Springboot以Repository方式整合Redis 本 阅读全文
posted @ 2020-05-11 13:53 YoungDeng 阅读(841) 评论(0) 推荐(0)
摘要: 1 简介 HTTP是不安全的,我们需要给它套上SSL,让它变成HTTPS。本文章将用实例介绍Springboot整合HTTPS。 2 密码学基础 要谈https就要谈Security,自然就要谈安全;谈及安全,就必然涉及密码学的一些知识。 2.1 密码体制 要建立一个密码体制,需要由五个空间组成,分 阅读全文
posted @ 2020-05-11 13:51 YoungDeng 阅读(720) 评论(0) 推荐(0)
摘要: 1 简介 之前文章《Springboot整合https原来这么简单》讲解过一些基础的密码学知识和Springboot整合HTTPS。本文将更深入讲解密钥知识和密钥工具。 2 密钥知识-非对称加密 这部分知识非常重要,理解了关键的密钥知识,才能更好地在工作中去使用。需要注意的是,讲的主要是非对称加密的 阅读全文
posted @ 2020-05-11 13:50 YoungDeng 阅读(994) 评论(0) 推荐(0)
摘要: 1 简介 本文将介绍在Springboot中如何通过代码实现Http到Https的重定向,本文仅讲解Tomcat作为容器的情况,其它容器将在以后一一道来。 建议阅读之前的相关文章: (1) Springboot整合https原来这么简单 (2)HTTPS之密钥知识与密钥工具Keytool和Keyst 阅读全文
posted @ 2020-05-11 13:48 YoungDeng 阅读(681) 评论(0) 推荐(0)
摘要: 1 简介 之前讲解的Springboot整合https用的是tomcat作为容器,tomcat也是一个流行多年的老牌Java容器了。但针对不同的场景,还是会有不同的选择,如Jetty。Jetty是架构相对简单、基于Handler的灵活可扩展的Servlet容器。更多详情请参考官方文档。 另外建议阅读 阅读全文
posted @ 2020-05-11 13:47 YoungDeng 阅读(642) 评论(0) 推荐(0)
摘要: 目录 1. 简介 2. 集成Swagger2 2.1 导入Swagger库 2.2 配置Swagger基本信息 2.3 使用Swagger注解 2.4 文档效果图 3. 常用注解介绍 4. Swagger2文档导出成pdf 4.1 生成pdf的格式 4.2 生成静态文档步骤 4.2.1 配置grad 阅读全文
posted @ 2020-05-11 13:46 YoungDeng 阅读(2150) 评论(0) 推荐(0)
摘要: 本案例主要讲解Redis实现分布式锁的两种实现方式:Jedis实现、Redisson实现。网上关于这方面讲解太多了,Van自认为文笔没他们好,还是用示例代码说明。 一、jedis 实现 该方案只考虑Redis单机部署的场景 1.1 加锁 1.1.1 原理 jedis.set(String key, 阅读全文
posted @ 2020-05-11 13:44 YoungDeng 阅读(901) 评论(0) 推荐(1)
摘要: 现在几乎大部分的App都支持使用多个第三方账号进行登录,如:微信、QQ、微博等,我们把此称为多账号统一登陆。而这些账号的表设计,流程设计至关重要,不然后续扩展性贼差。本文不提供任何代码实操,但是梳理一下博主根据我司账号模块的设计,提供思路,仅供参考。 一、 自建的登陆体系 1.1 手机号登陆注册 该 阅读全文
posted @ 2020-05-11 13:36 YoungDeng 阅读(639) 评论(0) 推荐(0)
摘要: 一、背景 文章浏览量统计,low的做法是:用户每次浏览,前端会发送一个GET请求获取一篇文章详情时,会把这篇文章的浏览量+1,存进数据库里。 1.1 这么做,有几个问题: 在GET请求的业务逻辑里进行了数据的写操作! 并发高的话,数据库压力太大; 同时,如果文章做了缓存和搜索引擎如ElasticSe 阅读全文
posted @ 2020-05-11 13:27 YoungDeng 阅读(935) 评论(0) 推荐(0)
摘要: 说起应用分层,大部分人都会认为这个不是很简单嘛 就Controller,Service, Mapper三层。看起来简单,很多人其实并没有把他们职责划分开,在很多代码中,Controller做的逻辑比Service还多,Service往往当成透传了,这其实是很多人开发代码都没有注意到的地方,反正功能也 阅读全文
posted @ 2020-05-11 13:25 YoungDeng 阅读(431) 评论(0) 推荐(0)
摘要: 一、跨域背景 1.1 何为跨域? Url的一般格式: 协议 + 域名(子域名 + 主域名) + 端口号 + 资源地址 示例: https://www.dustyblog.cn:8080/say/Hello 是由 https + www + dustyblog.cn + 8080 + say/Hell 阅读全文
posted @ 2020-05-11 13:23 YoungDeng 阅读(1694) 评论(0) 推荐(0)
摘要: SpringBoot 配置 AOP 打印日志 在项目开发中,日志系统是必不可少的,用AOP在Web的请求做入参和出参的参数打印,同时对异常进行日志打印,避免重复的手写日志,完整案例见文末源码。 一、Spring AOP AOP(Aspect-Oriented Programming,面向切面编程), 阅读全文
posted @ 2020-05-11 13:21 YoungDeng 阅读(2407) 评论(0) 推荐(0)
摘要: 一、介绍 1.1 Logback Logback是由log4j创始人设计的另一个开源日志组件,它分为下面下个模块: logback-core:其它两个模块的基础模块 logback-classic:它是log4j的一个改良版本,同时它完整实现了slf4j API使你可以很方便地更换成其它日志系统如l 阅读全文
posted @ 2020-05-11 13:20 YoungDeng 阅读(1545) 评论(0) 推荐(0)
摘要: 一、定时任务实现的几种方式: Timer 这是java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少。 ScheduledExecutorService 也jdk 阅读全文
posted @ 2020-05-11 13:18 YoungDeng 阅读(2850) 评论(0) 推荐(0)
摘要: Spring Boot: 配置文件详解 SpringBoot是为了简化Spring应用的创建、运行、调试、部署等一系列问题而诞生的产物,自动装配的特性让我们可以更好的关注业务本身而不是外部的XML配置,我们只需遵循规范,引入相关的依赖就可以轻易的搭建出一个 WEB 工程。 一、准备前提 为了让Spr 阅读全文
posted @ 2020-05-11 13:17 YoungDeng 阅读(487) 评论(0) 推荐(0)
摘要: 背景 Jwt全称是:json web token。它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证token的正确性,只要正确即通过验证。 优点 简洁: 可以通过URL、POST参数或者在HTTP header发送,因为数据量小,传输速度也很快; 自包含:负载中 阅读全文
posted @ 2020-05-11 13:15 YoungDeng 阅读(5092) 评论(0) 推荐(1)
摘要: Apache Dubbo是一款高性能、轻量级的开源 Java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。 注意,是 Apache Dubbo,不再是 Alibaba Dubbo。简单来说就是 Alibaba 将 Dubbo 移交给 Apa 阅读全文
posted @ 2020-05-11 13:13 YoungDeng 阅读(758) 评论(0) 推荐(0)
摘要: 上文我们介绍了IOC和DI,IOC是一种设计模式,DI是它的具体实现,有很多的框架都有这样的实现,本文主要以spring框架的实现,来看具体的注入实现逻辑。 spring是如何将对象加入容器的 spring将对象加入容器的方式有很多种,最主要的是xml和注解的形式,而当下注解的形式应用更加的广泛,所 阅读全文
posted @ 2020-05-11 13:11 YoungDeng 阅读(693) 评论(0) 推荐(0)
摘要: 上篇文章Spring IOC的核心机制:实例化与注入我们提到在有多个实现类的情况下,spring是如何选择特定的bean将其注入到代码片段中,我们讨论了按照名称注入和使用@Qualifier 注解输入的两种方式,本篇文章将结合之前提到的和spring的其他注入方式一起进行讨论。 本文主题 我们将讨论 阅读全文
posted @ 2020-05-11 13:07 YoungDeng 阅读(1924) 评论(1) 推荐(0)
摘要: java异常介绍 异常时相对于return的一种退出机制,可以由系统触发,也可由程序通过throw语句触发,异常可以通过try/catch语句进行捕获并处理,如果没有捕获,则会导致程序退出并输出异常栈信息,异常有不同的类型,所有异常类都有一个共同的父类Throwable,下面我们先从Throwabl 阅读全文
posted @ 2020-05-11 13:06 YoungDeng 阅读(4340) 评论(0) 推荐(0)
摘要: 上文测试开发专题:spring-boot统一异常捕获我们讨论了java异常以及如何使用Spring-Boot捕获异常,但是没有去说捕获异常后该如何进一步处理,这篇文章我们将对这个遗留的问题进行讨论. 统一错误响应定义 我们希望在程序发生异常的时候,能够给用户返回一个比较友好且明确的信息,对于api接 阅读全文
posted @ 2020-05-11 13:05 YoungDeng 阅读(5293) 评论(0) 推荐(1)
摘要: 一、常用的消息模式 我们在工作的使用中,经常会遇到多个消费者监听同一个队列的情况,模型如下图所示:当有多个消费者时,我们的消息会被哪个消费者消费呢,我们又该如何均衡消费者消费信息的多少呢;主要有两种模式:1、轮询模式的分发:一个消费者一条,按均分配;2、公平分发:根据消费者的消费能力进行公平分发,处 阅读全文
posted @ 2020-05-11 11:09 YoungDeng 阅读(4515) 评论(0) 推荐(0)
摘要: 一、RabbitMQ的简介和安装 1.1 RabbitMQ的安装 到官网下载最新的安装包,和Erlang的安装包,我的安装包如下图先安装Erlang,再安装RabbitMQ,一直点击下一步就可以了。安装完成之后,我们需要启用管理功能,找到安装位置,进入到sbin文件夹,执行下列命令rabbitmq- 阅读全文
posted @ 2020-05-11 11:08 YoungDeng 阅读(298) 评论(0) 推荐(0)
摘要: 某日,胖滚猪写的代码导致了一个生产bug,奋战到凌晨三点依旧没有解决问题。胖滚熊一看,只用了一个volatile就解决了。并告知胖滚猪,这是并发编程导致的坑。这让胖滚猪坚定了要学好并发编程的决心。。于是,开始了我们并发编程的第一课。 序幕 BUG源头之一:可见性 刚刚我们说到,CPU缓存可以提高程序 阅读全文
posted @ 2020-05-11 11:01 YoungDeng 阅读(203) 评论(0) 推荐(0)
摘要: 上一节【漫画】JAVA并发编程三大Bug源头(可见性、原子性、有序性)我们聊了聊并发编程的三个bug源头,这还没开始进入并发世界,胖滚猪就遇到了难题。。 这个难题是所有初学者都会有的疑惑:没法复现那些理论知识告诉我们的bug。但是实际操练很重要,那么在本地开发环境,到底应该怎样模拟并发呢? 模拟并发 阅读全文
posted @ 2020-05-11 11:00 YoungDeng 阅读(260) 评论(0) 推荐(0)
摘要: pre_tags 前缀标签 post_tags 后缀标签 tags_schema 设置为styled可以使用内置高亮样式 require_field_match 多字段高亮需要设置为false 使用highlight为查询结果增加高亮效果 Copy { "query": { "bool": { "m 阅读全文
posted @ 2020-05-11 10:54 YoungDeng 阅读(1712) 评论(1) 推荐(0)
摘要: 💛原文地址为https://www.cnblogs.com/haixiang/p/12095578.html,转载请注明出处!🍎es与SpringBoot的整合以及常用CRUD、搜索API已被作者封装,开箱即用效果很好,欢迎star谢谢!github 查询简介# 叶子查询子句叶子查询子句在特定字 阅读全文
posted @ 2020-05-11 10:53 YoungDeng 阅读(3480) 评论(0) 推荐(0)
摘要: 💛原文地址为https://www.cnblogs.com/haixiang/p/12040272.html,转载请注明出处!🍎es与SpringBoot的整合以及常用CRUD、搜索API已被作者封装,开箱即用效果很好,欢迎star谢谢!github Mapping简介# mapping 是用来 阅读全文
posted @ 2020-05-11 10:52 YoungDeng 阅读(3716) 评论(0) 推荐(0)
摘要: IK分词器的使用# 首先我们通过Postman发送GET请求查询分词效果 Copy GET http://localhost:9200/_analyze { "text":"农业银行" } 得到如下结果,可以发现es的默认分词器无法识别中文中农业、银行这样的词汇,而是简单的将每个字拆完分为一个词,这 阅读全文
posted @ 2020-05-11 10:51 YoungDeng 阅读(1019) 评论(0) 推荐(0)
摘要: 目录 1. 基本概念 1.1 Node 与 Cluster 1.2 Index 1.3 Document 1.4 Type(将在ES6.0移除) 2. 数据的增删改查 2.1 添加数据 2.2 查询数据 2.3 更新数据 2.4 删除数据 本文所有命令均在 Kibana 的 dev tools 上进 阅读全文
posted @ 2020-05-11 10:49 YoungDeng 阅读(290) 评论(0) 推荐(0)
摘要: 目录 [TOC] 环境介绍 安装过程 安装Kibana # 环境介绍# 软件版本:ElasticSearch7.0.0 Kibana7.0.0 系统环境:mac 环境 安装过程# 官网下载 ElasticSearch7.0.0 版本,下载后解压即可 进入es安装目录 Copy cd elastics 阅读全文
posted @ 2020-05-11 10:47 YoungDeng 阅读(1009) 评论(0) 推荐(0)
摘要: 目录 [TOC] 1. 定义 2. 与 Lucene 的关系 3. 优点 4. 缺点 5. 解决的问题 6. 应用场景 7. 倒排索引(摘自Elasticsearch权威指南) # 1. 定义# Elasticsearch 是一个高度可扩展的开源全文搜索和分析引擎。它允许您快速,近实时地存储,搜索和 阅读全文
posted @ 2020-05-11 10:46 YoungDeng 阅读(334) 评论(0) 推荐(0)
摘要: 💛es搜索系统封装源码,走过路过,请帮我点个star哦!💛原文地址为https://www.cnblogs.com/haixiang/p/12451703.html,转载请注明出处! 什么是elasticsearch# Elasticsearch 是一个开源的高度可扩展的全文搜索和分析引擎,拥有 阅读全文
posted @ 2020-05-11 10:45 YoungDeng 阅读(1563) 评论(0) 推荐(0)
摘要: 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。 此时,用于简化增删改查工作量的 数据访问框架(ORM 阅读全文
posted @ 2020-05-11 10:39 YoungDeng 阅读(410) 评论(0) 推荐(0)
摘要: Ribbon 是一个基于 HTTP 和 TCP 的 客服端负载均衡工具,它是基于 Netflix Ribbon 实现的。 它不像 Spring Cloud 服务注册中心、配置中心、API 网关那样独立部署,但是它几乎存在于每个 Spring Cloud 微服务中。包括 Feign 提供的声明式服务调 阅读全文
posted @ 2020-05-11 10:35 YoungDeng 阅读(280) 评论(0) 推荐(0)
摘要: 本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Feign 声明式服务调用(一) 本篇文章讲解 Feign 性能优化的问题,Gzip压缩、HTTP连接池、请求超时等。 1|0Feign 性能优化 1|1Gzip 压缩 gzip 介绍:gzip 是一种数据格式,采用 阅读全文
posted @ 2020-05-11 10:34 YoungDeng 阅读(264) 评论(0) 推荐(0)
摘要: Feign 是 Spring Cloud Netflix 组件中的一个轻量级 RESTful 的 HTTP 服务客户端,实现了负载均衡和 Rest 调用的开源框架,封装了 Ribbon 和 RestTemplate,实现了 WebService 的面向接口编程,进一步降低了项目的耦合度。 Feign 阅读全文
posted @ 2020-05-11 10:33 YoungDeng 阅读(163) 评论(0) 推荐(0)
摘要: 服务注册中心是服务实现服务化管理的核心组件,类似于目录服务的作用,主要用来存储服务信息,譬如提供者 url 串、路由信息等。服务注册中心是微服务架构中最基础的设施之一。 在微服务架构流行之前,注册中心就已经开始出现在分布式架构的系统中。比如 Dubbo 是一个在国内比较流行的分布式框架,被大量的中小 阅读全文
posted @ 2020-05-11 10:28 YoungDeng 阅读(176) 评论(0) 推荐(0)
摘要: 本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Netflix Eureka 注册中心(一) 本篇文章讲解 Eureka 集群、架构原理、自我保护、优雅停服、安全认证等功能实现。 1|0高可用 Eureka 注册中心 点击链接观看:高可用 Eureka 注册中心视频 阅读全文
posted @ 2020-05-11 10:26 YoungDeng 阅读(175) 评论(0) 推荐(0)
摘要: 本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Consul 注册中心(一) 本篇文章讲解 Consul 集群环境的搭建。 1|0Consul 集群 点击链接观看:Consul 集群视频(获取更多请关注公众号「哈喽沃德先生」) 上图是一个简单的 Consul Clu 阅读全文
posted @ 2020-05-11 10:25 YoungDeng 阅读(151) 评论(0) 推荐(0)
摘要: Netflix Eureka 2.X https://github.com/Netflix/eureka/wiki 官方宣告停止开发,但其实对国内的用户影响甚小,一方面国内大都使用的是 Eureka 1.X 系列,并且官方也在积极维护 1.X https://github.com/Netflix/e 阅读全文
posted @ 2020-05-11 10:23 YoungDeng 阅读(235) 评论(0) 推荐(0)
摘要: 1|0什么是 Zuul Zuul 是从设备和网站到应用程序后端的所有请求的前门。作为边缘服务应用程序,Zuul 旨在实现动态路由,监视,弹性和安全性。Zuul 包含了对请求的路由和过滤两个最主要的功能。 Zuul 是 Netflix 开源的微服务网关,它可以和 Eureka、Ribbon、Hystr 阅读全文
posted @ 2020-05-11 10:20 YoungDeng 阅读(163) 评论(0) 推荐(0)
摘要: 本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Netflix Zuul 服务网关(一) 本篇文章讲解 Zuul 网关过滤器实现统一鉴权以及网关过滤器异常统一处理。 1|0网关过滤器 点击链接观看:网关过滤器视频(获取更多请关注公众号「哈喽沃德先生」) Zuul 包 阅读全文
posted @ 2020-05-11 10:19 YoungDeng 阅读(246) 评论(0) 推荐(0)
摘要: 本篇文章为系列文章,未读前几集的同学请猛戳这里: Spring Cloud 系列之 Netflix Zuul 服务网关(一) Spring Cloud 系列之 Netflix Zuul 服务网关(二) 本篇文章讲解 Zuul 和 Hystrix 的无缝结合,实现网关监控、网关熔断、网关限流、网关调优 阅读全文
posted @ 2020-05-11 10:18 YoungDeng 阅读(397) 评论(0) 推荐(0)
摘要: 本篇文章为系列文章,未读前几集的同学请猛戳这里: Spring Cloud 系列之 Netflix Zuul 服务网关(一) Spring Cloud 系列之 Netflix Zuul 服务网关(二) Spring Cloud 系列之 Netflix Zuul 服务网关(三) 本篇文章讲解 Zuul 阅读全文
posted @ 2020-05-11 10:13 YoungDeng 阅读(221) 评论(0) 推荐(0)
摘要: 本篇文章为系列文章,未读第一集的同学请猛戳这里: Spring Cloud 系列之 Gateway 服务网关(一) Spring Cloud 系列之 Gateway 服务网关(二) Spring Cloud 系列之 Gateway 服务网关(三) 本篇文章讲解 Gateway 网关如何实现限流、整合 阅读全文
posted @ 2020-05-11 10:05 YoungDeng 阅读(242) 评论(0) 推荐(0)
摘要: 本篇文章为系列文章,未读第一集的同学请猛戳这里: Spring Cloud 系列之 Gateway 服务网关(一) Spring Cloud 系列之 Gateway 服务网关(二) 本篇文章讲解 Gateway 网关过滤器和全局过滤器以及自定义过滤器。 1|0过滤器 Spring Cloud Gat 阅读全文
posted @ 2020-05-11 10:03 YoungDeng 阅读(255) 评论(0) 推荐(0)
摘要: 本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Gateway 服务网关(一) 本篇文章讲解 Gateway 网关的多种路由规则、动态路由规则(配合服务发现的路由规则)。 1|0路由规则 点击链接观看:路由规则视频(获取更多请关注公众号「哈喽沃德先生」) Sprin 阅读全文
posted @ 2020-05-11 10:01 YoungDeng 阅读(404) 评论(0) 推荐(0)
摘要: Spring Cloud Gateway 作为 Spring Cloud 生态系统中的网关,目标是替代 Netflix Zuul,其不仅提供统一的路由方式,并且还基于 Filter 链的方式提供了网关基本的功能。目前最新版 Spring Cloud 中引用的还是 Zuul 1.x 版本,而这个版本是 阅读全文
posted @ 2020-05-11 10:00 YoungDeng 阅读(303) 评论(0) 推荐(0)
摘要: 本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Stream 消息驱动(一) 本篇文章讲解 Stream 如何实现消息分组和消息分区。 1|0消息分组 点击链接观看:Stream 消息分组视频(获取更多请关注公众号「哈喽沃德先生」) 如果有多个消息消费者,那么消息生 阅读全文
posted @ 2020-05-11 09:57 YoungDeng 阅读(125) 评论(0) 推荐(0)
摘要: 在实际开发过程中,服务与服务之间通信经常会使用到消息中间件,消息中间件解决了应用解耦、异步处理、流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。 不同中间件内部实现方式是不一样的,这些中间件的差异性导致我们实际项目开发给我们造成了一定的困扰,比如项目中间件为 Kafka,如果我们要替换为 阅读全文
posted @ 2020-05-11 09:55 YoungDeng 阅读(248) 评论(0) 推荐(0)
摘要: Hystrix 除了可以实现服务容错之外,还提供了近乎实时的监控功能,将服务执行结果和运行指标,请求数量成功数量等等这些状态通过 Actuator 进行收集,然后访问 /actuator/hystrix.stream 即可看到实时的监控数据。 1|1添加依赖 在需要开启数据监控的项目中添加 actu 阅读全文
posted @ 2020-05-11 09:53 YoungDeng 阅读(164) 评论(0) 推荐(0)
摘要: 本篇文章为系列文章,未读前几集的同学请猛戳这里: Spring Cloud 系列之 Netflix Hystrix 服务容错(一) Spring Cloud 系列之 Netflix Hystrix 服务容错(二) 本篇文章讲解 Hystrix 的服务熔断和服务降级以及基于 Feign 的服务熔断处理 阅读全文
posted @ 2020-05-11 09:52 YoungDeng 阅读(138) 评论(0) 推荐(0)
摘要: 本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Netflix Hystrix 服务容错(一) 本篇文章讲解 Hystrix 服务隔离中的线程池隔离与信号量隔离。 1|0服务隔离 点击链接观看:服务隔离视频(获取更多请关注公众号「哈喽沃德先生」) 1|1线程池隔离 阅读全文
posted @ 2020-05-11 09:51 YoungDeng 阅读(205) 评论(0) 推荐(0)
摘要: Hystrix 源自 Netflix 团队于 2011 年开始研发。2012年 Hystrix 不断发展和成熟,Netflix 内部的许多团队都采用了它。如今,每天在 Netflix 上通过 Hystrix 执行数百亿个线程隔离和数千亿个信号量隔离的调用。极大地提高了系统的稳定性。 在分布式环境中, 阅读全文
posted @ 2020-05-11 09:50 YoungDeng 阅读(111) 评论(0) 推荐(0)
摘要: 本篇文章为系列文章,未读前几集的同学请猛戳这里: Spring Cloud 系列之 Sleuth 链路追踪(一) Spring Cloud 系列之 Sleuth 链路追踪(二) 本篇文章讲解 Sleuth 如何使用 Elasticsearch、Logstash、Kibana 分析追踪数据。 1|0使 阅读全文
posted @ 2020-05-11 09:49 YoungDeng 阅读(84) 评论(0) 推荐(0)
摘要: 本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Sleuth 链路追踪(一) 本篇文章讲解 Sleuth 基于 Zipkin 存储链路追踪数据至 MySQL,Elasticsearch 以及使用 MQ 存储链路追踪数据至 MySQL,Elasticsearch。 1 阅读全文
posted @ 2020-05-11 09:47 YoungDeng 阅读(198) 评论(0) 推荐(0)
摘要: 随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。因此,就需要一些可以帮助理解系统行为、用于分析性能问题的工具, 阅读全文
posted @ 2020-05-11 09:46 YoungDeng 阅读(184) 评论(0) 推荐(0)