自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 Redis集群搭建

Redis集群搭建1、下载安装redis1、获取redis安装包$ wget http://download.redis.io/releases/redis-6.0.0.tar.gz2、解压安装包$ tar -xzvf redis-6.0.0.tar.gz3、编译redis$ make4、## 编译报错 /bin/sh: cc: 未找到命令$ yum install gcc-c++ -y ## 安装gcc5、## 编译报错 make[1]: *** [server.o] 错

2021-10-19 14:05:29 320

原创 Zookeeper单机集群部署

一、伪集群搭建1、搭建准备1、zk下载地址:https://archive.apache.org/dist/zookeeper/2、集群节点数必须是基数,通过选举确定主节点,选举规则:可用节点数>总节点数/2(防止脑裂(分裂成多个集群)、zk/es)3、zk集群至少有3个节点2、开始搭建创建数据目录和日志目录:(/data/zoo-1、/data/zoo-2、/data/zoo-3| /log/zoo-1、/log/zoo-2、/log/zoo-3) 每个节点数据目录(/d.

2021-09-23 19:23:00 1504

原创 Docker搭建maven私服

前言:在微服搭建过程中,需要将公共服务提供给其它服务使用,此时需要将公共服务引入其它微服中,而我们项目开发使用的是maven来进行构建和管理引入的jar包,所以我选择搭建maven私服来方便其它服务引入公共服务1、使用docker安装私服1、拉取镜像$ docker pull sonatype/nexus3 2、运行容器$ docker run -d -p 8083:8081 --name nexus \ $ -v /usr/local/docker/nexus-data:/var/ne

2021-02-03 17:44:26 755 1

原创 Http协议概览

浏览器请求过程:web浏览器地址栏输入url 浏览器从web服务器获取文件资源信息协议是规则的约定网络分层:(1)应用层:应用层决定了向用户提供应用服务时通信的活动 (HTTP FTP DNS) HTTP 超文本传输层协议 DNS 域名解析 提供域名到ip之间的解析服务 FTP 文件传输协议(2)传输层:传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输 TCP 传输控制协议 提供可靠的字节流服务,将大块数据分割成以报文段为单位的数据包进行管理 三次握手:发送端发送带有SY

2021-01-17 16:01:54 144

原创 RabbitMq讲解

核心基础组件1、生产者:用于产生、发送消息的程序 2、消费者:用于监听、接受、消费消息的程序 3、消息:实际传输的数据,消息是通过二进制流进行传输 4、队列:消息的暂存区和储存区 5、交换机:同样也可以看作是消息的中转站点,用于首次接收和分发消息,其中包括Headers、 Fanout、Direct和Topic这4种 6、路由:相当于密钥、地址或者“第三者”,一般不单独使用,而是与交换机绑定在一起,将消息路由到指定的队列使用场景:1、服务解耦 2、异步通讯 3、接口.

2021-01-17 15:55:31 168

原创 分布式架构

为什么需要使用分布式: 随着业务的发展和用户流量的上升,对互联网系统或者服务程序则提出了新的挑战,其中,高吞吐、高并发、强扩展、 灵活部署及低延迟等俨然成为急需解决的需求!为此,作为枢纽的中间件也从“集中式”发展为“分布式”, 如基于Redis的分布式缓存、基于RabbitMQ的分布式消息中间件、基于Elasticsearch的分布式全文搜索引擎、基于ZooKeeper的分布式锁等。分布式发展历程:单点集中式Web应用 应用与文件服务及数据库单独拆分 引入缓存与集群,改善...

2021-01-17 15:47:08 214 2

原创 Mysql隔离级别详解

数据库隔离级别为数据库事务四大基本特性:原子性、一致性、隔离性、持久性其中之一,并且是其中最难理解和重要的特性,这里对个人对于隔离级别的理解做出记录测试过程中需要使用到的sql语句#设置数据库隔离级别,但是需要注意的是此设置只对当前会话生效set tx_isolation='READ-UNCOMMITTED'; #确认设置是否成功select @@tx_isolation;或者show variables like 'tx_isolation';#查询未提交事务SELECT trx_

2021-01-16 17:56:09 114

原创 Mysql使用指南

1、查询库中表的总数量SELECT COUNT(table_rows) from information_schema.tables where TABLE_SCHEMA = '库名' ;

2021-01-13 18:28:05 94

原创 cmd运行Java程序

