- 博客(23)
- 收藏
- 关注
转载 RabbitMQ介绍
RabbitMQ是基于AMQP协议的,通过使用通用协议就可以做到在不同语言之间传递。AMQP协议核心概念server:又称broker,接受客户端连接,实现AMQP实体服务。connection:连接和具体broker网络连接。channel:网络信道,几乎所有操作都在channel中进行,channel是消息读写的通道。客户端可以建立多个channel,每个channel表示一个会话任务。message:消息,服务器和应用程序之间传递的数据,由properties和body组成。proper
2021-12-21 10:38:51 520
原创 springboot 整合rabbitMq
springboot 整合rabbitMqRabbitMq名词queue队列最最最核心的队列,用于存储消息exchange交换机,用来接收消息,发送到队列routing key路由,生产者发送消息到交换机,一般会指定路由key,用来指定发送到绑定的哪个队列virtual虚拟机,类似于不同的数据库消息类型[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TBo1KVtb-1639991898605)(C:\Users\NL032\Desktop\message
2021-12-20 17:25:52 1537
转载 权限系统设计
1、为什么需要权限管理 日常生活中权限的问题时时刻刻伴随着我们,程序员新入职一家公司需要找人开通各种权限,比如网络连接的权限,代码提交的权限、监控平台登录的权限、运营平台查数据的权限等等。再很多时候我们会觉得这么多 繁杂的申请给工作带来不便,并且如果突然想要查一些数据,发现没有申请权限,再走审批流程,时间拉得会很长。那为什么还需要这么严格的权限管理呢? 举个例子,一家支付公司有运营后台,运营后台可以查到所有的商户信息,法人代表信息,交易信息以及费率配置信息,如果我们把这些信息不加筛选都给到公司的
2021-06-28 17:53:51 360
原创 MySQL的insert ignore into, replace into用法
1.insert ignore into会忽略数据库中已经存在的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据INSERT IGNORE INTO 表名(字段名...) VALUES (值...)2.on duplicate key updatereplace into表示插入替换数据;如:表中有PRIMARY,或者UNIQUE索引的话,当表中已经存在这条数据,则用新数据替换,如果没有数据,效果则和insert into一样;INSERT INTO 表名(字段名...)
2020-10-16 16:04:28 10009
转载 一次 2000w 数据大表的优化过程,提供三种解决方案
一次 2000w 数据大表的优化过程,提供三种解决方案使用阿里云rds for MySQL数据库(就是MySQL5.6版本),有个用户上网记录表6个月的数据量近2000万,保留最近一年的数据量达到4000万,查询速度极慢,日常卡死。严重影响业务。问题前提:老系统,当时设计系统的人大概是大学没毕业,表设计和sql语句写的不仅仅是垃圾,简直无法直视。原开发人员都已离职,到我来维护,这就是传说中的维护不了就跑路,然后我就是掉坑的那个!!!我尝试解决该问题,so,有个这个日志。方案概述方案一:优化现有my
2020-09-23 09:30:29 1158
原创 spring cloud Zuul聚合Swagger2
Zuul整合Swagger2结构图:先贴代码聚合工程的父工程pom依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org
2020-06-04 12:03:24 391
转载 权限设计的的一些想法和设计
权限设计的杂谈这篇文章的定位,不是宣传某个框架,仅仅之是梳理一下有关权限方面的一些想法和最近项目中的一些探索过程。 我们主要想解决一下问题。什么是权限,程序员理解的权限和客户所理解的权限是不是一致的。权限的划分原则,权限到底是根据什么原则进行组合的。角色是用户与权限之间的必要的关系吗?角色到底承接了什么作用。如何进行合理的表设计。安全框架。1.什么是权限在很多与开发者也好,与客户也好,沟通的过程中我们很多次提到了权限,但是权限具体的含义每个人理解的含义都不明确,这样很容易造成双方信息不
2020-05-28 17:36:02 272
转载 JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof 使用详解
前提概要:JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具,每一种工具都有其自身的特点,用户可以根据你需要检测的应用或者程序片段的状况,适当的选择相应的工具进行检测。接下来的两个专题分别会讲VisualVM的具体应用。现实企业级Java应用开发、维护中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄露线程死锁锁争用(Lock C
2020-05-25 12:16:11 276
转载 JAVA线上故障排查全套路
线上故障主要会包括cpu、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。同时例如jstack、jmap等工具也是不囿于一个方面的问题的,基本上出问题就是df、free、top 三连,然后依次jstack、jmap伺候,具体问题具体分析即可。CPU一般来讲我们首先会排查cpu方面的问题。cpu异常往往还是比较好定位的。原因包括业务逻辑问题(死循环)、频繁gc以及上下文切换过多。而最常见的往往是业务逻辑(或者框架逻辑)导致的,可以使用jstack
2020-05-25 10:45:13 208
原创 mysql数据库批量更新数据,根据select出来的数据去update
mysql根据select出来的数据去update数据语法:update a inner join (select yy from b) c on a.id =c.id set a.xx = c.yy实现查询数据并根据条件更新到另一张表的方法示例本文实例讲述了mysql实现查询数据并根据条件更新到另一张表的方法。分享给大家供大家参考,具体如下:原本的数据库有3张表travel_wa...
2020-01-16 14:41:26 4697 1
原创 VMware Workstation Pro15.5虚拟机安装CentOS 7
VMware Workstation Pro15.5Windows版本下载https://my.vmware.com/cn/web/vmware/details?productId=799&rPId=39513&downloadGroup=WKST-1550-WIN软件激活码:ZC10K-8EF57-084QZ-VXYXE-ZF2XFUF71K-2TW5J-M88QZ-...
2019-12-28 16:00:12 915
原创 Spring使用@Async注解
Spring使用@Async注解本文讲述@Async注解,在Spring体系中的应用。本文仅说明@Async注解的应用规则,对于原理,调用逻辑,源码分析,暂不介绍。对于异步方法调用,从Spring3开始提供了@Async注解,该注解可以被标注在方法上,以便异步地调用该方法。调用者将在调用时立即返回,方法的实际执行将提交给Spring TaskExecutor的任务中,由指定的线程池中的线程执行。...
2019-12-27 15:52:18 433
转载 springboot之启动原理解析及源码阅读
前言SpringBoot为我们做的自动配置,确实方便快捷,但是对于新手来说,如果不大懂SpringBoot内部启动原理,以后难免会吃亏。所以这次博主就跟你们一起一步步揭开SpringBoot的神秘面纱,让它不在神秘。正文我们开发任何一个Spring Boot项目,都会用到如下的启动类@SpringBootApplicationpublic class Application { ...
2019-11-01 15:27:34 152
转载 分布式事务:Saga模式
1 Saga相关概念1987年普林斯顿大学的Hector Garcia-Molina和Kenneth Salem发表了一篇Paper Sagas,讲述的是如何处理long lived transaction(长活事务)。Saga是一个长活事务可被分解成可以交错运行的子事务集合。其中每个子事务都是一个保持数据库一致性的真实事务。论文地址:sagas1.1 Saga的组成每个Saga由一系列...
2019-10-31 20:04:58 347
转载 EditPlus下载安装和汉化
一、下载官网下载地址:https://www.editplus.com/根据自己电脑配置,选择32位安装还是64位安装二、安装此处我的电脑是32位操作系统,所以我选择了32位的EditPlus版本1、双击已下载的EditPlus安装包2、点击“Accept”3、选择安装路径后,点击“Start Copy”4、正在安装5、安装成功三、激活1、双击桌面EditPlu...
2019-10-16 11:29:38 67395 56
转载 Git和小乌龟的下载安装及简单使用
一、windows系统安装git首先下载git for windows客户端http://msysgit.github.io/安装过程没什么特别的,不停next就ok了详细步骤请看Git下载安装及设置详细教程图太多就不继续了~~安装完之后最好重启一下。安装完成之后右键如果出现这几个东西,那么git你就安装完成了。二、安装tortoise git(乌龟git)安装git小乌龟...
2019-10-15 15:24:42 6552
转载 Git下载安装及设置详细教程
一、安装前准备 1. 廖雪峰老师Git教程 :推荐Git入门教程。 2. 按照自己的系统版本下载Git软件,我的操作系统:Windows7 64位,安装版本为Git-2.18.0-64-bit.exe(截至2018.8.27最新版本)。 Git下载地址:国外网站,可确保为最新版本。 百度网盘下载:国内镜像,如果网速慢可以到网盘下载。二、安装过程 1. 下载完成后,双击下...
2019-10-14 10:36:32 1145
原创 MyBatis架构分析
什么是 MyBatis?MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。项目引入要使用 M...
2019-10-10 15:59:32 192
原创 Thread.currentThread().getName() ,对象实例.getName() 和 this.getName()区别
1.new一个自定义的线程,然后把这个线程对象丢给Thread对象构造方法,执行start 才会出现 上面的区别2.如果是直接new一个自定义对象不交给 Thread线程执行调用 在其内部外部 使用 Thread.currentThread().getName() ,对象实例.getName() 和 this.getName(),这3个区别 都不存在,都是相同的,因为没有交给Thread执行,...
2019-09-26 10:40:13 289
转载 多线程的三种创建方式及介绍
Java 多线程编程Java 给多线程编程提供了内置的支持。 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销。这里定义和线程相关的另一个术语 - 进程:一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,直到所有...
2019-09-25 16:32:34 186
转载 Stream流使用的详细介绍
Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理,...
2019-08-23 15:01:28 1183
转载 mysql如何用一条sql语句实现不存在就插入,存在的话则更新
假定我们有如下的一张表,id是主键。 FieldType idint(11) namevarchar(20)&...
2019-08-23 09:26:19 909
转载 拦截请求的三种方式 Filter、Interceptor、Aspect
参考博客原址::https://blog.csdn.net/nextyu/article/details/78392153 ...
2019-08-22 16:33:19 537
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人