自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

菜鸟笔记

容易实现的,它不是梦想;轻言放弃的,它不是诺言;要想成功,得敢于挑战;有了梦想,才有美好明天。

  • 博客(305)
  • 资源 (37)
  • 收藏
  • 关注

原创 分布式事务简介

分布式事务是指跨越多个数据库或服务的一系列操作,这些数据库或服务可能分布在网络的不同节点上,它们共同组成一个完整的逻辑工作单元,必须满足事务的ACID特性(Atomicity, Consistency, Isolation, Durability),即原子性、一致性、隔离性和持久性。原子性:分布式事务中的所有操作作为一个整体,要么全部成功,要么全部失败,不允许部分成功部分失败。一致性:事务完成后,无论事务内部包含多少步骤,都会确保系统从一个有效状态转换到另一个有效状态,保持数据的完整性。隔离性。

2024-03-02 09:19:10 315

原创 mybatis 查询返回Map<String,Object> 类型

mybatis 查询返回Map<String,Object> 类型,平时没太注意怎么用,今天又遇到了总结记录一下,方便以后处理此类问题。Mapper.java中的方法:@MapKey("userId")Map<String,UserInfo> personalInfoByUserIds(List<String> list);mapper.xml文件中的配置:<select id="personalInfoByUserIds" resul

2022-03-25 16:19:28 4408 3

原创 Zabbix监控通过企业微信报警

直接上代码通过Python脚本实现:#!/usr/bin/python#_*_coding:utf-8 _*_import requests,sys,jsonimport urllib3import osimport logginglogging.basicConfig(level = logging.DEBUG, format='%(asctime)s, %(filename)s, %(levelname)s, %(message)s', datefmt='%a, %d %b

2022-02-25 16:19:18 1800

原创 Seata入门demo

通过一段时间的Seata学习,以及对Seata的理解记录下来。执行逻辑:1、每个项目中的相同配置seata相关文件,暂时使用file作为配置中心和注册中心,数据存储使用数据库。file.conf## transaction log store, only used in seata-serverstore { ## store mode: file、db、redis mode = "db" ## file store property file {...

2021-11-16 23:01:15 1826

原创 seata介绍

1、AT模式1.1 前提1.2 整体机制1.3 写隔离1.4 读隔离2、工作机制2.1 一阶段2.2 二阶段——回滚2.3 二阶段——提交Seata 是一款开源的分布式事务解决方案,Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式。1、AT模式1.1 前提基于支持本地 ACID 事务的关系型数据库。 Java 应用,通过 JDBC 访问数据库。1.2 整体机制两阶段提交协议的演变:一阶段:业务数据和回滚日志记录在同

2021-10-09 18:06:03 491

原创 redis设计与实现:简单动态字符串SDS

1、SDS定义SDS遵循C字符串以空字符结尾的惯例,保存空字符的一字节空间不计算在SDS的len属性里面。空字符对于SDS使用者是透明的,遵循空字符结尾的好处是SDS可以直接重用一部分C字符串函数库里面的函数。2、SDS和C字符串的区别1)常数复杂度获取字符串长度:C语言获取一个字符串的长度需要遍历整个字符串时间复杂度为O(N),而SDS在属性len中记录了字符串长度,获取字符串长度的时间复杂度为O(1)。2)杜绝缓冲区溢出:C字符串在执行拼接字符串时,如果长度不够...

2020-05-19 11:25:09 285

原创 机器学习:KNN用java代码实现

