自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

宋发元

我喜欢,驾驭着代码在风驰电掣中创造完美!我喜欢,操纵着代码在随心所欲中体验生活!我喜欢,书写着代码在时代浪潮中完成经典!每一段新的代码在我手中诞生对我来说就象观看刹那花开的感动!

  • 博客(197)
  • 资源 (7)
  • 论坛 (1)
  • 收藏
  • 关注

原创 谷歌浏览器油猴插件(Tampermonkey)安装使用教程

Tampermonkey 是一款免费的浏览器扩展和最为流行的用户脚本管理器,它适用于 Chrome, Microsoft Edge, Safari, Opera Next, 和 Firefox。虽然有些受支持的浏览器拥有原生的用户脚本支持,但 Tampermonkey 将在您的用户脚本管理方面提供更多的便利。 它提供了诸如便捷脚本安装、自动更新检查、标签中的脚本运行状况速览、内置的编辑器等众多功能, 同时Tampermonkey还有可能正常运行原本并不兼容的脚本。安装谷歌浏览器如何安装谷歌浏览器,就不

2021-01-27 21:20:51 17646 8

原创 RabbitMQ延迟队列实现定时任务

SpringBoot和SpringCloud框架通用。使用场景订单在N分钟内未支付自动取消订单。指定时间发送运营短信。用户注册后,N天内未进行下一步操作进行短信操作。用户发起退款,N时间后通知相关人员处理。预订会议,会议前N分钟提醒。利用RabbitMQ实现延时队列本方法是在消息属性里面设置TTL(Time To Live),这种方式有缺点,消息可能并不会按时被消费,因为RabbitMQ只会检查第一个消息是否过期,如果过期才会丢到死信队列,所以如果第一个消息的延时时间很长,而第二个.

2020-11-25 10:22:52 489 4

原创 FeignClient服务调用案例

FeignClient服务调用案例,由A服务调用B服务,分别展示了get和post调用的各种传参方式。A服务A服务FeignClient调用服务类FeignDemoServicepackage com.github.third.feign;import com.github.common.util.Response;import com.github.third.feign.fal...

2019-08-06 01:13:06 2127

原创 Redis防止用户并发执行某一操作

背景在实际的开发过程中,会遇到某些接口因处理过慢或者用户重复点击操作,导致相同的操作执行多遍的情况,那么如何有效的防止同一用户同一时刻执行多次相同的操作,就是本文的重点啦!处理方法废话不多说,此处采用Redis Incr实现。Redis incr 可以实现原子性的递增,可应用于高并发的秒杀活动、分布式序列号生成等场景。这里我使用它来计数实现过滤用户请求,同一时刻只允许同一用户执行一次操作...

2019-08-06 00:50:12 430

原创 Linux搭建pinpoint教程(集群版本)

Pinpoint是一款全链路分析工具,提供了无侵入式的调用链监控、方法执行详情查看、应用状态信息监控等功能。基于GoogleDapper论文进行的实现,与另一款开源的全链路分析工具Zipkin类似,但相比Zipkin提供了无侵入式、代码维度的监控等更多的特性。 Pinpoint支持的功能比较丰富,可以支持如下几种功能:服务拓扑图:对整个系统中应用的调用关系进行了可视化的展示,单击某个服务节点,可以显示该节点的详细信息,比如当前节点状态、请求数量等实时活跃线程图:监控应用内活跃线程的执行情况,对应用的线

2019-07-18 22:38:52 855 2

原创 Linux搭建pinpoint教程(史上最全版)

Pinpoint是一款全链路分析工具,提供了无侵入式的调用链监控、方法执行详情查看、应用状态信息监控等功能。基于GoogleDapper论文进行的实现,与另一款开源的全链路分析工具Zipkin类似,但相比Zipkin提供了无侵入式、代码维度的监控等更多的特性。 Pinpoint支持的功能比较丰富,可以支持如下几种功能:服务拓扑图:对整个系统中应用的调用关系进行了可视化的展示,单击某个服务节点,可以显示该节点的详细信息,比如当前节点状态、请求数量等实时活跃线程图:监控应用内活跃线程的执行情况,对应用的线

