随笔分类 - Java
Java相关
摘要:1. sentinel简介 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 2.包引入和配置 本次方案是不引入控制台的限流应用 maven包的引入 <dependency> <groupId>c
阅读全文
摘要:1.工具简介 CurrentLimiting:基于令牌桶算法和漏桶算法实现的纳秒级分布式无锁限流插件,完美嵌入SpringBoot、SpringCloud应用,支持接口限流、方法限流、系统限流、IP限流、用户限流等规则,支持设置系统启动保护时间(保护时间内不允许访问),提供快速失败与CAS阻塞两种限
阅读全文
摘要:一、Spring cloud stream概述 Spring Cloud Stream是构建消息驱动的微服务应用程序框架。提供统一的接收发送管道以连接到消息代理。通过@EnableBinding注解开启SpringCloudStream的支持。通过@StreamListener注解,使其接收流处理的
阅读全文
摘要:使用idea2020.2.2新版本发现新建的springboot项目起不来,报错信息如下: java: 程序包org.springframework.boot不存在java: 程序包org.springframework.boot.autoconfigure不存在java: 找不到符号 需设置Mav
阅读全文
摘要:之前的开发过程中遇到过各种各样的接口对接,有WebService也有Restful的接口,通讯方式也是多种多样。 对于模拟HTTP请求,一直是使用HttpClient的。这里顺便普及一下Http请求的几个方法: (1)GET:通过请求URI得到资源 (2)POST:用于添加新的内容 (3)PUT:用
阅读全文
摘要:Springboot项目Java轻松实现Excel导出 一、需求背景 要求Java后端实现一个Excel导出功能。 二、工程包引入 implementation group: 'org.apache.poi', name: 'poi', version: '4.0.1' implementation
阅读全文
摘要:mybatis-plus报错解决Invalid bound statement (not found)错误 异常信息 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): XXMapper.f
阅读全文
摘要:一、问题背景 使用@Scheduled创建两个定时任务,其中一个1s执行。另一个1min执行。按分钟执行的出现了bug,我设定的规则如下: @Async @Scheduled(cron = "0 0/1 * * * ?") public void workOfMin() { logger.info(
阅读全文
摘要:问题: 在对集合迭代的时候,如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常,问题重现: 原因分析: 进入报错信息,定位LinkedHashMap719行,modCount != expectedModCount 抛异常。 modCo
阅读全文
摘要:场景描述 在使用Springboot整合定时任务,发现当某个定时任务执行出现执行时间过长的情况时会阻塞其他定时任务的执行。 问题定位 后续通过翻查Springboot的文档以及打印日志(输出当前线程信息)得知问题是由于Springboot默认使用只有1个线程的单线程池处理定时任务。 问题复盘 需要注
阅读全文
摘要:一、概述 一、概述 Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作。简而言之
阅读全文
摘要:一、Guava介绍 Guava是Google guava中的一个内存缓存模块,用于将数据缓存到JVM内存中。实际项目开发中经常将一些公共或者常用的数据缓存起来方便快速访问。 Guava Cache是单个应用运行时的本地缓存。它不把数据存放到文件或外部服务器。如果不符合需求,可以选择Memcached
阅读全文
摘要:一、SpringBoot Aop说明 一、SpringBoot Aop说明 1. Aop AOP(Aspect-Oriented Programming,面向切面编程),它利用一种”横切”的技术,将那些多个类的共同行为封装到一个可重用的模块。便于减少系统的重复代码,降低模块之间的耦合度,并有利于未来
阅读全文
摘要:Spring的微服务框架SpringCloud受到众多公司欢迎,给大家带来一篇框架搭建入门。本次采用的版本是Spring Cloud版本为Finchley.RELEASE。 一、SpringCloud项目简介 spring cloud: 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服
阅读全文
摘要:一、应用场景 我们在工作开发中可能经常要和其它部门或者第三方进行API对接,那么如何保证我们提供的API和对接方能够安全的数据传输呢。这就需要用到接口加密的方式来保障安全。本文主要介绍的内容就是一种比较靠谱的公众平台API加密实现方式。供大家参考。 二、技术介绍 开放平台的消息加密解密技术方案基于A
阅读全文
摘要:一、场景简介 最近在做公众号关键词回复方面的智能问答相关功能,发现用户输入提问内容和我们运营配置的关键词匹配回复率极低,原因是我们采用的是数据库的Like匹配。 这种模糊匹配首先不是很智能,而且也没有具体的排序功能。为了解决这一问题,我引入了分词器+Lucene来实现智能问答。 二、功能实现 本功能
阅读全文
摘要:在设计开放平台接口过程中,往往会涉及接口传输安全性相关的问题,本文对接口加密及签名的相关知识做了一个总结,在方便自己查阅的同时也分享给大家做一些参考。 接口安全性问题思考 接口安全性问题主要来源于几方面考虑: 1.防伪装攻击即请求来源是否合法?(案例:在公共网络环境中,第三方 有意或恶意 的调用我们
阅读全文
摘要:App key和App Secret App key简称API接口验证序号,是用于验证API接入合法性的。接入哪个网站的API接口,就需要这个网站允许才能够接入,如果简单比喻的话:可以理解成是登陆网站的用户名。 App Secret简称API接口密钥,是跟App Key配套使用的,可以简单理解成是密
阅读全文
摘要:项目实践 现在Java项目使用mybatis多一些,所以我也做了一个springboot+mybatisplus+sharding-jdbc分库分表项目例子分享给大家。 要是用的springboot+jpa可以看这篇文章:https://www.cnblogs.com/owenma/p/113646
阅读全文
摘要:分库分表场景 关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。此时就要考虑对其进行切分了,切分的目的就在于减少数据库的负担,缩短查询时间。 分库分表用于应对当
阅读全文