- 博客(91)
- 资源 (24)
- 收藏
- 关注
原创 数据库的非必要但很有用的规范
尽量合并索引,索引加快查询,但会影响写入性能,组合索引原则是过滤性越好的字段越靠前例如key(a)和key(a,b)存在,那么key(a)可以删除,对于select ..from tablename where a =123;2 尽量不要使用default null ,所有字段尽可能都设置not null 并且设置默认值,索引不会包含null值,影响索引的统计信息,影响优化器判断,复合索引中只要有一列含有null值,那么这一列对于此复合索引就是无效的。ipv6地址,找dba商量决定。
2023-04-20 15:58:26 487
原创 容器内无tcpdump,如何在宿主机上抓容器的包
如果需要抓包的容器里,没有安装tcpdump命令,则可在容器所在宿主机上,使用nsenter命令切换网络命名空间后,使用宿主机上的tcpdump命令,对容器进行抓包分析。
2023-04-19 15:58:46 877
原创 CentOs7本地修改本地镜像源
1下载镜像文件,并且上传到/home目录下2挂在镜像文件mount /home/CentOS-7-x86_64-DVD-1908.iso /mnt/cdrom3编辑repo文件cd /etc/yum.repos.d/在编辑文件之前,把/etc/yum.repos.d/下的所有文件备份到另一个目录,或者修改所有.repo为后缀文件为repo.1,只要不是repo就可以。接下来就可以编辑新的文件了。vi CentOS-Base.repo内容为[CentOs7]name=Cen
2022-05-12 15:48:09 3189
原创 人大金仓插入特殊字符问题,报错bad sql :syntax error at or near,sql中某个字符附近有问题。
在insert into 的时候,报错语法错误,某个字符附近,这个时候,你就要看看是不是有特殊字符,我的sql中存在单引号这样的字符,报的错。在SQL中,一个单引号由另一个单引号转义,只要用'单引号转义就可以了,我在postgersql,dm,kingbase都测试过,可以解决问题。(psycopg2.errors.SyntaxError) syntax error at or near "\""Details": "Example: Replace \'\'John\'\'s...inser
2022-04-29 11:00:43 5070
原创 人大金仓数据库,无效的oid类型输入语法
1问题:查询表中数据如下(select * from XXX limit 1;):表中有一个字段是UID,我用这个字段查询的时候报错,无效的oid类型输入语法:"4f609ce6-80b8-46e3-a7b5-588c985a40ea"(select * from isolation where UID = '4f609ce6-80b8-46e3-a7b5-588c985a40ea'; )报此错误的原因是UID是数据库中的关键字。查询的时候字段名为UID时,被认为是关键字了,设计表的
2022-04-29 10:41:48 1648
原创 JAVA服务CPU高系统卡死几种场景
1 系统流量大 ,请求多2 系统有机酸性任务 ,消耗CPU3 HashMap非线程安全,并发访问4 开发人员代码存在问题,例如写while循环条件判断bug导致死循环,sql索引未命中导致大表全表扫描5 系统存在对象泄漏,这个问题不一定出现在内存溢出错误,当java堆内存设置过大,无法回收对象过多,导致开启过多线程垃圾回收线程,始终执行gc任务,导致cpu很高等...
2022-02-07 17:11:16 1400
原创 项目分支管理版本管理心得
基线分支管理基线所有项目主分支均为master分支,不允许直接提交代码分支命名以当期迭代名作为关键字,以CRM迭代6为例,开发分支为crm6-dev,测试分支为crm6-alpha迭代测试完成后,测试分支合并到master分支,进行发布删除已合并的开发分支与测试分支线上紧急问题修复,需要从master切出hotfix分支,在hotfix分支上修改,测试通过后merge request合入master发布hotfix分支合并完成后需要删除基线版本管理master分支的pom文件版本
2020-12-11 11:23:06 941 2
原创 ELk + kafka + filebeat日志系统搭建
一 日志系统架构图(简易版):二、elk安装:可以参考网址:https://www.iyunv.com/thread-443374-1-1.html2.1 配置es解压文件 1 tar zxvf elasticsearch-6.2.4.tar.gz 由于es不能用root账户启动,所以需要添加一个非root账户 1 useradd es 修改es文件夹的权限 1
2020-11-09 15:35:23 1253
原创 java下载xls填充下拉选动态数据
1下载模版时,平台类目需要填充动态数据也就是平台维护的类目2创建一个sheet,命名数据A,之后将数据A隐藏3设置数据有效性,下拉选和数据A(sheet)关联备注:如果不是动态数据,可以直接设置数据有效性,忽略第4步4部分实现代码如下:public String exportTemplate() { //根据店获取平台类目 ContractCateQueryRequest cateQueryRequest = new ContractCateQ
2020-11-06 16:27:23 377 1
原创 SpringCloud Stream MQ生产和消费同应用造成的同步问题
我们项目统计模块导出的时候为了达到异步的效果使用了mq来解决,可是producer和consumer是同个应用也就是都是处在一个应用中,之前因为数据少就没有注意异步的效果,改造之后我们模拟了67w的数据量来做压力测试,发现点击导出之后界面一直处于等待状态不是直接返回前端的,同步了?说之前也遇到过这种状态,重新启动下mq服务就行了,感觉不太像,所以特意修改了下消费端的代码来测试。代码如下发现确实是同步,一直卡在消费端,等到程序完成前端才有返回,发现确实是这个问题加载首先我们在springb.
2020-11-06 15:34:38 1221 2
原创 UML插件
PlantUML二.PlantUML二. 安装1.idea安装PlantUML插件:PlantUML_integration2.安装Graphviz,并配置环境变量,否则PlantUML无法渲染并输出图形,支持windows,linux,mac官网下载链接:http://www.graphviz.org/download/三. 使用创建puml文件,就可以随便书写了,如果语法正确,并且以上两步正确执行,就可以实时显示UML图形 PlantUML提供的图形化语言非常丰...
2020-11-06 14:47:32 636
原创 限流的一些解决方案
什么是限流?字面的意思就是限制流量,为啥要限流呢?限流在高并发场景中经常用到的自我保护的手段,不如你系统只能维持500并发,突然有一万人的访问,如果不做限制,你的系统就会崩溃,限流是系统健壮性保护的一种手段,也可以防止恶意的攻击。限流算法限流的算法有很多,常用的有简单粗暴的计数器、漏斗算法、令牌桶算法。计数器所谓计数器就是指单位时间内允许通过的访问量,一般我们会设置1s内允许通过请求量。比如限流qps为100,算法的实现思路就是从第一个请求进来开始计时,在接下去的1s内,每来一个请求,就
2020-11-06 14:07:58 1747
原创 防重复提交(分布式解决方案)
在做项目的时候,点击注册到跳转有1s的间隙,可以多次点击注册按钮,且都能注册成功,所以我们要优化,前后端,都要防重复提交,前端方案大体就是点击后置灰或不可用或隐藏,后端可以在数据库层加锁,因为性能等一些原因效果不理想。所以我们的项目采用注解+AOP+分布式锁实现防重复提交,下面是伪代码:package com.xxx.xxx.resolver;import com.xxx.xxx.common.exception.SbcRuntimeException;import com.xxx.x...
2020-08-06 16:41:47 1357
原创 canal简介
阿里开源canal简介canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB)。1.背景阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger(触发器)的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此开启了一段新纪
2020-07-15 12:04:59 18134
原创 CanalParseException: column size is not match for table:xm_search.user,5 vs 4
这段异常中的5是实际的数据列数,4是canal中存储的metadata中该表的列,在实际中发现数据确实为5,也就是切换之后canal没有获取到真正的最新的metadata。理解canal tsdb(时序表结构方案设计)的功能需要先看懂官方对tsdb的介绍和实现https://github.com/alibaba/canal/wiki/TableMetaTSDB问题:表结构一致性问题方案:持久化存储的思考本地嵌入式实现(H2):提供最小化的依赖,完成时序表结构管理的能力。基于磁盘的模式,.
2020-07-15 12:02:02 2028
原创 MySQL主从数据库配置
MySQL主从数据库配置win8.1下的mysql5.6作为主服务器,ip地址为:192.168.1.8,Ubuntu15.04(virtualbox虚拟机,采用桥连模式,虚拟机直接获取实体机局域网IP)下mysql5.6作为从服务器,ip地址为:192.168.1.7win8.1下mysql5.6需要配置C:\ProgramData\MySQL\MySQLServer5.6\my.ini文件,内容如下:log-bin=C:/ProgramData/MySQL/MySQLServer5...
2020-06-16 15:14:59 183
原创 utf8_general_cs和utf8_bin
mysql中字符集和排序规则说明数据库需要适应各种语言和字符就需要支持不同的字符集(Character Set),每种字符集也有各自的排序规则(Collation)。一.字符集字符集,即用于定义字符在数据库中的编码的集合。 常见的字符集:utf-8 gbk 等。二.排序规则数据库中的排序规则用来定义字符在进行排序和比较的时候的一种规则。 常见的如下:(1) utf8_general_cs 和 utf8_general_ci (后缀"_cs"或者"_ci...
2020-06-16 15:06:42 997
原创 Windows下Mysql5.7开启binlog步骤及注意事项
MySQL的binlog日志binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。 一般来说开启二进制日志大概会有1%的性能损耗(参见MySQL官方中文手册 5.1.24版)。二进制有两个最重要的使用场景: 其一:MySQL Replicat...
2020-06-16 15:05:09 2095 2
原创 IDEA/Webstorm常用快捷键
下面是IDEA/Webstorm的一些常用快捷键:ctrl + shift + n: 打开工程中的文件,目的是打开当前工程下任意目录的文件。ctrl + j: 输出模板ctrl + b: 跳到变量申明处ctrl + alt + T: 围绕包裹代码(包括zencoding的Wrap with Abbreviation)ctrl + []: 匹配 {}[]ctrl + F12:...
2020-01-15 14:29:02 468
原创 bean实体转json字符串工具
每当用postman测试接口的时候,参数都要传json字符串,比较短的。自己手写就ok了,有点比较长,自己写就比较麻烦了。所以我们需要能把pojo转成json工具,恰巧idea中就有这样的工具,如何安装pojo to json .File - > Settings - > Plugins ,搜索 POJO to Json如上图,我这个已经安装过了。没安装过的是insta...
2020-01-06 11:11:03 3180 1
翻译 什么是分布式事务?
什么是事务事务是关系型数据库对数据的一系列操作的集合,他可以从以下4个特征是否达到来描述原子性原子性要求,事务是一个不可分割的执行单元,事务中的所有操作要么全都执行,要么全都不执行。一致性一致性要求,事务在开始前和结束后,数据库的完整性约束没有被破坏。隔离性事务的执行是相互独立的,它们不会相互干扰,一个事务不会看到另一个正在运行过程中的事务的数据。持久性持...
2020-01-06 10:43:55 1584
原创 分布式事务解决方案(二)
分布式事务解决方案如何解决分布式一致性问题1.查询模式:任何事务操作都需要提供一个查询接口,用来向外部输出操作执行的状态。事务操作的使用方可以通过查询接口得知事务操作执行的状态,然后根据不同的状态来做不同的处理操作。2.补偿模式:通过查询模式,可以知道事务操作的状态,如果操作处于错误的状态,就需要对其未完成的子操作进行修复,来让系统达到一致。这种后期通过努力让系统最终达到一致...
2020-01-03 11:57:15 862
原创 分布式事务解决方案(一)
初见分布式系统分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。一个标准的分布式系统应该具有以下主要特征:分布性:分布式系统中的多台计算机之间在空间位置上可以随意分布,系统中的多台计算机之间没有主、从之分,即没有控制整个系统的主机,也没有受控的从机。透明性:系统资源被所有计算机共享。每台计算机的用户不仅可以使用本机的资源...
2020-01-03 10:59:36 404
原创 程序员要不要去外包外派公司
总结一下外包外派公司的特点,要不要去,你自然就知道了。 1.不管是外包还是外派,你的工作地点都不会固定的。都会去甲方的公司去工作,这个项目完事了,你就换到另一个甲方,另一个工作地方了。需要出差,需要驻场等等,工作场所非常不固定。2.面试的时候各种承诺,转正的时候,各种克扣 。3.五险一金不会给你按照基本工资交,而是按照最低工资标准交。4.技术方面,可能会让你弄很多你不熟悉的技...
2019-12-20 17:35:49 20641 3
原创 Navicat中mongo按照条件简单查询修改排序
用Navicat Premium 连接mongo后,想要做简单的查询和排序,数据集合名称叫trade,结构 ,文档结构如下:{ "_id": "O201908221531130339", "_class": "com.wanmi.sbc.order.trade.model.root.Trade", "buyer": { "_id": "8a9bc7...
2019-12-19 14:57:11 2516
原创 mvn dependencytree的用法
查看jar包的间接依赖1.如果发现某个jar包,自己的pom中并没有定义,想看一下是被哪个jar包间接引用的,两种方法 (1)用mvn dependency:tree>temp/tree.txt,直接输出到当前项目下,然后在idea中打开,搜索要找的jar包名字即可.这里的"+-"和"\-"并没有什么意义,只是为了让分级看起来更直观参考:https://stackov...
2019-12-11 17:55:23 291
原创 程序员要不要懂底层原理
我在做编程的时候,还是一个地道的门外汉,就像一个刚出生的孩子,跟着大人咿呀呀的学语,也不知道是什么,做什么用的,也不知道能不能换种方式实现,总结起来就是一问啥都不知道,跟着学,还是弄不出个一样来。这时候,我们的老师或者学长就说会用就行,先不管是啥东西。这东西怎么个道理,学开车一样,这是油门,踩油门就走路,这是刹车,踩刹车就停了,学习的第一个阶段,大体就是接受知识,车也学了,也能开了,代码也学了...
2019-12-11 17:07:48 1609
原创 Linux 常用命令
Linux系统查看硬件信息命令总结lscpulscpu命令能够查看 CPU 和处理单元的信息,该命令没有任何其他选项或者别的功能。lspcilspci可以用来列出所有的 PCI 总线,还有与 PCI 总线相连的设备的详细信息,比如 VGA 适配器、显卡、网络适配器、usb 端口、SATA 控制器等。lspci可以通过运行下面的命令来过滤出特定设备的信息,例如关于显卡信息:...
2019-12-11 15:46:26 359
原创 服务启动失败以及线上问题排查常用命令
前些天,部署服务的时候,运行./startup.sh,显示服务已启动,但是查看日志发现端口已经被占用,java.net.BindException: 地址已在使用 at sun.nio.ch.Net.bind0(Native Method) at sun.nio.ch.Net.bind(Net.java:433) at sun.nio.ch.Net.bind(Net.java:425)...
2019-12-11 10:01:38 956
原创 SQL开发规范
1、数据库建模遵循9个基本原则 所有表必须要有独立于业务的自增主键 统一命名为id,类型为bigint;所有表必须要有如下系统字段, Name Code DataType Length NotNull Default 主键 id ...
2019-12-05 20:09:23 1369
spring+zk+dubbo搭建环境
2017-11-05
jquery实现倒计时和取消倒计时
2017-05-24
pushlet获取参数修改过的jar包
2017-05-02
Mybatis自动生成代码插件
2016-06-07
tomcat源码和所需调试jar包
2016-01-07
tomcat源码和调试jar包
2016-01-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人