• Sentinel+Nacos实现资源流控、降级、热点、授权

    Sentinel 可以简单的分为 Sentinel 核心库和 Dashboard。核心库不依赖 Dashboard,但是结合 Dashboard 可以取得最好的效果。这篇文章主要介绍 Sentinel 引入和规则配置等使用方法。 我们说的资源,可以是任何东西,服务,服务里的方法,甚至是一段代码。因为Sentinel控制台配置的规则是在内存中的,所以我们需要Nacos来存储规则实...

    Java 2020年11月11日 2428 0
  • Java 泛型,你了解类型擦除吗?

    泛型,一个孤独的守门者。大家可能会有疑问,我为什么叫做泛型是一个守门者。这其实是我个人的看法而已,我的意思是说泛型没有其看起来那么深不可测,它并不神秘与神奇。泛型是 Java 中一个很小巧的概念,但同时也是一个很容易让人迷惑的知识点,它让人迷惑的地方在于它的许多表现有点违反直觉。文章开始的地方,先给大家奉上一道经典的测试题。List<String> l1 = new...

    Java 2020年11月03日 1212 0
  • Spring Boot认证:整合Jwt

    背景Jwt全称是:json web token。它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证token的正确性,只要正确即通过验证。优点简洁: 可以通过URL、POST参数或者在HTTP header发送,因为数据量小,传输速度也很快;自包含:负载中可以包含用户所需要的信息,避免了多次查询数据库;因为Token是以JSON加密的形式保存...

    Java 2020年10月30日 1311 0
  • activiti7与springboot2整合

    接下来时间我会写一系列Activiti7的文章,包括Activiti7实战,Activiti7源码分析,Activiti7中遇到的坑等。那么首先我们先跑起来,将Activiti7与Springboot2整合。Activiti7相比Activiti6一个显著的变化就是引入了SpringSecurity来负责鉴权工作,通俗点说就是接入的用户或者系统有没有相应的接口访问权限。1. 引...

    Java 2020年10月22日 2099 0
  • 3千字Apollo配置中心的总结,让配置“智能”起来

    思维导图文章已收录Github精选,欢迎Star:https://github.com/yehongzhi/learningSummary一、概述Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。目前Apollo在github有22.6k颗星,在官网登记的使...

    Java 2020年10月21日 1428 0
  • 轻量级的分布式日志追踪利器,十分钟可接入,从此日志追踪无难事

    前言随着微服务盛行,很多公司都把系统按照业务边界拆成了很多微服务,在排队查日志的时候。因为业务链路贯穿着很多微服务节点,导致定位某个请求的日志以及上下游业务的日志会变得有些困难。这时候很多童鞋会开始考虑上SkyWalking,Pinpoint等分布式追踪系统来解决,基于OpenTracing规范,而且通常都是无侵入性的,并且有相对友好的管理界面来进行链路Span的查询。但是搭建...

    Java 2020年09月18日 2206 0
  • JDK15正式发布,划时代的ZGC同时宣布转正

    ✍前言2020年9月15日,JDK15正式发布,可谓如约而至。按照Java SE的发展路线图,JDK14自此停止更新。值得注意的是JDK15并非「LTS」版本,Oracle官方对Java SE的支持路线图如下:JDK8的扩展支持时间超过了JDK11,Oracle你是认真的吗?开个玩笑~那么自Java11之后,哪个版本才是LTS版本呢?Oracle官方并没给出具体参考路线图,但可...

    Java 2020年09月17日 2024 0
  • Mybatis中不建议使用动态sql

    Mybatis是一个优秀的Java持久层框架,它通过xml的方式来管理要执行的sql语句,屏蔽了jdbc底层细节,让开发人员可以方便的操作数据库。动态SQL说到动态SQL,绝对是Mybatis引以为豪的东西,因为它可以使配置文件简洁,就像下面这个配置,我可以使用selectEntryByWhere来适配所有的查询语句,是不是感觉很爽。<select id="selectE...

    Java 2020年09月11日 2445 0
  • 一个基于 Spring Boot 的在线考试系统

    今天推荐一款超级美观的在线考试系统,感兴趣可以先去预览地址看看该项目。在线 Demo预览,http://129.211.88.191 ,账户分别是admin、teacher、student,密码是admin123GitHub地址:github.com/19920625lsg/spring-boot-online-exam功能简介支持单选题、多选题、判断题支持学生(student...

    Java 2020年09月08日 7683 1
  • SpringBoot:基于JWT的token校验、单点登录等

    前言用户鉴权一直是我先前的一个问题,以前我用户接口鉴权是通过传入参数进行鉴权,只要是验证用户的地方就写token验证,虽然后面也把token验证方法提取到基类中,但是整体来说仍然不是太雅观,当时的接口如下所示. @RequestMapping(value = "like",method = RequestMethod.POST) public ResultMap u...

    Java 2020年09月03日 1451 0
  • 记一次token安全认证的实践

    背景介绍:因项目需求,有PC端 APP端和小程序端,但登陆接口是同一个,然而微服务也无法使用传统的session解决用户登录问题(注意这里是传统的session不是spring session),使用户信息在其他服务共享。如此一来就想到了token安全认证,而JWT生成token可以包含用户信息,也就果断选择了JWT作为SpringCloud gateway网关的token校验...

    Java 2020年08月12日 1457 0
  • FileBeat + Kafka + ELK搭建与简单示例

    最近调研了一下ELK,自己也尝试搭建了一套环境,用于学习, 现将整个部署的过程记录下来现 Filebeat 已经完全替代了 Logstash-Forwarder 成为新一代的日志采集器,越来越多人开始使用它,所以现在基于 Filebeat ELK 架构如下图看完了图,再来简单介绍一下ELKE lasticsearch :简称 ES,是ELK的核心,是基于Apache Lucen...

    Java 2020年08月06日 1964 0
  • 在 SpringBoot 中实现多数据源访问的最佳实践

    1 概述在实际业务开发中通常会在单个应用中通过 分库分表 或者 读写分离的方式来提供应用的读写性能。在具体的开发中有很多方式:通过不同的 mapper,映射到不同的 mybatis 源的方式通过继承 Spring 的 AbstractRoutingDataSource 抽象类并重写 determineCurrentLookupKey 方法来管理多个数据源的方式本文将详细介绍在 ...

    Java 2020年08月06日 3576 0
  • 开源分布式配置中心 Apollo 1.7.0 发布

    Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。服务端基于 Spring Boot 和 Spring Cloud 开发,打包后可以直接运行,不需要额外安装 Tomcat 等应用容器。Java 客户端不依赖任何框架,能够运行于所有Ja...

    Java 2020年08月05日 1712 0
  • 9种分布式ID生成方式,总有一款适合你

    分布式ID必要性。业务量小于500W的时候单独一个mysql即可提供服务,再大点的时候就进行读写分离也可以应付过来。但当主从同步也扛不住的是就需要分表分库了,但分库分表后需要有一个唯一ID来标识一条数据,数据库的自增ID显然不能满足需求;特别一点的如订单、优惠券也都需要有唯一ID做标识。此时一个能够生成全局唯一ID的系统是非常必要的。那么这个全局唯一ID就叫分布式ID。分布式I...

    Java 2020年07月30日 1602 0
  • 分布式架构的总结

    一、前言​  随着社会的发展,技术的进步,以前的大型机架构很显然由于高成本、难维护等原因渐渐地变得不再那么主流了,替代它的就是当下最火的分布式架构,从大型机到分布式,经历了好几个阶段,我们弄明白各个阶段的架构,才能更好地理解和体会分布式架构的好处,那么本文我们就来聊聊分布式架构的演进过程,希望能给大家带来眼前一亮的感觉。 作者:领悟.海洋二、背景说明​  我们都知道一个成熟的大...

    Java 2020年07月28日 1544 0
  • springboot2.2.X手册:构建全局唯一的短链接数据中心

    什么是短链接短链接,其实这个东西很常见,最早开始的时候小编是在微博上看见的,然后就很好奇这是个什么东西,怎么点进去后网址又辣么长?其实这个东西就必须按照字面来理解,就是短的链接,通过短的链接去数据库或者缓存中找到长的链接,映射出来即可。今天我们用redis来实现短链接服务,想换存储介质的同学自行更换。有哪些场景1、微博,短信等那些有限制字数的文案需求2、用户角度上来考虑,短链接...

    Java 2020年06月12日 2301 0
  • 数据库中间件的对比

    目前的数据库中间件有很多,本节将介绍主流的中间件,并从各个维度将其与Mycat进行对比。1. MangoMango的中文名是“芒果”,它是一个轻量级的极速数据层访问框架,目前已有十多个大型线上项目在使用它。据称,某一支付系统利用Mango承载了每秒12万的支付下单请求,其超高的性能及超快的响应速度几乎相当于直接使用JDBC。它采用接口与注解的形式定义DAO,完美地结合了db与c...

    Java 2020年06月10日 6353 0
  • 误删idea 的.iml文件后的处理方法

    在缺少.iml文件项目下运行mvn idea:module,完成后将自动生成.iml文件除了自动生成.iml文件外,还有以下几个相关的maven idea命令,以备不时之需:生成.ipr文件: mvn idea:project生成.iws文件: mvn idea:workspace生成.iml文件: mvn idea:module

    Java 2020年05月21日 5637 0
  • Java枚举"已过时"-改用“数据字典”

    Java枚举的一大缺点:增加一个枚举项,需要重新发版,不易扩展数据字典:可以存储key=value形式的任何数据,变更不需要发版,易扩展实现原理字典的工作原理图数据库表设计CREATE TABLE `system_dict_node` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', `pid` bigint(...

    Java 2020年05月12日 4676 0
  • JDK 15:Java 15中的新功能

    标准Java的下一版本将具有文本块,垃圾收集器,隐藏的类以及模式匹配和记录的预览。随着Java 14于3月17日全面上市,将在2020年9月15日推出Java 15的后续产品。到目前为止,已经计划对该版本进行八次正式更改。 另外两个提案-加密签名和记录的第二个预览-可能很快就会成为正式提案。Java开发工具包(JDK)15为下一版本的Java SE(标准版)提供了基础。 在9月...

    Java 2020年05月12日 2879 0
  • Spring Boot 如何测试打包部署

    有很多网友会时不时的问我, Spring Boot 项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下 Spring Boot 如何开发、调试、打包到最后的投产上线。开发阶段单元测试在开发阶段的时候最重要的是单元测试了, Spring Boot 对单元测试的支持已经很完善了。1、在 pom 包中添加 spring-boot-starter-test 包引...

    Java 2020年05月08日 1800 0
  • 项目管理之开源:国内非常良心的一款考试系统 | 实用 | 推荐

    介绍Exam++是国内首款基于JAVA与MYSQL开发的网络考试系统。它可以稳定、顺畅的运行在Windows与Linux平台上。您可以通过它快捷方便的创建试题和题库,发布试卷,组织考试,系统自动批改。高度的可配置性和灵活性使得它可以被应用于很多领域。地址https://gitee.com/ocelot/examxx?_from=gitee_search功能用户注册登陆:用户可以...

    Java 2020年05月06日 3239 0
  • Spring Boot+Redis+拦截器+自定义Annotation实现接口自动幂等

    在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求,我们来解释一下幂等的概念:任意多次执行所产生的影响均与一次执行的影响相同。按照这个含义,最终的含义就是 对数据库的影响只能是一次性的,不能重复处理。如何保证其幂等性,通常有以下手段:数据库建立唯一性索引,可以保证最终插入数据库的只有一条数据token机制,每次接口请求前先获取一个token,然后再下次请求的时候在请求的...

    Java 2020年05月05日 1399 0
  • 「JAVA」字节流、字符流、缓冲流、转换流、内存流、字符编码

    文件流、字节流、字符流、缓冲流、转换流、内存流文件流: 在Java 中,文件流负责操作文件,包括读取和写入;FileInputStream // 文件的字节输入流;FileOutputStream // 文件的字节输出流;FileReader // 文件的字符输入流;FileWriter /...

    Java 2020年05月04日 1554 0
  • IEDA 操作入门详解

    启动及主界面安装完成后,点击左面IDEA15的图标,下图界面进行IDEA加载等待IDEA加载完成后,一路配置及注册确认后进入主界面Create New Project:创建一个新的IDEA工程Import Project:导入一个已有的IDEA工程Open:打开一个已有工程或文件Check out form Version Control:从版本管理系统检出工程Configur...

    Java 2020年05月04日 1704 0
  • SpringBoot 使用 Caffeine 本地缓存

    环境配置:JDK 版本:1.8Caffeine 版本:2.8.0SpringBoot 版本:2.2.2.RELEASE一、本地缓存介绍缓存在日常开发中启动至关重要的作用,由于是存储在内存中,数据的读取速度是非常快的,能大量减少对数据库的访问,减少数据库的压力。之前介绍过 Redis 这种 NoSql 作为缓存组件,它能够很好的作为分布式缓存组件提供多个服务间的缓存,但是 Red...

    Java 2020年05月03日 2509 0
  • gRPC和RSocket之间的区别

    我们一直被问到这个问题。 通常,gRPC和RSocket尝试解决不同的问题。 gRPC是使用HTTP / 2的RPC框架。 RSocket是较低级别的消息传递网络层。 因此,开发人员将直接使用RSocket进行低级交互,并可以选择使用RSocket-RPC作为位于RSocket之上的易于使用的RPC层。现在,让我们更具体地看一下gRPC和RSocket之间的区别。OSI层gRP...

    Java 2020年05月02日 5381 0
  • 使用Netty通信时,遇到TCP粘包拆包问题如何解决?答案如此简单

    1、什么是TCP粘包拆包2、Netty中粘包问题的问题重现3、Netty中粘包问题的解决方案OK,在你心中有这么一个基本的脉络之后就可以开始今天的文章了。本系列所有的文章都会给出完整的代码,且在电脑上真实运行了一遍,确保无误。一、什么是TCP拆包和粘包我们使用TCP协议在传输数据的时候,如果数据块比较大,就会考虑将其切分。把一个大的数据包进行切割成一个个小的数据包发送。这时候就...

    Java 2020年04月27日 1684 0
  • Java界使用最广的依赖管理工具:Maven快速上手教程

    Maven是Java界使用最广泛的依赖管理工具,几乎所有的Java类库和项目都使用Maven的项目模型。可以说Maven是学习Java必要的一个知识点。那么就让我们来看看如何使用Maven吧。安装MavenMaven的安装非常简单,访问下面的网页,选择zip包下载。下载完成后,放到合适的位置解压,然后将文件夹中的bin目录添加到环境变量中,以便可以在命令行中运行Maven。ht...

    Java 2020年04月27日 1605 0