2019-05-21 21:34:06 1824 1

原创 mysql连表更新(用一个表的数据更新另一个表的数据)

用一个表中的字段去更新另外一个表中的字段,来看一个简单的例子就会了:create table student( student_id int not null ,student_name varchar(30) not null ,city_code varchar(10) null ,city_name varchar(5...

2018-04-23 00:20:41 15459 12

原创 Nginx+keepalived双机热备(双主模式)

Nginx+keepalived双机热备(双主模式)此前已经写过一篇使用keepalived实现nginx的高可用,这种方式有一台机器一直作backup使用,有50%的资源被浪费。 Nginx+keepalived双机热备(主从模式) keepalived安装请查看 Nginx+keepalived双机热备(主从模式)下面来配置nginx+keepalived的双主机双机热备,这种配置下有

2017-12-26 19:55:03 1304

原创 Nginx+keepalived双机热备(主从模式)

首先确认系统已经安装好Nginx并能正常访问。nginx搭建请查看http://blog.csdn.net/u011019141/article/details/78716078需要高可用的nginx对应的设备均需要安装keepalived服务,安装步骤一样。本文安装目录为: /opt/keepalivedKeepalived安装进入keepalived待安装目录c

2017-12-25 18:48:54 609

原创 零基础构建Spring Boot项目

Spring Boot Demo简介:Springboot modules基础项目搭建maven构建项目1、访问http://start.spring.io/2、选择构建工具Maven Project、Spring Boot版本1.3.6以及一些工程基本信息,点击“Switch to the full version.”java版本选择1.8,可参考下图所示: 3、点击Generate Proje

2017-12-12 21:02:46 651 2

原创 MySQL查询本周、上周、本月、上个月份数据的sql代码

查询当前这周的数据 SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now()); 查询上周的数据 SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format

2016-09-10 13:08:02 1626

原创 零基础在Linux服务器上部署javaweb项目

一.安装JDK1、首先要查看服务器的系统版本,是32位还是64位#getconf LONG_BIT642、下载64位版本的jdk下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html版本:jdk-8u91-linux-x64.rpm3、使用ftp工

2016-04-29 12:02:45 30016

原创 【MySQL】mysql中模糊查询的四种用法

下面介绍mysql中模糊查询的四种用法:1,%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。比如 SELECT * FROM [user] WHERE u_name LIKE '%三%'将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。另外,如果需要找出u_name中既有“三”又

2015-11-06 21:52:04 899

转载 UML时序图(序列图)

什么是时序图时序图(Sequence Diagram),又名序列图、循序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。让我们来看一看visio2016对时序图的的解释。时序图的元素我们在画时序图时会涉及7种元素:角色(Actor)、对象(Object)、生命线(LifeLine)、控制焦点(Activation)、消息(Message)、自关联消息、组合片段。其中前6种是比较常用和重要的元素,剩余的一种组合片段元素不是很常用,但是比较复杂。我们先介绍前6种

2021-11-29 15:49:37 3

原创 scp远程上传下载文件/文件夹

scp远程上传下载文件/文件夹从服务器下载整个目录scp -r username@servername:remote_dir/ /tmp/local_dir例:scp -r root@192.168.2.69:/root/sft/csmp_dockerimgs /Users/songfayuan/Downloads上传目录到服务器scp -r /tmp/local_dir username@servername:remote_dir例:scp -r test root@192.168.0.

2021-11-25 11:22:39 3

原创 SpringBoot整合Swagger案例

废话不介绍,简单说就是为了暴露接口文档,方便测试。在pom文件中引入swagge相关依赖 <!--添加Swagger依赖 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version&g

2021-10-20 23:52:07 36

原创 Docker下安装ElasticSearch和Kibana(单机版)

ElasticSearch安装Docker安装es这里以7.2.0版本镜像镜像为例。docker pull elasticsearch:7.2.0启动esdocker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d elasticsearch:7.2.0执行完上面命令之后,es就启动好了。我们可以去检查es是否安装完成,可以输入命令:curl http://loc

2021-10-19 09:57:00 23

原创 MacOS Docker 安装配置及基本使用

下载Docker下载地址:https://hub.docker.com/editions/community/docker-ce-desktop-mac/安装Docker下载好Docker.dmg之后,双击安装即可,同普通应用软件一样。安装完成后,在应用程序中找到docker图标,点击运行,启动Docker,可能会询问 macOS 的登陆密码,输入即可。点击鲸鱼图标可显示docker的相关操作,如下图。启动终端后,通过命令可以检查安装后的 Docker 版本。配置镜像加速注册D

2021-10-14 14:26:21 169

原创 Java List值随机打乱顺序

采用Collections.shuffle(list)打乱顺序 public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("1"); list.add("2"); list.add("3"); list.add("4"); list.add("5");

2021-09-24 21:50:59 25

原创 InvalidKeyException: Illegal key size异常解决方案

报错信息如何解决去官方下载JCE无限制权限策略文件。JDK5 JCE下载JDK6 JCE下载JDK7 JCE下载JDK8 JCE下载下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security目录下覆盖原来的文件。如果安装了JDK,还要将两个jar文件也放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件。...

2021-07-13 13:59:20 28

转载 通俗易懂 限流算法原理剖析

高并发系统的三把利器:缓存、限流、降级,利用此3种技术方案即可保系统运行无忧。由于限流是系统的首道关口,所以本文以限流为主题,普及限流算法的基础知识。为什么要限流限流即限制流量,通过流量控制来保证系统接收到的请求量在正常范围内。由于任何系统的吞吐量都有上限,所以必须设置合理的限定值,以避免流量洪峰将整个系统打垮。假如一个系统可以承载的网络带宽是1G,如果流量大于1G就会导致带宽打满,影响整个服务。在现实生活中,限流场景也随处可见:例如银行的叫号系统、餐厅的排队系统,如今的疫情,政府也是全力排除隐患,保

2021-06-21 22:10:48 47

转载 Redis实现动态速率控制

1.背景最近接入了一个第三方接口,该接口对接口调用的频率有限制(单个用户Id,操作30次/分钟),但在接口并不是提示超过频率限制显示接口调用成功,而实际业务并未运行,超过频率限制的请求直接被隐性忽略掉了。故需要在调用方这边检测请求频次,以便对超过频率限制的请求抛出异常或者延迟发送。2.流量整形方案因为通信公司的工作经验,这种需求很容易联想到流量整形。流量整形(Traffic Shaping)是一种主动调整流量输出速率的措施。简单来在一个网络节点上,通过一定规则将不满足要求的输入流(速率过高)转化

2021-06-21 17:57:39 45

原创 IDEA插件CamelCase使用技巧:下划线转驼峰及大小写转换插件和快捷键

CamelCase插件1.安装方法:idea菜单栏-file-settings-plugins-在marketplace搜索“CamelCase”-点击安装2.设置需要的模式:一般驼峰或者下划线3.使用方法安装后重新打开idea,选中内容,快捷键shit+alt+u,选中内容中的单词 就会变,直到变成你想要的。...

2021-06-21 17:37:38 187

原创 MySQL错误SELECT list is not in GROUP BY clause and contains nonaggregated column解决”

错误信息Expression #12 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘amazon_admin.r.role_id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by解决办法用vim打开m

2021-06-21 11:17:03 48

原创 MongoDB MongoTemplate对嵌套对象,多层级数据,以及其他常规增删改查

数据格式本文测试用的多层级数据格式基础数据如下:{ "id": "1", "warehouseConfigId": "1", "remarks": "备注信息", "groupGoodsInfo": [ { "ids":"1008601", "planNumber": "计划编号0001", "productId": "1", "shopName": "店铺名称0

2021-06-10 18:25:10 544 2

原创 MySQL对数据库多个字段同时进行模糊查询

场景:输入一个值,需要对同一个表的多个字段进行匹配。SELECT * FROM warehouse_inventory_details WHERE is_delete = 0 AND CONCAT(product_name, sku) LIKE '%品名%';SELECT * FROM warehouse_inventory_details WHERE is_delete = 0 AND CONCAT(product_name, sku) LIKE '%SKU%';...

2021-06-04 19:06:43 60

原创 Elastic-Job创建动态定时任务、动态修改定时任务

Elastic-Job实现动态增加定时任务、动态修改定时任务。一、ElasticJob简介ElasticJob 是面向互联网生态和海量任务的分布式调度解决方案,由两个相互独立的子项目 ElasticJob-Lite 和 ElasticJob-Cloud 组成。 它通过弹性调度、资源管控、以及作业治理的功能,打造一个适用于互联网场景的分布式调度解决方案,并通过开放的架构设计,提供多元化的作业生态。 它的各个产品使用统一的作业 API,开发者仅需一次开发,即可随意部署。二、使用Elastic Job创建静

2021-04-27 15:05:31 512 9

原创 ElasticJob和XXL-JOB对比

区别

2021-04-25 20:41:42 371

转载 一篇文章读懂SaaS多租户和单租户的分别

提到SaaS,很多人都会立刻想到节约成本、按需付费、即租即用等等这些概念,这说明大部分人对SaaS已经有了普遍认知,且开始主动应用SaaS软件。然而这只是一些浅层概念。很多人对于一些SaaS技术问题还是知之甚少,例如企业在进行SaaS企业管理软件选型时,仍不了解“多租户”与“单租户”是什么意思,二者之间的区别更是一头雾水。企业管理者需要明白这两种SaaS架构的特点,才能更多地从未来的功能需求、数据安全等方面进行考虑,从而选出适合企业应用的SaaS软件。本文将通过举例,形象深刻解释“SaaS多租户和单租户有

2021-04-07 23:42:38 240

原创 Robo 3T显示MongoDB数据时区晚8小时问题

在国内,使用Robo 3T显示的时间比当前时间晚8小时,这是因为Robo 3T默认设置的时区是UTC所致,将Robo 3T设置为Local Timezone即可显示正常的时间。Robo 3T → Options → Display Dates In → Local Timezone 如下图:...

2021-03-30 16:47:02 114

原创 谷歌浏览器打开阅读清单

1、打开谷歌浏览器,在网址栏中输入chrome://flags2、在搜索框中输入read-later3、将右侧的Default改为Enabled,点击右下角的relaunch,重启浏览器后即可使用阅读清单功能。

2021-03-20 13:35:59 3378

转载 什么是悲观锁和乐观锁?

1、什么悲观锁?顾名思义,悲观锁是基于一种悲观的态度类来防止一切数据冲突,它是以一种预防的姿态在修改数据之前把数据锁住,然后再对数据进行读写,在它释放锁之前任何人都不能对其数据进行操作,直到前面一个人把锁释放后下一个人数据加锁才可对数据进行加锁,然后才可以对数据进行操作,一般数据库本身锁的机制都是基于悲观锁的机制实现的;特点:可以完全保证数据的独占性和正确性,因为每次请求都会先对数据进行加锁, 然后进行数据操作,最后再解锁,而加锁释放锁的过程会造成消耗,所以性能不高;手动加悲观锁:读锁LOCK tab

2021-03-10 17:37:35 36

转载 并发工具(锁):深入Synchronized

synchronized解决哪些问题?产生并发问题的三个根源在于“缓存可见性问题”,“原子性问题”,“指令顺序性问题”,Java并发包里面的所有并发工具都是针对于这三个问题的解决方案,所以说理解这个三个问题的根源对能否做好并发编程有决定性的意义,果你对这几个问题还不太了解,建议阅读并发问题的根源”。当我们遇到并发问题时候,第一个想到的就是用锁,在JAVA里面使用synchronized解决并发问题已经是程序员潜意识的解决方案了,但是如果要问起synchronized解决了哪些问题时候,大部分人知道的都是

2021-03-10 17:04:31 26

转载 并发理论基础:并发问题产生的三大根源

并发问题变幻莫测,一谈到并发就显得非常高深,一般的程序员对于并发问题也是头疼不已,但是随着网络互联越来越普遍,大规模用户访问网站程序也越来越频繁,并发问题又无法避免。在我们解决并发问题前首先要理解产生并发问题的根源是什么,所有并发处理的工具只是针对这些根源问题的其中一种解决方案,如果只去了解解决方案而不理解问题的根源是什么,那么我们就很难正确的定位问题并对症下药。所以要写好并发程序我们首先就要深入理解并发问题产生根源是什么?起因:如何最大化的利用CPUCPU运算速度和IO速度的不平衡一直是计算机优化的

2021-03-04 15:54:28 195 4

转载 Java对象的序列化和反序列化详解

序列化的定义序列化:把对象转化为可传输的字节序列过程称为序列化。反序列化:把字节序列还原为对象的过程称为反序列化。为什么要序列化?如果光看定义我想你很难一下子理解序列化的意义,那么我们可以从另一个角度来推导出什么是序列化, 那么究竟序列化的目的是什么?其实序列化最终的目的是为了对象可以跨平台存储,和进行网络传输。而我们进行跨平台存储和网络传输的方式就是IO,而我们的IO支持的数据格式就是字节数组。因为我们单方面的只把对象转成字节数组还不行,因为没有规则的字节数组我们是没办法把对象的本来面目还原回

2021-03-03 14:58:03 68 2

原创 IDEA 2020标签栏设置自动换行

IDEA 2020标签栏设置自动换行效果配置

2021-01-19 10:20:06 878 2

原创 IDEA添加快捷注释模板

IDEA添加快捷注释模板配置模板/** * @Project:${PROJECT_NAME} * @Package:${PACKAGE_NAME} * @Date:${DATE} ${TIME} * @Author:${USER} * @Address: HangZhou·China * @Description: * @Modified By: *//** * @description: $param$ * @return $return$ * @date: $.

2021-01-19 10:04:49 45

原创 IDEA设置自动导入包

IDEA设置自动导入包

2021-01-15 14:46:57 186

原创 Intellij IDEA修改“选中变量或方法”的背景颜色、字体颜色

2年想跳槽阿里,大咖揭秘大厂面试的那些事儿 >>Intellij IDEA修改“选中变量或方法”的背景颜色、字体颜色默认情况下IDEA中选中变量或者方法时,背景颜色非常的不明显,不方便使用,这里教大家如何修改颜色,更方面使用。修改后:...

2021-01-13 14:04:59 797

原创 IDEA 2020设置代码提示不区分大小写

IDEA 2020设置代码提示不区分大小写这里是一份惊喜,你可以不用点开哦 >>传送链

2021-01-11 17:45:37 540

解压后拖入浏览器扩展程序使用.zip

解压后拖入浏览器扩展程序使用

2021-11-27

tampermonkey-backup-chrome-2021-11-27T13-18-01-624Z.zip

下载后通过Tampermonkey直接导入即可使用。

2021-11-27

tampermonkey-backup-chrome-2021-01-27T09-36-27-548Z.zip

Tampermonkey脚本文件

2021-01-27

GetterSetterUtil_Eclipse3.5

eclipse生成get和set中文注释的工具类,下载替换eclipse原工具类即可。

2018-05-08

36种漂亮的CSS3网页按钮Button样式

36种漂亮的CSS3网页按钮Button样式

2015-01-03

JavaWeb企业人力资源管理系源码分享

JavaWeb企业人力资源管理系源码分享

2015-01-03

apache-tomcat-6.0.20-src.zip

apache-tomcat-6.0.20-src.zip

2014-12-18

你有哪些系统性的Java面试宝典分享?

发表于 2021-01-13 最后回复 2021-01-13

空空如也

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

TA关注的人 TA的粉丝

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