- 博客(122)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 RabbitMQ如何做到不丢不重
如果需要保证消息在整条链路中不丢失,那就需要生产端、mq自身与消费端共同去保障。生产端:对生产的消息进行状态标记,开启confirm机制,依据mq的响应来更新消息状态,使用定时任务重新投递超时的消息,多次投递失败进行报警。mq自身:开启持久化,并在落盘后再进行ack。如果是镜像部署模式,需要在同步到多个副本之后再进行ack。消费端:开启手动ack模式,在业务处理完成后再进行ack,并且需要保证幂等。通过以上的处理,理论上不存在消息丢失的情况,但是系统的吞吐量以及性能有所下降。
2023-12-24 12:24:51 672
原创 mybatis 判断是否传入了某参数
在spring+mybatis开发中,一条sql语句可能有很多函数可以调用,而每个函数传入的参数也可以是不一样的,这也就需要判断某个参数是否传入了。示例如下:<!-- 使用_parameter.containsKey('变量名')判断 --><sql id="PagingStatement"> <if test="_parameter.containsKey('page') and page != null"> <if
2021-02-04 13:54:54 1731
原创 log4j2定期生成和删除过期日志文件的配置
删除过期文件有个坑,好多博文都说删除过期日志文件的配置通过max=数字控制.这是不对的这个只是控制某时间段内(根据配置不同)文件的数目.它并不会关心你的目录下一共有多少个日志文件了. 可想而知, 这样随着时间的推移, 虽然每个时间区间内日志数目控制在范围内, 但是, 总日志文件个数, 依然日益膨胀.正确的应该如下:<?xml version="1.0" encoding="UTF-8"?><Configuration status="WARN" monitorInterva
2021-01-20 15:59:30 5342
原创 Java Logback教程
今天仔细配置了一下Logback,之前都是直接从网上找一下,今天仔细研究了一下。首先简单配置如下:<?xml version="1.0" encoding="UTF-8"?><configuration debug="false"> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <springProperty scope="context" name="logLevel" source="logBack.level"
2021-01-19 16:59:47 411
原创 关于kafka发送消息过大导致的异常的解决方式
在kafka发送消息的时候,如果消息过大超过了max.request.size的默认大小(1M),就会报下面的异常:这个时候我们如果单独调整max.request.size参数的大小可能不起作用,因为在broker端和consumer端同样对消息的大小存在限制,我们在调整的时候要同时调整这三个参数,不然可能是broker接受不了producter端的消息,要不就是consumer端消费不了消息。调整如下:producer端:max.request.size=5242880(5M)broke
2020-05-29 14:12:47 5724 1
原创 已有实例创建新的数据库空间和用户,并授权
记录一下今天的创建数据库空间的操作:已有实例创建新的数据库空间和用户,并授权1、创建新的数据库空间:CREATE TABLESPACE YWGL DATAFILE 'D:\DATABASEFILES\ YWGL.DBF' SIZE 10G AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED;【注意】:DBF文件地址、表空间初始化大小及自增大小根据具体使用情况设置。2、创建用户,并授予dba权限。CREATE USER WORKBASE IDENTIFIE
2020-05-12 15:52:52 259
原创 重启oracle的方法
这里记录一下:Linux:方法1 用root以ssh登录到linux,打开终端输入以下命令: cd $ORACLE_HOME #进入到oracle的安装目录 dbstart #重启服务器 lsnrctl start #重启监听器这种方式可能会报一些权限问题,要设置相应的权限,如果启动失败了,可以看方法二。Linux:方法2 (1) 以oracle身份登录数据库,命令:su - oracle(注意空格) (2) 进入Sqlpl...
2020-05-09 09:19:29 2597
原创 layui 数据表格内嵌上传按钮,并在上传中增加所在行的id或其他属性
碰到的需求是表格中每一行都要上传的按钮操作。遇到的问题是不知道怎么把行里面的数据传到后台(因为要根据id进行相应的保存)解决方法是://把行里的数据拼接到上传的元素中:<a class='table-btn uploadTableInfo' value='"+d.TASKID+","+d.XRID+"' lay-event='scbb'>上传报表</...
2020-04-28 14:08:11 5388 5
原创 Linux新建Oracle用户和数据库并导入sql文件
1、切换到Oracle用户su – oracle2、登录sys用户sqlplus / as sysdba3、创建表空间查询用户表空间文件的路径select name from v$datafile;CREATE TABLESPACE customerchat LOGGING DATAFILE '/database/app/oracle/oradata/ccorcl/...
2020-04-27 09:47:28 1380
原创 MyBatis 中if 标签 判断字符串不生效
今天遇到if 标签判断字符串不生效,导致查询结果错误:我原来的代码是:<if test="auditStatus == '0' "> (xr.tbzt = '0' or xr.tbzt is null) </if>后来发现得改为下面的才行:<if test="auditSta...
2020-04-24 14:49:13 675 1
原创 java后台接收前端对象数组
思路:首先,各位肯定知道我们如何传递一个常用类型的数组对象,比如String[] strs、Integer[] ids之类的对象,最常见的操作,批量删除!同样,传递对象数组一样的道理,以对象为单位,比如VoStudent对象,包含两个域String name和int age,那么我们前端传JSON格式的字符串数组对象就好了。DEMO:var argument = '[{"age":"1","nam...
2020-04-01 16:09:50 10626
转载 kernel:NMI watchdog: BUG: soft lockup - CPU#6 stuck for 28s! CentOS7linux中内核被锁死
内核软死锁(soft lockup)bug原因分析Soft lockup名称解释:所谓,soft lockup就是说,这个bug没有让系统彻底死机,但是若干个进程(或者kernel thread)被锁死在了某个状态(一般在内核区域),很多情况下这个是由于内核锁的使用的问题。 Linux内核对于每一个cpu都有一个监控进程,在技术界这个叫做watchdo...
2019-10-15 21:29:14 1254
原创 hadoop连接hdfs报错Call From master/172.27.0.5 to master:8020 failed on connection exception: 问题的解决
今天启动完成之后hadoop,然后连接hdfs发现死活连接不上,然后网上看了一些信息,发现好多是讲防火墙关闭,网络端口修改成可以远程连接。然后试了之后发现都不行,然后检查了自己的hosts文件的设置和环境变量发现也没有问题。 最后把core-site.xml里设置路径的tmp文件夹、dfs文件夹、data文件夹、name文件夹、hadoop根目录logs文件夹等清空...
2019-10-03 22:22:32 4847
原创 hadoop job 日志的查看
hadoop执行完任务一般有几个地方可以查看:1、通过本地日志目录查看对应container日志文件,默认在hadoop的安装目录下的/logs/userlogs/:直接用查看文件命该地方的应用运行日志不一定最全,因为任务运行日志由每一个NM产生在本地,然后再给聚合到文件系统中(配置聚合日志功能)。2、使用命令查看:[hadoop@hadoop01 ~]$ yarn logs -ap...
2019-09-14 00:19:16 1861
原创 zookeeper启动报错:-bash: zkServer.sh: command not found命令未找到
在Linux中启动zookper启动报错已经进入了zookeeper的安装目录bin下了,执行zkServer.sh start 没有这个命令?有这个命令,但启动不了解决方案有两种1、到zookeeper的安装目录bin下,将命令换成 ./zkServer.sh start ;2、配置环境变量:vim /etc/profile ,添加:export ZOO_HOME=/...
2019-08-28 08:53:51 23500
转载 Linux更换jdk版本,java -version还是原来的版本问题
在服务器上更新了新的 jdk,也在 /etc/profile 中设置了新的 JAVA_HOME,并且 source /etc/profile然后使用java -version 和 javac -version 发现版本还是老版本,死活没有使用我新指定的。中间各种排查,这里就不废话了,下面是文件的根源和解决方法:使用which java 和 which javac 分别可以看到[ro...
2019-08-10 15:57:10 1043
转载 Centos 6.5 使用命令ssh localhost一直需要密码的问题
在Linux系统中,搭建hadoop集群,为了方便节点之间的互相连接,设置了免密连接(这里只是针对单机的设置)按照网上的教程在用户目录的.ssh下(/home/用户名/.ssh)执行以下命令:1.ssh-keygen-trsa-P"" 生成id_rsa id_rsa.pub (前提是ssh服务启动,可切换至root用户查看是否安装和启动)2.将id_rsa.pub追加到aut...
2019-08-02 19:45:06 574
原创 @Transactional注解下,循环取序列的值,但得到的值都相同的问题
1、原有的语句:出现循环取序列值相同<select id="getSEQByTableName" resultType="java.lang.Integer"> select nextval(#{tableName}) </select>2、问题原因:在同一事务下,mybatis二级缓存导致的!3、解决方法:在 mapper.xml 添加属性 useCa...
2019-08-01 10:02:43 1164
原创 PostgreSQL的数据备份与恢复(windows版本)
网上找了好久再加上自己的拼凑整理出了PostgreSQL的windows版本的备份和恢复。具体步骤如下: 一、备份:导出命令:pg_dump [OPTION]… [DBNAME]查看使用帮助:pg_dump –help主要参数解释:关键字 说明(默认值) -h, –host=HOSTNAME 数据库服务器IP -p, –port=PORT...
2019-07-30 09:38:42 1530
原创 PostgreSQL序列的创建和使用
1、创建和删除序列drop sequence if exists seq_rkdc;create sequence seq_rkdc start 1;--设置序列从1开始2、获取序列的值select nextval('seq_rkdc');3、重置序列值alter sequence seq_rkdc restart 1;以上语句使用的是PostgreSQL10...
2019-07-19 09:37:26 893
原创 Spring Boot 打包分为 war 格式,放到Tomcat下报错的解决方案
Spring Boot 打包分为 war 格式需要在pom.xml文件中设置<packaging>war</packaging>这个时候运行 mvn package 就会生成 war 包,然后放到 Tomcat 当中就能启动,但是我们单纯这样配置在 Tomcat 是不能成功运行的,会报错,需要通过编码指定 Tomcat 容器启动,修改启动类 DemoApplica...
2019-07-09 15:21:54 396
原创 PostgreSQL中date数据类型
今天遇到一个问题,发现往数据库中插入日期的时候,数据库里存储的信息不包含时分秒,然后测试了一下,如下结果 zhang=# create table date_test (c1 date);CREATE TABLEzhang=# insert into date_test values (to_date('2019-06-05 19:55:44' ,'yyyy-mm-dd hh24:mi:...
2019-06-17 16:02:03 10377 2
转载 SpringBoot项目的jar包在启动时选择的多环境配置以及加载顺序
今天找了一下SpringBoot项目的jar包在启动时可以用命令行的形式进行自主的选择加载哪个application.properties。现在记录一下命令为:java -jar app.jar --spring.profiles.active=dev在找的过程中发现两个对springBoot项目启动讲解比较详细的博客:SpringBoot在启动时的多环境配置以及加载顺序S...
2019-06-11 09:46:20 3140
原创 PostgreSQL实战(2)数据结构
1、数字类型列表:2、字符类型character varying(n)存储的是变长字符类型,n是一个正整数, 如果存储的字符串长度 超出 n则报错;如果存储的字符串长度比 n小, character varying(n)仅存储字符串的实际位数。character(n )存储定长字符,如果存储的字符串长度超出n则报错;如果存储的字符串长度比n小,则用空白填充。char_ leng...
2019-04-08 15:16:52 791
转载 从0到1搭建属于自己的服务器
转载一篇搭建服务器的教程云计算这个概念从提出到现在已经十多年了,在这些年里,云计算取得了飞速的发展与翻天覆地的变化,而云计算也给我们很多开发者带来了福音,比如早期的微信公众号开发,我们可以利用百度的 BAE 或者是新浪云 SAE 很快的完成微信公众号开发。百度的 BAE 也给我们提供了 app.conf 这种可以很快速完成路由过滤、自定义错误页面、设置过期时间等功能,而这些功能...
2019-04-06 18:03:18 15352
原创 kafka消费过程中失败,kafka重试补偿
今天遇到一个kafka的问题,在生产者发送消息之后,消费者会消费多次。在网上查询了很久,最终是在这个博客的引导下发现了问题:http://www.dalbll.com/Group/Topic/JAVA/5162,里面提到了kafka中的配置enable.auto.commit 是 true,这个会自动提交,然后是当我们的配置是自动提交的时候,消费者的消息投递保证有可能是at least o...
2019-03-25 20:55:18 30033
原创 ajax报错302重定向错误
今天遇到一个很奇怪的问题,在后端的LoginController中写了一个登出的方法logout,前端请求一直报错302重定向,但是同一个类的登录请求login()却没有问题,最后是在LoginController上加了一个@RequestMapping(value = "/login")方法,然后重新改了一下请求的地址,这次就可以了,这里记录一下,后面找找原因。...
2019-03-25 15:22:07 2695
原创 PostgreSQL实战(12)高级特性
1、WITH 查询先通过一个简单的 CTE 示例了解 WITH 查询,如下所示:WITH t as ( SELECT generate series(l,3) SELECT * FROM t; generate_series -------------------- 1 2 3(3 rows) 递归查询使用 CTE:WI...
2019-03-20 21:13:11 338
原创 PostgreSQL实战(1)允许远程连接
1、允许远程访问数据库在默认情况下, Pos tgreSQL 实例是不允许通过远程访问数据库的,如下所示:[postgres@pghostl ~]♀ netstat -nlt I grep 1921 Active Internet connections (onl y servers) Proto Recv Q Send Q Local Address Foreign Addres...
2019-03-20 19:06:38 579
原创 PostgreSQL的函数、存储过程和触发器
1、PostgreSQL 运算符的优先级:运算符 结合性 意思:: 类型转换(与 CAST 相同)[] 左 ...
2019-03-13 21:25:34 1991
原创 PostgreSQL 事务和锁
1、将数据改变分组到逻辑单元 PostgreSQL 中,这些改变由四个关键语法来控制:BEGIN 开始一个事务SAVEPOINT savepointname告诉服务器需要记住事务的当前状态。这个语法只能在 BEGIN之后且在 COMMIT或者 ROLLBACK 之前;也就是说,必须在一个事务中。COMMIT 表明所有的事务的元素都完成了,现在需要对所有的并行的事务和...
2019-03-12 19:23:40 823
原创 PostgreSQL 的数据定义
1、PostgreSQL 支持以下类型的数据: 布尔 字符 数字 时间(基于时钟) PostgreSQL 扩展类型 二进制大对象(BLOB) PostgreSQL 字符类型:定义 意义char 单个字符char(n) 一组长度固定为 n 的字符,长度不足用空白填充。如果你尝试存储一个过长的字符串,将会发生一 ...
2019-03-11 20:00:47 1501
原创 PostgreSQL之高级数据选择
1、聚合函数:聚集函数 描述count(*) 提供行的计数count(列名) 提供指定字段中值不是 NULL 的行的计数min(列名) 返回指定列中的最小值max(列名) 返回指定列中的最大值sum(列名) 返回指定列的值的合计总数avg(列名) 返回指定列的值的平均数2、存在子查询(Existence Subq...
2019-03-10 18:07:14 393
原创 PostgreSQL 的命令行psql和数据交互
一、psql1、一旦运行,psql 将通过包含我们当前连接到的数据库名并跟随“=>”符号的提示符提示输入命令。对于在当前数据库拥有全部权限的用户,提示符被替换为“=#".2、psql 的命令分为两种不同的类型:SQL 命令:我们可以输入任何 PostgreSQL 支持的 SQL 语句给 psql,然后它将执行它。内部命令:有一些 psql 命令用于执行 SQL 不直接执行的命令例如...
2019-03-07 20:00:37 919
转载 性能优化之道】每秒上万并发下的Spring Cloud参数优化实战
本文为转载文章,作者:中华石杉,十余年BAT架构经验,倾囊相授。作者微信公众号:石杉的架构笔记(ID:shishan100)一、写在前面相信不少朋友都在自己公司使用Spring Cloud框架来构建微服务架构,毕竟现在这是非常火的一门技术。如果只是用户量很少的传统IT系统,使用Spring Cloud可能还暴露不出什么问题。如果是较多用户量,高峰每秒高达...
2019-03-06 14:38:37 302
原创 PostgreSQL简单使用
1、在windows中创建用户和数据库: 首先创建用户template1=# CREATE USER rick WITH CREATEDB PASSWORD 'apress4789';CREATE USERtemplate1=#使用你新建的用户连接到数据库:template1=# \c template1 rickPassword:template1=#是建立 b...
2019-03-05 19:55:11 402
转载 记录一次MySQL两千万数据的大表优化解决过程,提供三种解决方案
问题概述使用阿里云rds for MySQL数据库(就是MySQL5.6版本),有个用户上网记录表6个月的数据量近2000万,保留最近一年的数据量达到4000万,查询速度极慢,日常卡死。严重影响业务。问题前提:老系统,当时设计系统的人大概是大学没毕业,表设计和sql语句写的不仅仅是垃圾,简直无法直视。原开发人员都已离职,到我来维护,这就是传说中的维护不了就跑路,然后我就是掉坑的那个!!!...
2019-03-05 09:40:32 254
原创 PostgreSQL安装
windows安装:先下载好10.6版本的的pg安装包。与安装其它软件一样,没有什么特别之处,选择安装目录等下一步就好。选择要安装的位置。 默认情况下,它安装在程序文件夹(C:\Program File)中。选择一个目录来存储数据。 默认情况下,它存储在PostgreSQL安装目录的data目录下,这里使用默认的就行 -设置将要求您输入密码,因此请您输入密码,这里我输入的密码...
2019-03-04 20:44:36 435
转载 navicat 的一些快捷键
1.ctrl+q 打开查询窗口2.ctrl+/ 注释sql语句3.ctrl+shift +/解除注释4.ctrl+r运行查询窗口的sql语句5.ctrl+shift+r 只运行选中的sql语句6.F6打开一个mysql命令行窗口7.ctrl+l删除一行8.ct...
2019-03-04 11:09:27 216
原创 PostgreSQL初识
1、PostgreSQL是一个包含关系模型和支持 SQL 标准查询语言的 DBMS(数据库管理系统)2、PostgreSQL 包含以下功能:事务、子查询、视图、外键参照完整性、复杂的锁、用户自定义类型、继承、规则、多版本并发控制。3、设计表的基本规则: 规则一:将数据拆分成列 规则二:有一个唯一标记来标识每行 规则三:移除重复信息 规则四:正确...
2019-03-03 16:49:07 196
TA创建的收藏夹 TA关注的收藏夹
TA关注的人