- 博客(176)
- 资源 (2)
- 收藏
- 关注
原创 (十五)docker安装sentinel,客户端配置规则本地持久化
sentinel配置的规则默认是存在内存里的,不够稳定,所以我们需要持久化到本地文件中。在resources文件夹创建目录META-INF/services,然后添加文件。在我们连接sentinel的springboot项目客户端中新增持久化处理类。然后打开客户端的user.home目录(不同电脑路径不一样)。账号密码默认都是sentinel。
2023-02-20 16:59:02
1519
1
原创 springboot项目jar包部署
一、springboot项目打jar包使用Idea的maven模块打包,完成后在项目的target目录可以找到jar包二、运行1.在linux服务器创建存放jar包的目录。2.将jar包上传到项目目录。3.在jar包同目录下创建文件夹config。4.将项目的application.yml相关配置文件复制到config文件夹,这样做的好处是启动jar包时会优先读取config目录的配置文件,而不是读取项目里的,避免由于开发时修改了项目配置文件跟生产环境无关的配置导致生..
2021-03-18 18:28:49
470
原创 spring事务方法的同步问题
一、事务方法的同步问题例如以下这段代码 @RequestMapping("/test") @Transactional public int test(){ Test test = testMapper.selectById(1); int max = test.getMax() + 1; test.setMax(max); testMapper.updateById(test); return
2021-02-08 17:18:49
1290
原创 springboot日志按级别按天并且按大小切割
一、简介为了方便查询问题,将日志按info、error级别等输出到日志文件。若是用一个文件来存储所有的日志,那么这个文件会越来越大,不利于我们查询日志。所以这里我们将日志按日期存储,每天都会创建一个对应日期的文件夹来存放当天的日志文件。并且为了不让日志文件太大,影响我们查询,因此在日期文件夹中还需要按大小来切割成多个日志文件存放。将springboot项目打包成jar包运行,日志的配置依然有效。使用java -jar demo.jar运行jar包,日志会输出到设置的目录中。..
2021-01-05 18:30:46
4183
原创 mysql数据库查询事务并杀死,解决死锁问题
mysql数据库查询锁等待事务并杀死例如:程序由于某种特殊情况导致死循环,事务一直完成不了,这时候其他事务只能排队等待,此时会出现锁表等问题。可以通过将事务杀死解决锁表问题。之后再排查程序问题。1、查询SELECT * FROM information_schema.INNODB_TRX;图中trx_state字段值为LOCK WAIT,说明这个事务是在排队等待锁;如果值为RUNNING,则说明是在运行中,若是这个事务一直在运行中,说明这个事务出了问题,把这个事务杀..
2020-12-23 11:21:58
1010
原创 手动抛出异常回滚事务,且返回数据给前端
一、简介有时候会遇到需要手动抛出异常来回滚事务的情况,一般抛出异常后显示的是500服务器错误,如果想要返回json数据给前端的话,就可以用自定义异常类+全局异常捕捉。二、自定义异常类这里只定义了code码和msg消息,可以根据需要进行改造。public class CommonException extends RuntimeException { private int code; private String msg; public CommonExce.
2020-09-04 10:12:52
2734
6
原创 SimpleDateFormat线程安全问题与解决
一、简介SimpleDateFormat类内部有一个Calendar对象引用,如下图:SimpleDateFormat类的parse方法中,使用了Calendar的clear方法等,如下图:当我们编写DateUtil工具类时,可能会将SimpleDateFormat设置为static的,那么在并发的情况下线程共享同一个calendar,可能会出现问题。二、解决办法①去掉static,这样每次用到SimpleDateForm...
2020-08-10 16:22:17
229
原创 (一)docker安装RabbitMQ集群
1、简介RabbitMQ基于Erlang编写,Erlang天然支持分布式,只需要通过同步Erlang集群各节点的erlang.cookie实现。但是本身并不支持负载均衡。1.1、集群模式集群模式有两种:普通集群模式、镜像集群模式。①普通集群模式只进行元数据信息的同步:队列元数据:队列名称和属性; 交换器元数据:交换器名称、类型和属性; 绑定元数据:一张简单的表格展示了如何将消息路由到队列; vhost元数据:为vhost内的队列、交换器和绑定提供命名空间和安全属..
2020-07-14 12:09:32
494
原创 (十三)docker安装nginx
一、简介操作系统:LinuxCentOS 7.3 64位docker版本:19.03.8nginx版本:默认拉取最新版本二、实践1、拉取镜像docker pull nginx:latest2、运行容器docker run --name mynginx -d nginx3、将容器内nginx配置文件复制到服务器,不需要手动创建文件夹docker cp -a mynginx:/etc/nginx/ /home/soft/nginx...
2020-07-13 16:17:54
179
原创 微服务电商实战(十二)搭建商品服务搜索引擎
商品分类信息表CREATE TABLE `p_product_category` ( `category_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID', `parent_id` int(11) UNSIGNED DEFAULT NULL COMMENT '父ID', `name` varchar(128) DEFAULT NULL COMMENT '名称', `status` TINYINT DE...
2020-05-31 11:40:33
1177
原创 (十二)docker安装canal同步mysql8与elasticsearch7数据
docker pull canal/canal-server:v1.1.4docker run -d --name canal-server -p 11111:11111 -e canal.instance.master.address=47.98.183.103:3306 \ -e canal.instance.dbUsername=root \ -e canal.instance.dbPassword=123456 \ ...
2020-05-21 15:59:10
4285
8
原创 (十一)docker安装kafka
一、简介操作系统:LinuxCentOS 7.3 64位docker版本:Docker version 19.03.8kafka版本:默认拉取最新版本使用kafka还需要用到zookeeper,安装zookeeper二、实践2.1 拉取镜像docker pull wurstmeister/kafka:latest 查看镜像2.2 运行docker run -d --restart=always --name kafka -p 9092:...
2020-05-17 17:48:12
490
原创 /usr/bin/start-kafka.sh: line 149: /opt/kafka/bin/kafka-server-start.sh: No such file or direc
使用docker安装kafka的时候遇到一个错误/usr/bin/start-kafka.sh: line 149: /opt/kafka/bin/kafka-server-start.sh: No such file or directory原因是第一次安装镜像运行的时候内存不足,报了这个错误OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed;.
2020-05-17 17:30:21
1505
原创 (十)docker安装zookeeper
一、简介操作系统:LinuxCentOS 7.3 64位docker版本:Docker version 19.03.8zookeeper版本:默认拉取最新版本二、实践2.1 拉取镜像docker pull zookeeper:latest 查看镜像2.2 运行docker run -d --name zookeeper -p 2181:2181 zookeeper:latest-d:后台运行 --name:命名容器名称 -p:端口映...
2020-05-17 15:10:03
293
原创 (九)docker安装elasticsearch、ik中文分词器、kibana
一、简介操作系统:LinuxCentOS 7.3 64位docker版本:Docker version 19.03.8elasticsearch版本:默认拉取最新版本kibana版本:默认拉取最新版本kibana和elasticsearch的版本要相同,否则会出现版本不一致问题,这里我们拉取的都是最新版本,没有问题。二、实践2.1 elasticsearch1、拉取镜像docker pull elasticsearch查看镜像...
2020-05-11 15:08:10
1441
原创 微服务电商实战(一)电商项目概述
一、概述目前技术栈如下:①SpringBoot:2.2.6.RELEASE②SpringCloud:Hoxton.SR3③Swagger:1.7.0.RELEASE④JPA:2.2.6.RELEASE⑤Docker:19.03.8⑥Mysql:8.0.19⑦Redis:5.0.8⑧VUE:2.9.6从技术栈可以看出,本项目采用前后端分离的架构,SpringBoot+SpringCloud+Vue在目前非常流行;其中还涉及到Nexus3搭建maven私服,Gi.
2020-05-10 10:35:04
1519
原创 微服务电商实战(十一)搭建vue项目对接注册登陆接口,解决跨域问题,使用七牛云实现头像上传
node.js版本:v12.16.3node.js下载npm i -g cnpm --registry=https://registry.npm.taobao.org
2020-05-08 17:09:58
1005
原创 微服务电商实战(十)登陆接口
CREATE TABLE `u_user_token` ( `user_token_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `token` varchar(255) DEFAULT NULL COMMENT 'token', `login_type` TINYINT (1) DEFAULT NULL COMMENT '...
2020-04-30 11:09:20
427
原创 微服务电商实战(九)注册接口(dto+jpa+mysql+redis)
一、简介本篇博客实现我们的注册接口。注册流程是用户填写信息之后,关注我们的公众号发送手机号码,收到短信验证码之后填入,最后提交访问我们的注册接口。其中我们需要将验证码存入redis。注册接口校验参数,通过则将数据存入mysql;我们使用JPA来实现数据持久化。docker安装redisdocker安装mysqlSpringBoot2数据持久化之Jpa使用na...
2020-04-24 19:14:52
901
原创 JVM(八)JVM调优
一、什么是调优?1、根据需求进行JVM规划和预调优,如堆大小等。2、优化JVM运行环境(慢,卡顿)。3、解决JVM运行过程中出现的各种问题(OOM等)。日志必须设置多个。可以多个日志文件遍历着使用,也可以一天产生一个日志文件。二、参数说明输入java可以查看参数列表-开头的是标准参数,什么版本都能用。-X开头的是非标准参数输入java -X可...
2020-04-24 00:14:14
287
原创 JVM(七)垃圾收集器
一、简介上一篇博客中讲了垃圾回收的三种算法,这三种算法的不同组合也构成了10种垃圾收集器。前六种垃圾回收器需要两两组合(图中虚线相连的组合),是分代垃圾收集器,堆内存中逻辑分区,新生代中垃圾需要回收的个数多,采用复制算法,效率高;老年代中垃圾需要回收的个数少,采用标记整理算法。...
2020-04-24 00:10:41
295
原创 frp报do http proxy request error: EOF
在使用frp内网穿透的时候,服务端报错do http proxy request error: EOF没看出来是什么问题直到在客户端看到报错No connection could be made because the target machine actively refused it.才知道,原来是本地的127.0.0.1的80端口没有使用。。。。。我忘记启动项...
2020-04-20 14:35:55
6415
4
原创 微服务电商实战(八)短信接口开发
一、简介本篇文章要实现的是发送验证码短信功能。这里我使用的是腾讯云的短信接口,原因很简单,我新注册的腾讯云,有100条短信可以免费使用,哈哈。腾讯云注册登录后出现这个页面往下拉,可以看到下图根据提示分别申请签名和模板;创建签名选择签名类型为公众号,这样只需要公众号截图就可以了;签名内容填写公众号的全称或简称。我的模板内容为:您的...
2020-04-20 12:15:59
726
原创 JVM(六)分代收集与分区收集
一、分代收集根据对象存活周期的不同将内存划分为几块,如新生代、老年代、永久代,这样就可以根据各年代特点分别采用最适当的GC算法。新生代采用复制算法在新生代每次垃圾收集都能发现大批对象已死,只有少量存活。因此选用复制算法,只需要付出少量存活对象的复制成本就可以完成收集。新生代GC较频繁,但GC效率高。老年代采用标记整理算法老年代对象存活率高、没有额外空间对它进行分配担...
2020-04-17 15:35:14
513
原创 JVM(五)JAVA四种引用类型
一、强引用在java中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会被用到JVM也不会回收。因此强引用是造成Java内存泄露的主要原因之一。二、软引用软引用需要用SoftReference类来实现,对于只有软引用的对象来说,当系统内存足够时它不...
2020-04-17 14:56:05
133
原创 JVM(四)垃圾回收与算法
一、简介二、如何确定垃圾2.1 引用计数法在java中,引用和对象是关联的。如果要操作对象则必须用引用进行。因此,一个简单的办法是通过引用计数来判断一个对象是否可以回收。在对象头中分配一个空间来保存该对象被引用的次数,如果该对象被引用了,则加1,如果该引用被取消了,则减1,当该对象的引用为0时,就被当成垃圾回收了。垃圾收集的开销被分摊到整个应用程序的运...
2020-04-17 10:15:15
109
原创 微服务电商实战(七)公众号消息接口开发
一、简介本篇博客要实现的功能是用户注册时需关注我们的公众号发送手机号码获取验证码,使用公众号+wxjava+redis+mysql实现。wxjava的使用方法wxjava的demodocker安装redisdocker安装mysql微信公众号公众平台接口调用仅支持80端口,公众号必须实名。...
2020-04-16 12:01:31
586
原创 (八)docker安装mysql
一、简介操作系统:LinuxCentOS 7.3 64位docker版本:Docker version 19.03.8mysql版本:默认拉取最新版本二、实践1、拉取镜像docker pull mysql查看镜像2、创建mysql挂载文件夹conf、logs、datamkdir /usr/local/mysqlmkdir /usr/l...
2020-04-15 11:54:50
320
原创 (七)docker安装redis
一、简介操作系统:LinuxCentOS 7.3 64位docker版本:Docker version 19.03.8redis版本:默认拉取最新版本二、实践1、拉取镜像docker pull redis:latest查看镜像2、创建redis配置文件存放目录和数据挂载目录mkdir /usr/local/redismkdir /us...
2020-04-15 11:21:42
162
原创 微服务电商实战(六)统一响应体
一、简介目前项目还没有规范响应数据,这样前端开发者会不知道后端响应过来的数据会是什么样的,比如获取一个列表的数据,访问成功了就返回一个列表的数据,失败了就返回错误信息字符串,很难判断。因此,统一响应数据是前后端规范中必须要做的。ok,开始实战吧。二、在parent项目基础上创建公用Module——shop-common最终架构实现如图所示shop-...
2020-04-14 16:31:37
394
原创 微服务电商实战(五)配置中心
一、简介在微服务项目中,服务数量和程序的配置日益增多,传统的配置文件方式已无法满足开发人员对配置管理的要求:如修改配置需要重启服务才能生效、无法支持动态调整(如日志开关、功能开关等);因此我们需要配置中心来统一管理配置。本章节我们为微服务电商项目加入配置中心,采用SpringCloudConfig+SpringCloudBus+RabbitMq。ok,开始实战吧。二、准...
2020-04-14 12:17:30
263
原创 (六)docker安装RabbitMQ
一、简介操作系统:LinuxCentOS 7.3 64位docker版本:Docker version 19.03.8RabbitMQ版本:rabbitmq:3-management 带有管理界面二、实践1、拉取镜像docker pull rabbitmq:3-management拉取成功后查看镜像2、运行容器两种方式:①默认gues...
2020-04-13 16:54:14
129
原创 微服务电商实战(四)maven私服与gitlab代码管理
一、简介在微服务开发中,一般会使用到maven私服和gitlab代码管理。二、基于Nexus3的maven私服安装:docker搭建maven私服创建仓库如此便创建好了。修改本地maven的settings.xml配置文件添加server配置<server> <id>nexus-release...
2020-04-13 14:12:59
766
原创 (五)docker搭建gitlab
一、简介操作系统:LinuxCentOS 7.3 64位docker版本:Docker version 19.03.8gitlab版本:默认拉取最新版本服务器配置不能太低, gitlab比较耗资源, 这也是它功能强大的来源。二、实践1、拉取镜像docker pull beginor/gitlab-ce拉取完成后,查看镜像docker images...
2020-04-13 11:44:43
431
原创 (四)docker搭建maven私服
一、简介操作系统:LinuxCentOS 7.3 64位docker版本:Docker version 19.03.8基于Nexus3搭建maven私服。二、实践1、拉取Nexus3镜像docker pull sonatype/nexus3拉取完成后查看镜像docker images可以看到有nexus3镜像2、创建nexu...
2020-04-11 12:21:58
168
原创 微服务电商实战(三)gateway统一管理swagger
一、简介本篇文章要实现的是给接口服务引入swagger来生成接口文档,并用gateway来聚合API。ok,开始实战吧。二、引入swaggershop-service-api添加swagger依赖,pom如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.a...
2020-04-10 17:46:41
1679
java后端学习笔记
2019-08-21
eclipse查看jar源码含教程步骤,亲测可用
2019-07-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人