KNN算法:使用欧式距离计算方法,从源对象集合中选取距离目标节点最近的K个节点,判断K个节点所属类别最多的节点,即为目标节点所属的类别。此处只是简单的实现KNN算法的过程,其中有一些优化的地方不再修改,还请小伙伴自行优化。KNN的model类:package com.spring5.bigdata.knn;/** * @author yinxf * @date 2020-05-16 */public class KnnNode { private float x; //X坐

2020-05-19 11:10:50 1063

原创 如何设计一个秒杀系统总结

通过学习"如何设计一个秒杀系统"课程,总结秒杀相关的一些重要问题。1.秒杀系统主要解决两个问题,一个是并发读,一个是并发写。 并发读的优化就是尽量减少客户端到服务端来读数据,或者读更少的数据;并发写处理原则也一样,在数据库独立出一个库,做特殊处理。2.秒杀的整体架构包括稳、准、快三个关键字: 稳:即流量符合预期时整体架构要满足高可用,就算超出预期也不能掉链子...

2019-11-13 15:45:03 4740 3

原创 org.springframework.beans.factory.NoUniqueBeanDefinitionException导致错误原因之一:spring事物

项目运行过程中报错报错信息如下:org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [org.springframework.transaction.PlatformTransactionManager] is defined: expected sing...

2019-02-19 15:30:44 3997 4

原创 MySQL中不等号索引问题

最近在使用MySQL中的一个小总结。在MySQL中,不等号&lt;&gt;在主键字段和唯一索引字段中会走索引,在普通索引的字段上不会走索引。 1.当不等号&lt;&gt;作用在普通索引字段上 表信息:使用explain查看普通索引字段,没有走索引2.当不等号&lt;&gt;作用在主键索引字段上 使用explain查看主键索引字段,走索引。 3...

2019-01-31 17:22:06 14897 3

转载 支付对账系统怎么设计?

支付对账系统是整个支付清结算体系中具体基础性意义的一个环节,是确保支付平台与各类第三方支付渠道数据一致性的关键系统,是商户资金结算、资金划拨、资金报表等逻辑准确运行的重要前提。 支付对账涉及账单下载处理、核心对账、差错处理等诸多细节逻辑,同时根据交易量大小的不同,需要处理的数据量规模也不尽相同,需要在数据处理时进行一些比较细致地思考。在本文中,作者以单渠道日成功交易订单量300W左右规模...

2019-01-15 13:13:43 2888 2

原创 多级缓存实例

一个使用了Redis集群和其他多种缓存技术的应用系统架构。  首先用户的请求被负载均衡服务器分发到Nginx上,此处常见的负载均衡算法有轮询和一致性哈希,轮训可以使服务器的请求更加均衡,而一致性哈希可以提高Nginx应用的缓存命中率。 接着,Nginx服务器读取本地缓存,实现本地缓存的方式可以是lua shared dict,或者面向磁盘或内存的Nginx proxy ca...

2019-01-15 13:06:06 2126 3

转载 互联网账户系统如何设计(下篇)

导读 在上一篇文章中(互联网账户系统如何设计(上篇)?)我们通过场景举例的方式,讨论了一套相对通用的互联网业务账户系统,从业务模型上应该如何定义。那么除了从业务模型上进行定义外,在具体系统实现上又该如何设计?又有哪些需要注意的地方呢?在本篇内容中小码农就和大家一起讨论下账户系统的实现细节,希望可以和大家一起交流进步。 事实上账户系统的业务逻辑是比较复杂的,对数据的一致性要求很高,特...

2019-01-04 11:13:55 1137

转载 互联网账户系统如何设计(上篇)

在很多互联网公司业务发展的早期,业务模式比较单一的情况下,涉及用户账户资金交易相关的逻辑也比较简单,但是随着公司业务模式的不断创新及类型的多元化发展,会渐渐发现现有系统账户逻辑越来越雍肿,不仅难以支持新业务的扩张,对现有业务的支持也适配困难,最终导致新业务系统不得不重新搭建自己的业务账户逻辑,造成重复建设不说,也往往给后续的财务资金核算造成混乱。以某互联网A租车公司的业务发展路径为例?...

2019-01-04 11:10:15 2207

原创 Centos7中MySQL的安装并设置开机启动

CentOS 7不带Mysql数据库了,默认的数据库是MariaDB(Mysql的一个分支)。可以按照以下步骤手动安装Mysql数据库。1.首先检查系统中是否安装有mysqlrpm -qa | grep mysql如果返回空值,说明没有安装MySQL2.下载mysql的repo源 如果提示没有wget命令,可以使用  yum install -y wget安装wge...

2018-12-27 00:05:51 18542 2

原创 oracle数据库查看表空间默认大小及使用情况总结

oracle查询数据库的默认表空间情况操作步骤如下: 1. 查询用户对应的表空间,我们可以看到针对不同的数据库用户Oracleselect username, default_tablespace, temporary_tablespace from dba_users; 2. 查询用户的对应的数据文件,以及数据文件大小select tablespace_name, f...

2018-12-10 13:10:04 10763

原创 JVM内存模型介绍

 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间。  java虚拟机所管理的内存将会包括以下几个运行时数据区域,有程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。以下将分别进行介绍。 一、程序计数器       程序计数器是一块较小的内存空间,可以看做是当前线程所执行的...

2018-08-21 16:03:03 384

转载 BTree和B+Tree详解

B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查找树、平衡二叉树(AVLTree)和平衡多路查找树(B-Tree),B+树即由这些树逐步优化而来。二叉查找树二叉树具有以下性质:左子树的键值小于根的键值,右子树的键值大...

2018-08-08 17:00:42 49340 11

原创 Java nio完成网络通信(三)

使用Java nio实现网络通信。以下是用nio实现简单网络通信的demo/** * 使用NIO完成网络通信 * *1.通道channel:负责连接 * java.nio.channels.Channel * |--selectableChannel * |--socketchannel * |--serverSocketChannel * ...

2018-08-06 10:38:16 637

原创 java NIO中的channel、分散、聚集(二)

Java NIO中的通道(channel)介绍、通道的实现方式、直接缓冲区和非直接缓冲区、nio中的分散聚集。/** *  *  * 一.通道(channel):用于源节点和目标节点的连接。在Java nio中负责数据的传输, *         channel本身不存储数据,因此需要配合缓冲区进行传输。 *  *     写数据到Buffer有两种方式:        从...

2018-08-06 10:33:06 7516

原创 java nio中几个重要的属性(一)

最近学习一下Java NIO非阻塞式IO,下面是NIO中几个重要的属性和方法,方便大家理解/** * nio 非阻塞IO * nio核心 Channel,Buffer 和 Selector  *  * 1.缓冲区buffer:在nio中负责数据的存取,缓冲区就是数据,用于存储不同的数据类型 *  * 数据类型不同(boolean除外),提供对应的缓冲区,其实就是数组 * Byt...

2018-08-03 15:50:24 811

原创 centos7安装rabbitmq操作步骤

 本文使用的是Centos7一、编译安装方式1.依赖环境的安装-如果需要用编译安装erlang语言环境,需要安装C++编译。yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC unixODBC-devel httpd python-simplejson2.er...

2018-07-26 17:08:15 11406 6

原创 Java 排序算法冒泡排序、插入排序、选择排序、奇偶排序、并行奇偶排序

本章将介绍一些常用的排序算法,有常用的串行排序,如冒泡排序、选择排序、插入排序、奇偶排序;还有对奇偶排序的并行实现方法。一、串行排序直接上代码public static void main(String[] args) { int[] array = {9,8,23,34,65,78,3,46,24}; // sortBubble(array); //冒泡 // selectSorts(...

2018-06-27 11:10:42 571 8

原创 mysql实用总结

MySQL 5.7版本中实用功能总结,有些功能低版本也可以使用。1.GROUP_CONCAT(fieldName)将分组中每个字段的值显示出来SQL : SELECT t.user_id,GROUP_CONCAT(bank_name) from account t GROUP BY t.user_id查询结果如下:2.WITH ROLLUP在所有查询出的分组记录之后增加一条记录,该记录计算查询出的...

2018-06-11 10:58:57 469

原创 用mybatis往oracle批量插入数据报错java.lang.StackOverflowError

往oracle中批量插入10000条数据,报错如下java.lang.StackOverflowError at java.util.HashMap.hash(HashMap.java:362) at java.util.HashMap.getEntry(HashMap.java:462) at java.util.HashMap.get(HashMap.java:417) at com.alib...

2018-06-07 10:22:07 4313 4

原创 mybatis 缓存总结以及遇到的问题

一级缓存MyBatis 默认开启了一级缓存,一级缓存是在SqlSession 层面进行缓存的。即,同一个SqlSession ,多次调用同一个Mapper和同一个方法的同一个参数,只会进行一次数据库查询,然后把数据缓存到缓冲中,以后直接先从缓存中取出数据,不会直接去查数据库。​ 但是不同的SqlSession对象,因为不同的SqlSession都是相互隔离的,所以相同的Mapper、参数和方法,他...

2018-06-01 15:05:47 9006 1

转载 数据库事务的四大特性以及事务的隔离级别

本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。  如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity)  原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一致性(Consi...

2018-03-02 14:20:48 267

转载 详解java类的生命周期

引言        最近有位细心的朋友在阅读笔者的文章时,对java类的生命周期问题有一些疑惑,笔者打开百度搜了一下相关的问题,看到网上的资料很少有把这个问题讲明白的,主要是因为目前国内java方面的教材大多只是告诉你“怎样做”,但至于“为什么这样做”却不多说,所以造成大家在基础和原理方面的知识比较匮乏,所以笔者今天就斗胆来讲一下这个问题,权当抛砖引玉,希望对在这个问题上有疑惑的朋友有所帮

2018-01-26 11:27:23 493

原创 rocketmq初学者入门

最近由于工作需要开始学习消息中间件rocketmq首先,介绍一下rocketmq的安装。1.解压rocketmq2.新解压的rocketmq是没有执行权限的,需要修改文件权限。3.修改runbroker.sh和runserver.sh的内存设置,因为这两个文件启动时默认内存比较大。具体根据电脑配置进行修改。两个文件的修改结果相同,结果如下4.后台

2018-01-21 22:04:11 8364 4

转载 互联网支付系统整体架构详解

互联网支付系统整体架构详解在互联网产品运营中,有很多小伙伴或许会遇到这样的困扰:产品好不容易推出来了,流量成本节节攀升,用户的活跃度、留存度却持续下降。因此在瞬息万变的互联网产品环境中,需要研发接入支付系统来加入商业行为的闭环,支付系统能够帮助企业更好地实现商业化,利用那些为用户而生的支付体系产品,实现用户积累、商业变现。对于支付系统

2018-01-09 14:37:54 6781

原创 20个非常有用的Java程序片段

先收藏了,以后应该用的到。下面是20个非常有用的Java程序片段,希望能对你有用。1. 字符串有整型的相互转换String a = String.valueOf(2); //integer to numeric string int i = Integer.parseInt(a); //numeric string to an int2. 向文件末尾添加内容

2017-12-26 09:08:20 379

原创 二维码的两种生成方法(前端js生成,后端java生成)

最近项目中需要开发生成二维码的功能,方便使用手机支付,在网上查了一些资料,把用过的方法进行总结。1.前端js生成二维码demo下载:http://download.csdn.net/download/yin767833376/10165335html页面代码:                 Render in tableRend

2017-12-20 10:32:39 49170 7

转载 大规模分布式应用之海量数据和高并发解决方案总结一二

一、网站应用背景开发一个网站的应用程序,当用户规模比较小的时候,使用简单的:一台应用服务器+一台数据库服务器+一台文件服务器,这样的话完全可以解决一部分问题,也可以通过堆硬件的方式来提高网站应用的访问性能,当然,也要考虑成本的问题。当问题的规模在经济条件下通过堆硬件的方式解决不了的时候,我们应该通过其他的思路去解决问题,互联网发展至今,已经提供了很多成熟的解决方案,但并不是都具有适

2017-12-19 10:53:55 560

原创 曾经的王者Dubbo低调重启维护 焕发新春的它要走向何处

几个月前,开源社区发生了一件大事,那个曾经风靡国内Java开发者的开源RPC服务框架——Dubbo,低调宣布将重新得到官方维护与支持。对于Dubbo框架,大部分Java开发者都不会感到陌生,它自诞生起就备受关注。2011年末,阿里巴巴在GitHub上开源了基于Java的分布式服务治理框架Dubbo,之后它成为了国内该类开源项目的佼佼者,许多开发者对其表示青睐。同时,先后有不少公司在

2017-12-13 11:47:09 2514

转载 @Transactional事务几点注意

这里面有几点需要大家留意:A. 一个功能是否要事务,必须纳入设计、编码考虑。不能仅仅完成了基本功能就ok。B. 如果加了事务,必须做好开发环境测试(测试环境也尽量触发异常、测试回滚),确保事务生效。C. 以下列了事务使用过程的注意事项,请大家留意。1.不要在接口上声明@Transactional ,而要在具体类的方法上使用 @Transactional 注解,否则注

2017-10-24 14:42:20 1280

转载 如何通过Mysql的二进制日志恢复数据库数据

经常有网站管理员因为各种原因和操作,导致网站数据误删,而且又没有做网站备份,结果不知所措,甚至给网站运营和盈利带来负面影响。所以本文我们将和大家一起分享学习下如何通过Mysql的二机制日志(binlog)来恢复数据。 系统环境:操作系统:CentOS 6.5 X64  (虚拟机);WEB服务:PHP+Mysql+apache;网站:为方便,直接在本地搭建一个DEMO站点;

2017-09-30 16:24:23 613

转载 ireport制作小技巧

首先ireport中大小写问题:1、parameter中如果小写,引用也小写2、$F{},一般都大写3、子报表中引用父报表中查询出来的值时,只需要小写即可,即在子报表的parameter中只需要小写一、iReport 中获取系统当前时间1、选择TextField类型为 Java.util.Date,选择TextField的Expressi

2017-09-08 11:45:45 847

转载 使用存储过程将Oracle数据批量导出为多个csv文件

数据库有如下表结构:aaa (         obj_id          NUMBER,  (Primary Key)        obj_name   VARCHAR2(80),        obj_size   NUMBER NOT NULL        obj_time       NUMBER NOT NULL     

2017-08-30 16:46:19 3639

转载 Spring注解详解

概述注释配置相对于 XML 配置具有很多的优势:它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作。如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 PO 的属性名、类型等信息,如果关系表字段和 PO 属性名、类型都一致,您甚至无需编写任务属性映射信息——因为这些信息都可以通过 Java 反射机制获取。注释和 Java 代码位于一个文件中,

2017-08-29 16:49:42 353

转载 在线支付设计

探讨在线支付平台的实现1.1        支付平台的接入1.2        支付请求、支付结果返回的传输安全1.3        支付站点、商户站点、银行网关的交互1.4        支付状态不同步的处理 1.1   支付平台的接入支付平台可以避免商户站点去实现多种支付方式的对接,而只需要与支付平台对接。商户站点接入支付平台,支付平台接

2017-08-24 17:25:22 679

信息系统项目管理师历年真题

2005年到2016年上半年最新的信息系统项目管理师真题,包括试题和答案

2016-11-23

软件设计师历年真题全汇总

2004-2015年历年软件设计师真题汇总

2016-11-03

软考试题及答案

本文件中包括5年的软考试题和答案

2016-10-12

java生成pdf文件

java生成PDF文件jar

2016-10-08

tableExport.js

用于表格中直接导出数据,可以下载各种格式

2016-08-15

postman插件

在谷歌浏览器中安装postman插件调试

2016-08-11

bootstrap tableDnD

boostrap table 父子表、 行调序:通过拖动调节行顺序 列调序:通过拖动调节列顺序

2016-08-08

数据库创建各城市脚本sql

MySQL,oracle、sqlserver等数据库创建各城市的sql脚本总结

2016-08-03

ztree树组织机构树

ztree树,可以用于组织机构树的显示等多种树机构

2016-08-03

bootstrap用户手册

bootstrap基础知识学习

2016-08-03

windows redis版

目前最新的Windows版 redis

2016-06-21

redis windows版

windows版的redis安装

2016-06-21

spring3.2.4

spring 3.2.4的所有jar文件

2016-05-15

android和webservice的对接jar

android端通过webservice和PC端对接jar

2016-04-01

下拉框格式的editView

下拉框格式的editView,用editView实现下拉框效果

2016-04-01

android反编译apktool和dex

android反编译工具,包括apktool和dex2

2016-04-01

android面试

android面试中经常被问到的问题

2016-03-30

android反编译

反编译android apk文件

2016-03-30

模拟电路考试题

大学模拟电路考试题,包括单选和判断,一共400多道习题。

2018-11-29

rocketmq源码

rocketmq 3.2.6源码资源,下载可以直接使用,方便大家学习

2018-02-09

java生成二维码

java生成二维码的demo,可以下载直接运行,并已经测试通过

2017-12-20

js生成二维码

在前端js中生成需要的二维码,方便,操作简单,可以直接使用。

2017-12-20

eclipse查看源码插件

eclipse中方便查看源代码

2017-05-05

java开发手册

阿里巴巴Java开发手册,规范了Java开发过程中代码问题

2017-03-14

PDF转TXT工具

把PDF文件转成TXT文件

2017-03-14

redis实战 完整中文版书籍,清晰版

最新的redis实战讲解,详细介绍了redis的应用场景,项目应用redis时的思路等。

2017-03-14

linux客户端SecureCRTSecure

Linux客户端连接工具SecureCRTSecure,简单易用,平时工作中都是使用该工具

2017-03-06

linux版本的zookeeper

linux版本的zookeeper,亲身安装测试过

2017-03-06

Linux下Tomcat

Linux版本的Tomcat

2017-03-06

redis实战中文版

最新的redis实战中文版资料

2017-02-28

redis命令参考手册

最新最全的redis命令参考手册

2017-02-28

文档比对工具

好用的文档比对工具,使用了很多年

2017-02-28

dubbo-admin

dubbo-admin.rar

2017-02-28

dubbo的zookeeper

dubbo分布式的zookeeper容器

2017-02-28

dubbo demo

基于zookeeper的dubbo基础教程demo

2017-02-10

table拖拽js

bootstraptable拖拽js

2017-01-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除