记录一下关于简单的Java文件运行与打成jar包运行的方式和优劣一、单个java文件运行方式*Linux系统环境中多个jar之间的分隔符号用:*Windows系统多个jar之间分隔符号用;*遵循java -cp xx.jar;xxxjar 主类 参数#编译Java文件$ javac -cp easyexcel-2.1.6.jar;lombok-1.16.16.jar;fastjson-1.2.62.jar; -encoding UTF-8 ExcelUpdateUtils.java

2021-01-11 14:27:39 252

原创 nginx代理

1、nginx是什么nginx是一个使用c语言开发的高性能http服务器及反向代理服务器2、nginx能做什么1、网页静态服务器2、反向代理、负载均衡3、虚拟主机

2020-11-24 20:53:43 256

原创 记录一次Mysql:Row size too large (> 8126)错误解决

由于正式数据库迁移,运维将数据版本由5.6升级到5.7,引入了不少问题,某些索引失效导致慢查询,当这些问题解决完后以为事情都结束了,其实不然,当我们用户进行发佣操作时数据库报错了:nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In cur.

2020-11-24 18:37:14 5070 1

原创 Docker学习

1、安装Docker1. 安装docker1.1 查看服务器上是否安装docker$ docker version1.2 卸载旧版本$ sudo yum remove docker \> docker-client \> docker-client-latest \> docker-common \> docker-latest \> docker-latest-logrotate \> docker-logrotate \> dock

2020-11-19 18:48:48 412 1

原创 JDK动态代理原理剖析

