- 博客(95)
- 收藏
- 关注
原创 Java获取枚举内容的两种方式
定义枚举类/** * 短信模板变量 1-客户备注名 2-订单编号 3-店铺名称 4-订单状态 5-收货人姓名 */@Getterpublic enum SmsVariableEnum { /** * 客户备注名 */ CUSTOMER_REMARK_NAME(1, "{客户备注名}"), /** * 订单编号 */ ORDER_NOS(2, "{订单编号}"), /** * 店铺名称 */
2021-11-16 14:29:09
2402
1
原创 RabbitMQ7/7--RabbitMQ内存磁盘监控及使用场景说明
RabbitMQ内存监控内存监控RabbitMQ中主页的内存信息和磁盘信息RabbitMQ中的内存控制命令的方式rabbitmqctl set_vm_memory_high_watermark <fraction>rabbitmqctl set_vm_memory_high_watermark absolute 50MBfraction/value 为内存阈值。默认情况是:0.4/2GB,代表的含义是:当 RabbitMQ的内存超过40%时,就会产生警告并且会阻塞所有生产者的
2021-07-25 16:27:13
593
2
原创 RabbitMQ6/7--消息确认机制
生产者端的消息确认概述在使用RabbitMQ的时候,我们可以通过消息持久化操作来解决因为服务器的异常奔溃导致的消息丢失,除此之外我们还会遇到一个问题,当消息的发布者在将消息发送出去之后,消息到底有没有正确到达broker代理服务器呢?如果不进行特殊配置的话,默认情况下发布操作是不会返回任何信息给生产者的,也就是默认情况下我们的生产者是不知道消息有没有正确到达broker的,如果在消息到达broker之前已经丢失的话,持久化操作也解决不了这个问题,因为消息根本就没到达代理服务器,你怎么进行持久化,那么这
2021-07-25 16:17:52
373
1
原创 RabbitMQ5/7--RabbitMQ延迟队列优化(插件安装)
普通延时队列概念延时队列,队列内部是有序的,最重要的特性就体现在它的延时属性上,延时队列中的元素是希望在指定时间到了以后或之前取出和处理,简单来说,延时队列就是用来存放需要在指定时间被处理的元素的队列。使用场景订单在十分钟之内未支付则自动取消新创建的店铺,如果在十天内都没有上传过商品,则自动发送消息提醒。用户注册成功后,如果三天内没有登陆则进行短信提醒。用户发起退款,如果三天内没有得到处理则通知相关运营人员。预定会议后,需要在预定的时间点前十分钟通知各个与会人员参加会议工程架构
2021-07-25 11:55:02
366
1
原创 RabbitMQ4/7--RabbitMQTTL,死信队列
(一)RabbitMQ TTL过期时间 TTl表示可以对消息设置预期的时间,在这个时间内都可以被消费者接收获取;过了之后消息将自动被删除。RabbitMQ可以对消息和队列设置 TTL,目前有两种方法可以设置第一种方法是通过队列属性设置,队列中所有消息都有相同的过期时间第二种方法是对消息进行单独设置,每条消息 TTL可以不同如果上述两种方法同时使用,则消息的过期时间以两者 TTL较小的那个数值为准。消息在队列的生存时间一旦超过设置的 TTL值,就称为 dead message被投递到死信队列,消
2021-07-25 11:37:39
177
原创 RabbitMQ3/7--springboot集成RabbitMQ
交换机与队列进行绑定的方式1.配置类config(消费者端和生产者端)推荐2.注解(在消费者端使用@RabbitListener(bindings = @QueueBinding()进行绑定)3.页面绑定(不推荐)springboot整合RabbitMQ业务场景,模拟用户下单,交换机进行消息分发生产者和消费者分属不同的模块工程架构Fanout 模式(交换机与队列绑定在生产者端)引入依赖项<dependency> <groupId>org.springf
2021-07-25 11:15:01
447
1
原创 RabbitMQ2/7--RabbitMQ支持的消息模型
RabbitMQ支持的消息模型第一种模型(直连)概念生产者和消费者之间是一对一的关系,通过队列进行消息的传输结构图P:生产者,也就是要发送消息的程序C:消费者:消息的接受者,会一直等待消息到来。queue:消息队列,图中红色部分。类似一个邮箱,可以缓存消息;生产者向其中投递消息,消费者从其中取出消息。代码演示之前,先创建新用户并指定虚拟主机!!创建虚拟主机(必须以 / 开头)创建新用户用户指定虚拟机选择要指定的虚拟主机,并设置设置成功,返回查看代码引入依赖
2021-07-25 10:04:23
169
2
原创 RabbitMQ 1/7--中间件的概述及安装
基于`AMQP`协议,erlang语言开发,是部署最广泛的开源消息中间件,是最受欢迎的开源消息中间件之一。
2021-07-25 09:03:44
305
1
原创 Redis的持久化机制-AOF实现原理详解
为什么要数据持久化?Redis是内存数据库,如果不将数据存储到硬盘中,断电及失,存储在服务器中的数据也会消失,所以出现了持久化机制,两种持久化机制:RDB和AOFAOF (Append Only File)以日志的形式记录 Redis 的每一个写操作,将 Redis 执行过的所有写指令保存下来,以追加的形式保存到 AOF 文件 (默认为 appendonly.aof) 中当需要恢复数据时,Redis 会重新执行 AOF 文件中的写指令,来达到恢复数据的目的AOF 相关配置appendonly
2021-07-14 08:40:26
798
3
原创 阻塞队列-ArrayBlockingQueue源码分析(看完这一篇就够了)
(一)基础部分1、先看看阻塞队列的接口架构图通过接口架构图可知,阻塞队列BlockingQueue的父类Queue(队列)和List集合与Set集合并列存在。而BlockingQueue有两个兄弟类,Deque(双管队列)、AbstractQueue(非阻塞队列)2、什么是阻塞队列?阻塞队列,BlockingQueue(接口),是在队列(Queue)的基础上支持了两个附加操作的队列。2个附加操作:支持阻塞的插入方法:队列满时,队列会阻塞插入元素的线程,直到队列不满。支持阻塞的移除方法:队列空
2021-06-25 16:52:17
753
4
原创 Redis的持久化机制-RDB实现原理详解
持久化机制出现的前提Redis是内存数据库,如果不将数据存储到硬盘中,断电及失,存储在服务器中的数据也会消失,所以出现了持久化机制(一)RDB1、什么是RDB?在指定的时间间隔内,将内存中的数据写入磁盘,恢复时,将快照文件读入内存中2、redis如何实现rdb的?Redis会单独创建(fork)一个子进程,会先将数据写到一个临时文件中,待持久化过程都结束了,在用这个临时文件替换上次持久化好的文件,整个过程中,主进程不进行任何IO操作,保证了极高的性能,如果需要进行大规模数据恢复,且对于数据恢
2021-04-17 10:25:58
1245
4
原创 Redis配置文件解析
(一)Redis中的配置文件Reids配置文件,redis.conf打开redis配置文件,找到redis配置文件所在位置,输入vim redis.confredis配置文件对大小写不敏感InCludes(包含)可以包含其他的配置文件(二)项目中的配置文件常用项1、NETWORK-网络bind 127.0.0.1 -::1 #绑定ipprotected-mode yes #保护模式,默认yesport 6379 #绑定端口号2、GENERAL-通用da
2021-04-17 09:51:40
257
4
原创 Jedis与Redis工具类封装
(一)Jedis什么是Jedis?Jedis是通过Java来操作RedisIDEA中是使用1、创建一个Maven项目,选择jdk版本2、导入maven坐标 <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependencies> <dependency> <groupId>redis.clients</
2021-04-17 09:29:16
585
4
原创 NoSQL,Redis概述与基本命令
什么是NoSQL(一)、传统的关系型数据库代表:mysql,Oracle,sqlserver*首先了解一下 什么是关系型数据库?关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织。优点:易于维护:都是使用表结构,格式一致;使用方便:SQL语言通用,可用于复杂查询;复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。缺点:读写性能比较差,尤其是海量数据的高效率读写;固定的表结构,灵活度稍欠;高并发读写需求,传统关系型数据库来说,硬盘I/O是一
2021-04-17 08:40:55
220
3
原创 MybatisPlus自动生成,简单实用两步走
前言MybatisPlus可以根据表格生成实体类、Mapper、Service、ServiceImplment、Controller只需要两步第一步,在项目的pom文件中导入依赖<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.3.1.tmp<
2021-02-20 18:37:50
570
5
原创 Mybatisplus常用注解
1、@Data lombook注解(自动生成get set toString()方法)@Data@TableName(value = "user")public class Account { private Integer id; @TableField(value = "name") private String title; private Integer age;} 使用Data注解后,点击左侧的Struceure可以看到get、set和toString方
2021-02-20 18:25:30
5365
7
原创 appkey、appSecret自动生成
AppKey:可以认为是你申请的应用的一个唯一标识 AppSecret:你申请的应用的密钥,主要用于对请求参数签名,和对回调参数验证。 生成后的效果private final static String[] chars = new String[]{"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w",
2020-12-24 17:06:43
7794
7
原创 日期工具类封装
项目中要用到各种日期格式化的工具类,现分享出来public class DateUtils extends org.apache.commons.lang3.time.DateUtils { public static String YYYY = "yyyy"; public static String YYYY_MM = "yyyy-MM"; public static String YYYY_MM_DD = "yyyy-MM-dd"; public static
2020-12-24 16:46:22
230
5
原创 Postman测试后端接口传参为null
问题:postman测试后端接口请求参数传递为null 从上图中可以看到,postman测试接口时已经给参数赋值了,但实体接收时为null,看到赋值为null的第一反应就是实体中的字段名称与数据库表中的字段名称不一致引起的,经过反复对比后,排除这个这个想法(实体都是自动生成的,字段名称怎么可能不一致?) 继续观察接口,发现@Param注解中,传参为null的两个参数命名与其他参数不一样,多了一个下划线 问题还真的出在这,改过后,传参成功 在网上找了几篇帖子,关于@Param注解的使用规范,没
2020-12-14 21:00:05
13753
7
原创 微信小程序-点击marker标记点进行路线规划(附源码)
1、微信小程序支持路线规划,官方有现成组件,但是仅支持输入起点终点的经纬度信息进行路线规划,如下图 2、官方接口地址:https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/methodDirection 3、项目需求:点击地图上的标记点,自动进行路线规划,更换标记点就更换路线,效果如图 4、要实现项目需求,只需要稍微改动官方提供的接口代码即可 5、详细步骤 (1)下载腾讯地图SDK,官方下载链接:https://lbs.qq.com/miniProg
2020-11-11 17:44:49
4200
14
原创 微信小程序-如何在map上根据经纬度添加标记点(附源码)
1、map中的marker,就是地图上的标记点,是根据经纬度进行标记的,常见的图例是这样的 2、如何将指定的经纬度信息在地图上显示标记点的位置呢?就像下图这样 3、微信小程序支持自定义markers数组,需要指定传入标记点的经纬度信息 4、具体操作步骤 (1)引入map组件 (2)请求后端接口获取数据 (3)此时,data中的markers[]中已经存在标记点需要的经纬度信息了,可以打印出来查看 (4)因为在地图加载的时候就要显示这些标记点,所以,要在js文件的onLoad:fu
2020-11-11 17:33:08
7141
11
原创 微信小程序-如何引入地图组件及显示当前所在位置
1、代码部分 wxml<view class="view"> <map id="map" longitude="{{longitude}}" //经度 latitude="{{latitude}}" //纬度 show-location="true" > //是否显示当前定位 </map></view> xwss.view { position: absolute; width: 100%;
2020-11-11 17:23:40
7151
10
原创 微信小程序-请求后端接口对比vue请求后端
1、vue请求后端接口示例 2、微信小程序请求后端接口的整体结构介绍 3、代码示例// 调用后台接口获取公厕信息 getToiletsList:function(){ var that=this wx.request({ url: api. httpPost+ '/system/toilets/elist', method:'POST', //data
2020-11-11 17:10:30
1026
4
原创 微信小程序-全局变量的定义,赋值及使用问题
1、在app.js的globalData中定义全局变量 2、使用全局变量要现在当前js文件中定义全局变量 3、为全局变量赋值并验证 4、在data中定义变量并调用全局变量进行赋值 (1)定义局部变量 (2)全局变量赋值给局部变量 5、在wxml中使用变量...
2020-11-11 16:56:09
6557
3
原创 参数异常:Caused by org.apache.ibatis.binding.BindingException: Parameter ‘latitude‘ not found
IDEA报错如下: 问题原因:dao层缺少@Param注解 解决措施:在dao层参数中添加@Param注解
2020-11-11 16:46:19
892
2
原创 利用mybatis接收查询出来的虚拟字段
前言 这篇博客是接上篇博客的应用背景:mysql:根据传入的经纬度查询两地之间的距离(米)感兴趣的朋友可以看下 1、应用背景 2、实体中是不存在距离这个字段的,如何要接收这个虚拟字段,需要在实体中添加字段,并添加getter、setter和tostring 重新生成toString() 3、在mapper中的resuleMap中添加新字段juli 4、mapper查询语句 5、Controller中要paramType属性要选择query,因为我请求的是参数拼接的形式,使用path查
2020-11-11 16:08:08
1874
2
原创 mysql:根据传入的经纬度查询两地之间的距离(米)
开发需求:根据经纬度查询两地之间的距离,单位(米) SQL语句SELECT toilets_name, ROUND( 6378.138 * 2 * ASIN( SQRT( POW( SIN( ( 39.771913 * PI() / 180 - toilets_latitude * PI() / 180 ) / 2 ), 2 ) + COS( 39.771913 * PI() / 180 ) * COS( toilets_latitude * PI() / 180 ) * PO
2020-11-11 15:50:53
652
1
原创 关于maven使用的技巧——本地jar包添加到本地仓库
前言一、应用背景 Git下来的项目,jar包下载失败,原因是远程仓库中没有这个jar包,jar包是自己写的,需要手动添加二、导入jar包到本地仓库的步骤1、下载需要的jar包到本地 2、找到maven地址中的bin文件夹,进入cmd 3、输入指令mvn install:install-file -Dfile=D:\jinchuangzhongbo\jarbao\Ykt-APPSDK-1.2-SNAPSHOT.jar -DgroupId=YktSDK -DartifactId=yk
2020-10-29 19:15:50
843
4
原创 Linux版redis6.0.0安装步骤(具详细)
前言 (1)下载Redis GitHub地址: https://github.com/redis/redis/tags (2)将下载后的Redis安装包通过Xftp上传到Linux(home目录下) (3)查看Redis是否已上传成功输入:cd /home --进入到home目录下输入:ls -s --查看home目录下的文件列表 (4)将下载好的Redis移动到opt目录下输入:mv redis-6.0.0.tar.gz /opt --移动到opt目录下 (5)解压Re
2020-10-18 20:43:04
1729
4
原创 Xftp6--远程上传下载文件的好帮手
前言Xftp6用于向Linux传输文件具体操作步骤为:1、下载安装Xftp6并安装2、获取LinuxIP地址,Linux环境下终端输入:ifconfig,获取IP地址3、打开Xftp,输入ip地址,,协议为SFTP,端口号为22,新建回话4、弹出框输入用户名5、输入密码6、连接成功7、测试8、打开Linux,文件已成功传输补充:解决Xftp中文乱码的问题...
2020-10-16 16:08:48
591
3
原创 Xshell--远程登录到Linux系统(手把手教)
前言使用xshell远程连接Linux系统,需要一个前提,Linux系统已经启用了SSHD服务,专用于远程连接的服务,监听22号端口1、安装Xshell2、查询虚拟机IP,在终端输入:ifconfig获得端口号为:192.168.******3、打开xshell,点击新建会话,输入端口号,选择SSH协议,端口号为22,默认4、接受并保存5、输入Linux的用户名的密码进行登录验证(之前登录过)6、登录验证成功后,便可以通过xshell操作虚拟机...
2020-10-16 16:01:06
7076
3
原创 Linux与windows如何建立共享文件夹
前言1、安装VM Tools (1)Linux共享文件夹就是和windows共享一个文件夹,需使用VM Tools,安装CentOs7时已经默认安装VM Tools (2)检查是否安装VM Tools,打开虚拟机,看到重新安装VM Tools,证明已安装成功2、设置共享文件夹在windows系统上新建一个文件夹myshear,里面新建一个文件hello,输入hello3、Linux系统中找到虚拟机-设置选项-选择共享文件夹4、选择总是启动,选择添加,添加要共享的文件5、打开主文件夹
2020-10-16 15:51:34
2562
3
原创 最直接有效的解决nacos配置mysql8.0以上版本后无法启动的问题
前言本文只介绍nacos配置mysql8.0.18后启动报错的问题nacos配置mysql8.0的具体操作步骤可以参考我的上一篇博客:nacos1.1.4连接mysql 8.0.18步骤(有图有真相)错误描述错误原因:没连接数据库,mysql与nacos版本不匹配看了网上的一些博客,解决方法大多是在nacos目录下创建文件夹放入jdbc驱动包,不过对我没有用网上有成功的,可以参考一下:nacos1.2完美解决mysql8.0不兼容问题我是如何解决的:找到nacos的安装目录,打开conf目
2020-10-08 20:44:25
6764
30
原创 nacos1.1.4连接mysql 8.0.18步骤(有图有真相)
前言nacos自带内嵌数据库derby,数据库持久化仅支持mysql数据库nacos1.1.4版本连接mysql 8.0.18步骤1、找到nacos的安装目录,打开conf目录下的nacos-mysql.sql文件2、打开后可以看到是关于创建数据库,数据表的语句3、全选并复制,在Navicat或sqlyog中执行语句4、找到nacos的安装目录,打开conf目录下的application文件5、滑到最底层,添加一下配置spring.datasource.platform=mysql
2020-10-08 20:17:27
4100
2
转载 【mysql8.0.19】遇到1045无法进入mysql Navicat for MySQL无法连接问题
Navicat连接服务报错:1045,如下图错误原因是mysql的密码错误。原文链接:https://blog.csdn.net/M1512415/article/details/104845174本人入驻CSDN来第一次转载博客,原创是真的牛逼!
2020-10-08 19:54:50
405
2
原创 IDEA 构建微服务虚拟映射
前言1、应用背景:测试Nacos服务注册中心,只需建立一个微服务模块,利用虚拟映射,便可以创建多个虚拟微服务,进行Nacos服务注册中心的测试,方便便捷,实现原理:走的是同一个服务,用了不同的端口号访问2、应用:先启动一个微服务模块,注册到Nacos服务注册中心打开IDEA可以看到启动了一个微服务打开Nacos可以看到集群中只有一个微服务模块3、在已经启动的微服务模块上右键选择Copy Cocnfiguration4、在Name出输入虚拟微服务名称,在VMoptions出输入虚拟微服务端口
2020-10-03 16:13:56
378
3
原创 超详细 windows版nacos安装教程及踩坑经历
前言1、Nacos官网地址:https://nacos.io/en-us/2、点击当前版本,主页显示当前版本的一些配置信息3、点击Tags,查看历史版本4、找到你想要的下载的版本,点击DownLoads5、根据系统选择版本6、解压后的目录7、点击bin文件夹,启动startup.cmd8、打开浏览器输入:http://localhost:8848/nacos/#/login9、默认用户名和密码都是nacos10、出现下面页面,登录成功==================
2020-10-01 18:09:32
11843
7
原创 超详细!windows版RabbitMQ安装及配置
前言前提:RabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rabbit MQ 是建立在Erlang OTP平台上。此处需要说明一点,要保证RabbitMQ 和Erlang的版本兼容,否则,安装RabbitMQ 成功后,服务是不能启动的,具体支持的最低最高版本,请参照该地址:https://www.erlang.org/downloads/22.1一、安装配置
2020-10-01 16:20:09
1297
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人