- 博客(35)
- 资源 (1)
- 收藏
- 关注
原创 SpringBoot集成接口重试Retry
在实际的应用中,我们经常需要调用第三方API来获取数据或执行某些操作。然而,由于网络不稳定、第三方服务异常等原因,API调用可能会失败。为了提高系统的稳定性和可靠性,我们通常会考虑实现重试机制。
2024-02-27 13:48:46 537 1
原创 SpringBoot 集成 EasyExcel 3.x导入导出
*** 用户信息@ExcelProperty("用户编号") @ColumnWidth(20) private Long id;@ExcelProperty("用户名") @ColumnWidth(20) private String username;@ExcelProperty("昵称") @ColumnWidth(20) private String nickname;
2023-07-19 10:55:20 315
原创 Oracle创建dblink数据库链接
我们想要创建dblink前提是该用户有创建dblink的权限。如果没有权限是创建不了dblink的。那么我们只需要用管路员账号给该用户授予相应的权限即可。
2022-07-18 09:37:59 2680
转载 IntelliJ IDEA快捷键大全 + 动图演示
IntelliJ IDEA快捷键大全 + 动图演示本章转载自:https://blog.csdn.net/weixin_67276852/article/details/124159843?spm=1001.2014.3001.5502本文参考了 IntelliJ IDEA 的官网,列举了IntelliJ IDEA(Windows 版)的所有快捷键。并在此基础上,为 90% 以上的快捷键提供了动图演示,能够直观的看到操作效果。该快捷键共分 16 种,可以方便的按各类查找自己需要的快捷键~~一、构建/
2022-05-05 10:58:41 221
原创 解决Oracle11g使用dmp命令或者PL/SQL无法导出空表问题
如何解决Oracle11g使用dmp命令无法导出空表问题oracle使用命令行exp命令或者使用plsql导出数据库时,数据库中没有数据的表不会导出。exp user/password@orcl full=y file=文件名及路径导出显示空表不存在。imp user/123456@ip:1521/orcl file=文件名及路径 full=y ignore=y解决1执行 alter system set deferred_segment_creation=false;2 查询一下当前用户
2022-04-27 14:03:11 1650
原创 ElasticSearch入门及基础操作
ElasticSearch入门及基础操作一、概述ElasticSearch简称ES,ES是一个开源的高扩展的分布式全文搜索引擎,是整个Elastic Stack技术栈的核心。它可以近乎实时的存储、检索数据;本身扩展性很好。可以扩展到上百台服务器,处理PB级别的数据。Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的[全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种
2022-01-12 11:10:45 160 1
原创 Spring Security概述及web权限方案
一、概述Spring Security基于Spring框架,提供了一套Web应用安全性的完整解决方案。一般来说,Web应用的安全性包括用户认证和用户授权两个部分,这两点也是Spring Security的重要核心功能。(1)用户认证:验证某个用户是否为系统中的合法主体,也就是说用户能否访问改系统。用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来完成认证过程。通俗点说就是系统认为用户是否能登陆。(2)用户授权:要争某个用户是否有权限执行某个操作。在一个
2021-12-08 17:23:50 277
原创 Activiti7表与Service总结
Activiti7表与Service总结工作流(workflow):就是通过计算机对业务流程自动化管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则进行自动传递文档、信息或者任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。1、数据库表总结生成的表如下:ACT_RE :'RE’表示 repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。ACT_RU:'RU’表示 runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运
2021-07-19 18:01:01 528
原创 数据库中间件MyCat配置读写分离与MySQL主从复制
数据库中间件Mycat1、相关概念数据库中间件:连接java应用程序和数据库一般应用程序与数据库的交互存在的问题:java与数据库紧耦合高访问量并发对数据库的压力太大对数据库的读与写请求的需求不一样故为解决上面的问题,引入了数据库的中间件Mycat,这时候java应用程序不需要关注我的sql语句发送到哪一台mysql服务器,都交给Mycat来管理。2、Mycat简介2.1、Mycat作用1、读写分离2、数据分片:垂直拆分(分库)、水平拆分(分表)、垂直+水平拆分(分库
2021-07-01 09:42:27 219
原创 MySQL数据库索引及调优
MySQL数据库索引调优1、概述:索引是对数据库表中一个或多个列的值进行排序的结构。索引的数据结构:二叉树红黑树Hash表B-TreeMySQL底层是用B+Tree。数据结构模拟器网站:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html对于以下数据:select * from table where Col1=6二叉树二叉树的右侧节点比左侧节点大,构建的索引如下:这样去查和去扫描表的效率其实都差不
2021-06-08 15:43:05 225
原创 MongoDB数据库简介及整合Spring Boot
MongoDB数据库简介1、简介MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是一种类似JSON的格式叫BSON(“二进制的JSON”),所以它既可以存储比较复杂的数据类型,又相当的灵活。2、业务应用场景传统的关系型数据库,在数据库操作的“三高”需求以及对应的Web2.0的网站需求
2021-06-02 11:39:43 104
原创 Spring cloud alibaba分布式事务Seata
Spring cloud alibaba 分布式事务Seata1、简介单体应用被拆分成多个微服务应用,分别使用独立的数据源,业务操作需要调用多个服务来完成,此时每个服务内部的数据一致性由本地事务来保证,但是全局的数据一致性问题没法保证。这时候就需要分布式事务来解决这个问题。Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。中文官方网站:http://seata.io/zh-cn/1.1 Seata术语(1+3的套件:一个全局事务ID和三大组件)T
2021-05-27 09:26:57 184
原创 Spring Cloud Stream消息驱动之整合RabbitMQ
Spring Cloud Stream消息驱动之整合RabbitMQ1、干什么的?目前使用的消息中间件MQ太多了(如java使用了RabbitMQ,而后台大数据使用了Kafka),那么有没有一种新的技术来让我们不再关注具体MQ的细节,我们只需要用一种适配绑定的方式,自动的给我们在各种MQ内切换的技术呢?这个就是Spring Cloud Stream技术的诞生。总的一句话:屏蔽底层消息中间件的差异,降低切换成本,统一消息的编程模型。官方网站:https://spring.io/projects/spr
2021-05-11 09:46:05 344
原创 spring cloud服务降级、熔断、限流Hystrix豪猪哥
Hystrix豪猪哥1、分布式系统面临的问题复杂分布式系统结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败。简单来说:A调用B,B调用C,C调用D,或者A同事调B、C、D等情况,如果一切顺利则没有问题,但中间的某个服务可能超时、机房断电等原因就整个崩溃!2、服务雪崩如果某个微服务调用的响应时间过长或者不可用,对微服务A的低啊用就会占用越来越多的系统资源,进而引起系统崩溃,这就是所谓的“雪崩效应”。对于高流量的应用来说,单一的后端依赖可能会导致所有服务器上的所有资源在几秒钟
2021-05-07 15:16:49 197
原创 微服务注册中心与CAP理论
微服务注册中心与CAP理论服务注册中心本质上是为了给服务提供者与该服务消费者解耦的。对于任何一个微服务,都应该会有多个服务者,这样就引入了额外的组件来管理微服务提供者的注册于发现,这个组件就是服务注册中心。一、CAP理论CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。C:Consistency(强一致性)(
2021-04-19 21:32:35 603 1
原创 RabbitMQ简介及安装
RabbitMQ简介及安装1、RabbitMQ的优点基于ErLang语言开发具有高可用高并发的优点,适合集群服务器健壮、稳定、跨平台、支持多种语言,文档齐全有消息确认机制和持久化机制,可靠性高开源2、RabbitMQ的概念生产者与消费者Producer:消息的生产者Consumer:消息的消费者Queue消息队列,提供了FIFO(First Input First Output指先进先出)的处理机制,具有缓存消息的能力。在RabbitMQ中,队列消息可以设置为持久化、临时或者
2021-03-31 09:12:50 78
原创 消息中间件(Message Queue)简介
消息队列简介1:简介Message Queue(MQ),消息队列中间件。很多人都说:MQ通过将消息的发送和接受分离来实现应用程序的异步和解耦,这给人的直觉是:MQ是异步的,用来解耦的,但是MQ这个只是效果而不是目的。MQ真正的目的是为了通讯,屏蔽底层复杂的通讯协议,定义了一套应用层的、更加简单的通讯协议。传统系统中两个模块之间通讯要么是HTTP,要么是自己开发的TCP,这两种协议都是原始的协议,实现起来很困难。MQ定义了两个对象:发送数据的叫生产者,接受数据的叫消费者。它提供一个SDK让我们可以定义
2021-03-28 10:27:51 426
原创 Docker Compose简介安装使用
Docker Compose简介安装使用一、概念compose负责对Docker容器集群的快速编排。容器太多,咋个管理呢?就用compose。Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。二、安装gitbub网址: https://github.com/docker/compose/releases找到latest版本:在li
2021-01-16 16:59:37 110
原创 Docker简介及在Ubuntu下的安装使用
Docker简介及在Ubuntu下的安装使用一、Docker简介Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。1.1 Docker的应用场景Web 应用的自动化打包和发布。自动化测试和持续集成、发布。在服务型环境中部署和调整数据库或其他的后台应用。从头编译或者扩展现有的 OpenShift 或 Cloud Foundr
2020-12-14 17:56:53 646
原创 Ubuntu使用root远程连接不上(服务密码被拒绝)的解决方法
Ubuntu使用root远程连接不上(服务密码被拒绝)的解决方法1、首先确认安装了ssh服务,没有安装的执行以下命令:sudo apt-get install openssh-server2、等待安装完成后,在修改文件sshd_config文件vim /etc/ssh/sshd_config进入编辑文件,设置root可以远程登录:PermitRootLogin yes,如下图:3、然后重启服务service ssh restart...
2020-12-10 16:16:05 2880
原创 Mysql执行开启root远程访问的sql语句总报错的解决
问题背景在Linux上安装上Mysql后,执行以下代码开启远程登录:GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "你的密码" WITH GRANT OPTION;系统提示:解决方法这是由于安装的Mysql版本过高的问题引起的,这种方法在Mysql8.0以后就已经不适用了,故我们需要执行以下的sql语句:CREATE USER 'root'@'%' IDENTIFIED BY '你的密码'; GRANT ALL ON *.* TO
2020-12-08 18:07:05 505
原创 Integer.parseInt(String s, int radix)的使用方法
我们经常使用Integer.parseInt(String s)将一个字符串转换成十进制的数字,其实它内部的调用使用的下面的代码:源码如下:public static int parseInt(String s) throws NumberFormatException { return parseInt(s,10);}可以看到它其实调用的parseInt(String s, int radix)方法,只是第二个参数默认传的是10,也就是默认字符串s的格式为十进制数字的字符串。我们再看一下它具体
2020-12-07 14:01:35 1916
原创 微服务介绍
一、微服务架构介绍1、微服务简介微服务架构是一项在云中部署应用和服务的新技术。大部分围绕微服务的争论都集中在容器或其他技术是否能很好的实施微服务,而红帽说API应该是重点。微服务可以在“自己的程序”中运行,并通过“轻量级设备与HTTP型API进行沟通”。关键在于该服务可以在自己的程序中运行。通过这一点我们就可以将服务公开与微服务架构(在现有系统中分布一个API)区分开来。在服务公开中,许多服务都可以被内部独立进程所限制。如果其中任何一个服务需要增加某种功能,那么就必须缩小进程范围。在微服务架构中,只需要
2020-12-01 14:11:42 73
原创 Nginx
一.Nginx介绍1.1前言随着客户端用户不断增多,请求量增加,并发量增高,这是咱们需要搭建服务器的集群。为什么使用Nginx?客户端发送请求要发给哪台服务器?如果所有客户端的请求都发给了服务器1?客户端请求可能是静态资源也可能是动态资源?这时候,我们就需要追加一个Nginx来反向代理,客户端只需要发送请求给Nginx,让它帮我们解决上面的全部问题。1.2 Nginx介绍特点:稳定性强,7*24不间断运行Nginx提供了非常丰富的配置实例内存占用小,并发能力强(淘宝,京东双1
2020-11-15 11:12:15 3428 7
原创 Oracle中minus取差集与intersect取交集
Oracle中minus取差集与intersect取交集最近在业务中遇到需要取两个结果集中的差集。首先想到的是加条件where id not in(select id from table)这种类似的SQL语句,但是这种sql随着表数据的增加,后面的数据肯定会越来越多,所消耗的时间也会越来越久,所以觉得不可行。其次,我想到java中有存在对于两个集合方法:list1.removeAll(list2)来取差集,如果SQL返回两个结果集这种方法也可以实现,但再看list1.removeAll(list2)
2020-09-04 14:44:54 376
原创 根据前序和中序遍历序列来构建二叉树
根据前序和中序遍历序列来构建二叉树给定一个二叉树,我们可以写出前序遍历与中序遍历的序列,那么我们给定前序和中序遍历的序列,我们怎样才能将这颗二叉树还原呢???给定前序遍历的数组序列为:int[] preorder,中序遍历序列数组为:int[] inorder为了快速定位到中序遍历元素的下标,我们可以构建一个hash表来存储该元素与对应的下标。(此方法只适用于二叉树的元素的值没有相同的。)private Map<Integer,Integer> indexMap; indexMap
2020-05-23 12:11:56 1077
原创 二叉树的前、中、后序遍历
二叉树的前、中、后序遍历1、遍历方式前序遍历:父节点→左子树→右子树中序遍历:左子树→父节点→右子树后序遍历:左子树→右子树→父节点如何区分遍历方式:看输出父节点的顺序就可确定是什么遍历。如下图的二叉树:输出顺序:前序遍历:1,2,3,5,4中序遍历:2,1,5,3,4后序遍历:2,5,4,3,12 代码实现2.1 创建HeroNode节点class HeroNode{ private int no; private String name; priv
2020-05-09 17:06:16 667
原创 二分查找、插值查找、斐波那契查找
对于一个有序的数列,查找数列中是否有某个数值并返回其下标。1、二分查找 public static int binarySearch(int[] arr,int findValue) { int left = 0; int right = arr.length - 1; while (left <= right) { ...
2020-04-30 17:06:14 181
原创 Oracle连接ORA-28040问题解决
Oracle连接ORA_28040问题解决问题描述:本机安装oracle版本为11g,虚拟机安装版本为12c,使用本机navicat连接虚拟机数据库报ORA_28040错误。本机数据库版本低于虚拟机数据库版本。解决办法:找到本机数据库安装路径的…\product\11.2.0\dbhome_1\NETWORK\ADMIN文件夹下的sqlnet.ora文件,在最后加上SQLNET.ALLOW...
2020-04-09 19:52:32 7487
原创 优先级队列PriorityQueue测试
PriorityQueue 一个基于优先级的无界优先级队列。优先级队列的元素按照其自然顺序进行排序,或者根据构造队列时提供的 Comparator 进行排序,具体取决于所使用的构造方法。 该队列不允许使用 null 元素也不允许插入不可比较的对象(没有实现Comparable接口的对象)。 下面是使用PriorityQueue构建一个top N的例子://实体类 package com...
2020-04-02 21:16:09 247
原创 个人关于鸿蒙、Java、Android跨平台的理解
个人关于鸿蒙、Java、Audroid跨平台的理解鸿蒙(Harmong OS)是华为自2012年开发的一款可能兼容Ardroid app的跨平台操作系统。1、什么是跨平台?传统意义的跨平台既不依赖于操作系统,也不依赖硬件环境。一个操作系统下开发的应用,放到另一个操作系统依然可以运行。像华为退出的鸿蒙OS,他可以支持到多种多样的设备,如手机、手表、智能家居、电脑、汽车等,所以现在说的跨平台...
2020-04-02 21:16:00 5008
FusionCharts.js
2017-10-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人