前言:动态代理中所谓的"动态",是针对使用java代码实际编写了代理类的"静态"代理而言的,它的优势不在于省去了编写代理类的那点工作量,而是实现了可以在原始类和接口还未知的时候,就确定了代理行为。上示例:public class ClassLoadLearn { static interface Parent{ void sayHello(); } static class Son implements Parent { @Overri

2020-09-25 14:45:51 79

原创 Git操作命令

前言:在日常开发中,多人协作开发已为常态,并行开发提高开发效率的同时,项目版本控制是我们需要考虑的。多分支开发,主分支上线,代码合并、冲突解决是我们作为一名程序开发者需掌握的基础技能。Git的文件管理:在工作目录下的文件状态在工作目录下文件不外乎两种状态:已跟踪或未跟踪已跟踪:已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后,它们的状态可能处于未修改,已修改或已放入暂存区。未跟踪:工作目录中除已跟踪文件以外的所有其它文件都属于未跟踪文件,它们既不存

2020-08-29 16:51:27 183

原创 jvm内存溢出异常分析

除程序计数器外,虚拟机内存的其它几个运行时区域都有可能发生OutOfMemoryError1、Java堆溢出Java堆用于储存对象实例,我们只用不断的创建对象,并且保证GC Roots到对象之间没有可达路径来避免垃圾回收清除这些对象,如此当对象数量到达最大堆的容量限制后产生内存溢出/** * 模拟堆内存溢出 * VM Args -Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError(可以让虚拟机在出现内存溢出异常时Dump出当前的内存堆转储快照以

2020-08-20 16:13:11 145

原创 Linux操作命令

查看后台运行日志:1、jar包tail -f *.log2、war包tail -f catalina.out

2020-08-20 16:11:03 340

原创 Java运行时内存区域

前言:在java虚拟机的自动内存管理机制下,我们并不需要去关心内存分配问题,这极大的方便了程序员的代码开发,但是一旦系统出现内存溢出等问题,出于对虚拟机的不了解,排查问题将异常艰难。一、运行数据区:Java虚拟机在执行Java程序的过程中会把它所管理的内存区域划分为若干个不同的数据区域1.1程序计数器(线程私有):程序计数器是一块较小的内存空间,线程私有,可以看作是当前线程所执行的字节码文件的行号指示器;字节码解释器就是通过改变这个这个计数器的值来选取下一条需要执行的字节码...

2020-08-19 13:58:05 112

原创 VMware安装与Docker安装

虚拟机安装:第一步:创建虚拟机:第二步:选择配置:第三步:自定义系统文件第四步:虚拟机命名与自定义安装位置第五步:完成第六步:选择语言第七部:安装源第八步:软件选择第九步第十步:网络设置第十一步:开始安装:LINUX 修改文件内容 vi命令:https://blog.csdn.net/weixin_42670402/article/details/81911829Linux-教你如何用Xshell连接

2020-06-23 14:21:04 3922

原创 字符转义

2020-05-12 09:07:37 109

原创 springBoot集成Elasticsearch与数据同步方案与问题解决

一、springBoot集成Es1、引入jar包依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId></d...

2020-04-04 17:26:13 3568 1

原创 mybatis使用集合入参

foreach标签

2019-10-25 16:42:35 279

原创 饿了么服务商接入

企业应用和平台应用的区别:(1)企业应用提交应用审核后即可上线,平台应用需上线后再完成上架审核才可在平台服务市场展示供商家订购;(2)企业应用获取商家授权即可,平台应用需要商家在服务市场中完成订购并完成授权;(3)由于企业应用提供大型商户整体的解决方案,平台应用承载的是中小型商户的痛点需求,平台应用会以商品的形式面向全量商户出现在应用市场中,企业应用仅对授权商户展示;(4)目前,平台应用仅...

2019-09-24 17:58:03 1283

原创 高并发引起的库存超发解决方案

库存设计:设置锁定库存和总库存,当用户下单未支付时锁定库存,支付成功时释放锁定库存并扣减总库存,当30分钟用户还未支付,此时释放锁定库存不扣减总库存。一、库存超发原因:下单流程:当库存为1时,两个用户同时下单,查询库存时都有库存,都通过了库存数量校验,下单成功库存为-1。二、解决方案:(1)悲观锁实现方式:查询时添加更新锁。实现原理:使当前线程持有数据库记录行更新...

2019-09-18 10:55:07 4618

原创 微信登录

UnionID 机制说明如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的 UnionID 是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。一、小程序登陆(1)登录流程图(2)执行步骤:1、客...

2019-09-11 16:41:07 169

原创 微信用户信息解密获取UnionID

使用背景:如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的 UnionID 是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。微信官方文档说明:解密方法:/** * AES解密 *...

2019-08-05 10:41:23 976

原创 复杂业务查询

一、计算出订单在哪个时间区间(以区间进行分组)CEIL(TIMESTAMPDIFF(SECOND,'2019-05-10 00:00:00',creatTime)/20) num1、查询下单频率过快 (一段时间内范围内,每间隔时间t秒,订单数量超出n单则为异常单)(2)以时间区间分组SELECT d.`no` FROM o_delivery dINNER JOIN( ...

2019-06-28 17:38:52 175

原创 SSM框架区分开发和测试文件配置

将.properties文件区分为开发和测试环境<!-- 开发环境配置文件 --> <beans profile="dev"> <context:property-placeholder location="classpath:application.properties, classpath:application-${spring.profile...

2019-06-28 16:27:37 388

原创 自定义Spring的Aop切面进行参数校验和日志记录

AOP简单说明:AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。在日常开发当中经常用来记录日志,方法跟踪、事务,权限等切面方法说明:@Aspect -- 作用是把当前类标识为一个切面供容器读取@Pointcut -- (切入点):就是带有通知的连接点,在程序中主要体现为书写切入点表达...

2019-04-17 19:02:27 1254

原创 STOMP-WebSocket使用activeMq代理实现web端消息推送

1、启用STOMP功能STOMP 的消息根据前缀的不同分为三种:(1)以 /app 开头的消息都会被路由到带有@MessageMapping 或 @SubscribeMapping 注解的方法中;(2)以/topic 或 /queue 开头的消息都会发送到STOMP代理中,根据你所选择的STOMP代理不同,目的地的可选前缀也会有所限制;(2)以/user开头的消息会将消息重路由到某...

2019-04-15 10:43:32 1849

原创 Mybatis使用实战

一、基础标签使用 在XML中,需要转义的字符有:  (1)&   &amp;  (2)<   &lt;  (3)> &gt;  (4)"   &quot;  (5)'   &apos;(1)if标签<if test="stuName !=null and ...

2019-03-28 15:21:50 328

原创 SpringBoot整合Quartz并持久化任务

前言:在开发过程中我们会遇到一些定时任务,对于这些任务我们需要对其进行管理,此时使用 Spring自带的定时任务无法满足我们的需求,我们可以使用Quartz定时任务框架。多的不说了,直接上代码SpringBoot整合Quartz:1、pom文件中添加依赖2、添加配置文件(.properties或者.yml)pom.xml文件<!-- quartz开始 -->...

2019-03-18 17:56:30 671

空空如也

空空如也

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

TA关注的人

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