自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

技术成就人生

逼着你往前走的,不是前方梦想的微弱光芒,而是身后现实的万丈深渊。 --致自己

  • 博客(165)
  • 收藏
  • 关注

原创 git命令回退指定项目版本

# 1.查询出commitIdgit log -pretty=oneline# 2.回滚指定版本的commitIdgit reset --hard commitId# 3.强推保证本地和远程同步git push -f# 4.重新查询新提交记录git reflog

2021-12-21 15:40:17 310 1

原创 jdk1.8 计算集合对象中各个属性值分别相加写法

问题:计算集合对象中各个属性值分别相加操作,但是下面这种写法太low了public static void main(String[] args) { List<Test> testList = Arrays.asList(new Test(1L,2L,3L,4L,true),new Test(1L,2L,3L,4L,false),new Test(1L,2L,3L,4L,true)); Long aSum = 0L; Long bSum = 0L; ...

2021-07-21 13:56:35 2281

原创 项目指定git分支回退到指定版本步骤

  1.找到要回退的版本号(右击项目--> Git --> Show History -->选中要回退的版本-->Copy Revision Number);  2.打开idea的Terminal 输入命令  gitreset--hard139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96 (后面为版本号)  3. 把修改推到远程服务器  gitpush-f-uoriginmaster(master为指定分支)...

2021-07-06 16:09:36 1843

原创 maven项目框架脚手架使用方法

我们的项目现在几乎都是微服务架构,开发人员通常会自己负责某一模块的微服搭建和开发,每个人因技术水平不同,搭建出来的项目框架五花八门,这样子我们就需要将通用的项目框架交给maven管理,开发人员只需执行一下maven命令就能下载使用mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate ^ -DgroupId=com.baidu.ea2 ^ -DartifactId=test-demo ^ -Dversion=1....

2021-06-22 10:34:06 212

原创 电商系统设计

电商系统设计要点一、 最主要的业务流程                            1‑1购物流程                        1‑2购物流程时序图  时序图详解:  1、用户开始浏览商品,需要有一个商品模块来支撑,给用户展示商品的介绍、价格等等这些信息。  2、用户把选好的商品加入购物车,这个步骤,也需要一个购物车模块来维护用户购物车中的商品。  3、 用户下单肯定需要一个订单模块来创建这个新订单。订单创建好了之后,需要把订单中的商品...

2021-05-19 11:28:28 2107

原创 mysql sql优化建议

1. 为查询缓存优化你的查询大多数的 MySQL 服务器都开启了查询缓存。这是提高性最有效的方法之 一,而且这是被 MySQL 的数据库引擎处理的。当有很多相同的查询被执行了多 次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不 用操作表而直接访问缓存结果了。 这里最主要的问题是,对于程序员来说,这个事情是很容易被忽略的。因 为,我们某些查询语句会让 MySQL 不使用缓存。请看下面的示例:上面两条 SQL 语句的差别就是 CURDATE() ,MySQL 的查询缓存对这个函数

2021-05-08 15:43:19 147

原创 cpu飙升系统挂掉解决方案

1.使用top命令找到cpu占比高的进程ID2.使用jstack pid > jstack.txt命令导出进程对应的所有线程信息jstack 26020> jstack.txt3.使用fastthread【地址:fastthread.io】导入jstack.txt文件进行分析4.点击左边栏CPU threads找到对应的线程,在点击See complete stacktrace找到对应的业务接口代码进行优化总结:通过上面的操作很容易就能找到哪个接口消耗cp

2021-05-07 09:15:07 391

原创 Dubbo 发展史一览

Dubbo 发展史一览2011 年 10 月 27 日,阿里巴巴开源了自己服务化治理方案的核心框架 Dubbo,服务治理的设计理念开始逐渐在国内软件行业中落地,并被广泛应用。自开源后,许多非阿里系公司选择使用 Dubbo,其中既有当当网、网易考拉等互联网公司,也有中国人寿、青岛海尔等传统企业。2012 年 10 月 23 日 Dubbo 2.5.3 发布后,在 Dubbo 开源将满一周年之际,阿里基本停止了对 Dubbo 的主要升级。2013 年,2014 年,更新了 2 次 Dubbo 2.4

2021-04-08 09:19:24 1282

原创 搭建zookeeper集群

这里以2台机器为例【10.253.96.110,10.253.96.135】,n台机器都是一个原理1.下载zookeeper官网自行下载:https://zookeeper.apache.org/releases.html#download2.将下载好的apache-zookeeper-3.7.0-bin.tar.gz上传两台服务器3.解压tar -zxvfapache-zookeeper-3.7.0-bin.tar.gz这里我把解压后文件放到了/opt/softs下并把名.

2021-04-07 17:28:03 125

原创 Git管理分支规范

Git管理分支规范,严格执行啊,哈哈develop分支开发分支,保存开发时最新的代码和最后的bug修复,各开发人员都有对它pull和push权限。feature分支特性分支,开发新特性时从develop分支创建,命名规则为feature-name。一般是开发相对独立的功能模块时创建,开发完成后合并到develop分支。release分支预上线分支,主要用来集成测试,一般在开发完成后准备测试时从develop分支创建,主要用来跟踪测试环境的bug问题。测试没有问题后合并到m...

2021-04-07 10:50:24 110

原创 IT项目生命周期

贴个图记录下,非常勿扰

2021-04-06 14:16:46 310

原创 Nacos集群配置

1.单机启动 官方下载nacos,默认nacos是集群启动的,直接运行启动文件会报错的,需要在启动命令后加参数 -m standalone例如:startup.cmd -m standalone 【wins】,startup.sh-m standalone 【linux】,当然这不是我们今天的主题2.集群启动由于我不想搭建虚拟机,就在本地通过3个端口模拟3台机器,端口分别是:8849,8851,9991,步骤:2.1. copy3份解压后的nacos,修改各自的applicati...

2021-03-24 11:59:34 2658 3

原创 CountDownLatch+CyclicBarrier+Semaphore

今天我们看下存在于java.util.cucurrent包下的其他工具类:countDownLatch,CyclicBarrier,Semaphore1.CountDownLatch是一个同步工具类,用来协调多个线程之间的同步,大白话就是:4个线程同时执行任务,最后一个线程一直等3个线程执行完之后才执行原理:初始化为3的计数器,启动3个线程,每启动一个线程计数器就会减1,当计数器为0时,也就是前3个线程都执行完了,最后一个线程才被唤醒执行汇总逻辑,主要通过countDown和await方法实现.

2021-03-02 16:42:19 115

原创 集成kafka

环境配置:1.增加spring-kafka的配置spring kafka: # 指定kafka 代理地址,可以多个 bootstrap-servers: 10.253.96.128:9092 template: # 指定默认topic id default-topic: producer listener: # 指定listener 容器中的线程数,用于提高并发量 concurrency: 5 consumer:...

2021-02-09 17:14:44 205

原创 Logstash配置

修改配置文件 logstash-sample.conf :# input{ } ,elasticsearch{ }不需要修改 output{ }需要添加自己配置的服务 input {redis { data_type =>"list" key =>"default_list" host =>"10.253.100.121" port => 637...

2021-02-09 11:38:11 316 4

原创 Filebeat的安装

Filebeat的安装选用filebeat的版本和es,kibana的版本号一致,我们之前采用的是7.2.0的版本,故需安装filebeat的版本是7.2.0 【filebeat-7.2.0-linux-x86_64.tar.gz】解压,修改配置文件。修改配置文件filebeat.yml=============Filebeat inputs ==================配置日志读取的路径 以及自定义的字段 注:要yml的格式- type: log enabled:...

2021-02-09 11:33:00 354

原创 手动写一个Spring中注解是怎么依赖注入的

面试中被问到了Spring中注解是怎么依赖注入的,今天就这个话题,总结一下,大致思想是: 1.用反射机制. 获取指定的包下使用了注解的类,存储到bean容器 2.循环获取bean容器中类的属性并利用反射给使用了注解的属性赋值对象一.我们自定义注解替代我们平时用的@Sevice @Resource注解/** * 作用在Service实现类上的注解,由于有@Component,会自动加载Service实现类到bean容器中 * @author RenPL */@Documented..

2021-02-08 10:31:08 201 2

原创 微信支付工具类

import lombok.extern.slf4j.Slf4j;import org.apache.http.HttpEntity;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpPost;import org.apache.http.conn.ssl.SSLConnectionSocketFactory;import org.apache.

2021-02-01 10:36:45 515

原创 工作中常用的linux命令汇总

1.ps aux 查看系统中的进程状态,用于分析进程PID对应的CPU使用率,内存使用率,进程状态等等使用场景:启动jar的时候老是起不来,偶尔会出现启动一个jar就会把另一个启动好的jar给踢掉,这时候我们需要查看linux CPU或者内存有没有被占满,比如:我们可以列出前10个内存或者是CPU占用最高的进程相关信息,来解决我们的问题,把占用CPU或者内存高的没用的进程kill掉 1.1 列出前10个C内存占用最高的进程相关信息 ps aux | head -n 1; ps aux...

2021-01-28 14:19:58 165

原创 nginx配置ssl安全证书来支持https请求

1.申请免费的证书 阿里云等平台自行去申请2.将这两个文件放置到服务器中,这里放到/root/temp目录下 full_chain.pem private.key3.配置nginx的配置文件server {listen 443;server_name test.com; #配置二级域名location ^~/test_api/ {proxy_pass http...

2021-01-26 16:54:36 214

原创 记录一篇优秀的关于nginx的文章

https://www.runoob.com/w3cnote/nginx-setup-intro.html

2021-01-26 13:18:42 104

原创 redis实现分布式锁-直接用去吧

import com.alibaba.fastjson.JSON;import com.google.common.collect.Lists;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Scope;import org.springframework.data.

2021-01-20 13:45:18 138 2

原创 常用的docker-compose.yml贴一下

version: '3'services: #mysql服务 mysql5.7: restart: always image: mysql:5.7 container_name: docker_mysql environment: MYSQL_ROOT_PASSWORD: "123456" MYSQL_USER: 'root' MYSQL_PASS: "123456" volumes: - /opt...

2021-01-07 14:00:07 226 1

原创 docker 运行 seata-server 配置nacos

1、拉取镜像docker pull seataio/seata-server:1.4.02、运行镜像docker run --name seata-server -p 8091:8091 -d seataio/seata-server:1.4.03、复制配置文件到主机docker cp seata-server:/seata-server /opt/seata 该命令会把seata-server容器目录结构复制到我们宿主机/opt/seata目录下4、停止服务d.

2020-12-22 13:56:10 767

原创 Nacos集成分布式事务Seata文档

今天参照seata官方文档总结下seata集成,网上有很多各式各样的博客,有的真是误导人,个人建议以后学习新组件,我们一定要先看组件官方文档,这里我们以seata1.4 AT模式为例服务端搭建步骤:1.打开seata官方文档:http://seata.io/左下角找到 【部署】==> 新人文档2.下载seata源码 https://github.com/seata/seata/tree/1.4.0 存放client端sql脚本,参数配置和server端数据库脚本及...

2020-12-21 15:50:06 773

原创 IDEA+Docker实现服务自动化部署

11

2020-12-07 11:40:57 211

原创 docker部署springboot项目

1.在dockerTest目录下创建Dockerfile文件2.本地项目打包jar上传至dockerTest目录下3.Dockerfile内容如下FROM openjdk:8-jdk-alpineVOLUME /tmpADD hy-base-web.jar /app.jarENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]4.进入dockerTest目录下执行docker命

2020-12-04 17:03:33 70

原创 Lists.partition(List<T> list, int size)集合分组函数总结

Lists.partition(List<T> list, int size)这个函数有什么用途呢?这里我给大家列举一例:比如我们系统中有一个批量导入的接口,由于数据量很大,写入数据库很耗时,导致这个接口是用不了【TimeOutException】怎么解决呢?我们脑海里立即会想到多线程去处理,一堆砖块让多个worker去搬,效率更高些,那问题来了,每个worker搬多少砖呢?这就用到我们这次说的Lists.partition函数Lists.partition函数由很多公司或者组织

2020-11-30 14:07:31 1396 3

原创 MQ消息内容去重消费解决方案

今天写一个小儿科的MQ消息去重消费解决方案,思路如下:1.在消息体中定义消息的唯一索引字段uniqueId private StringuniqueId;2.重新uniqueId字段的get方法给uniqueId赋值,具体生成uniqueId值算法根据系统业务需求而定 比如: public String getUniqueId() { StringBuffer columnAppend = new StringBuffer().append(wechatG...

2020-11-23 14:09:34 1124

原创 mongodb数据从一个服务器迁移到另一个服务器

1.从服务器1mongodb的bin目录下执行命令导出名为cargonow 的数据库,名为:no_car的collection导出后的文件为:no_car.dat/usr/bin/mongoexport -d cargonow -c no_car -o no_car.dat2.从从服务器2导入名为cargonow 的数据库,名为:no_car的collection将 no_car.dat放到mongodb的bin目录下/usr/local/mongodb/bin/mongoimport

2020-11-12 16:56:30 1894

原创 mongodb安装

1.下载对应操作系统的包:MongoDB 源码下载地址:https://www.mongodb.com/download-center#community2.解压到指定目录下,比如:/usr/localtar -zxvf mongodb-linux-x86_64-ubuntu1604-4.2.8.tgz 重命名: mvmongodb-linux-x86_64-ubuntu1604-4.2.8.tgz mongodb3.配置环境变量vi /etc/profile添加内容如下:..

2020-11-12 15:23:20 150

原创 一款优秀的开源框架

github https://github.com/elunez/eladmin https://github.com/elunez/eladmin-web 码云 https://gitee.com/elunez/eladmin https://gitee.com/elunez/eladmin-web 开发文档:https://el-admin.vip前端模板初始模板基于:https://github.com/Pa...

2020-11-11 09:30:00 185

原创 Docker常用命令记录

=======================================docker 常用命令==============================================docker ps -a ===>> 查询详细的docker进程信息docker images ===>> 查看本机镜像信息docker search 镜像名称 ===>> 根据镜像名称查询镜像信息docker pull 镜像全路径 ===&gt...

2020-11-10 09:32:39 75

原创 springboot之https安全访问

SpringBoot启动时默认采用http进行通信协议定义,考虑到安全,往往会使用https进行访问。正常来讲,https的访问是需要证书的,并且为了保证这个证书的安全,一定要在项目中使用CA进行认证。下面只是在本机做一个简单的模拟,利用Java提供的keytool命令实现证书的生成。1.【操作系统】利用keytool生成一个证书。该程序执行完成后会生成一个名称为keystore.p12的证书文件,该证书的别名为mytomcat,访问密码为mldnjava。2.【mldnboot-web项目】将

2020-10-26 16:17:46 625

原创 redis序列化工具类

用于初始化redis模板时序列化属性设置:redisTemplate.setValueSerializer(redisObjectSerializer);工具类如下:import org.springframework.core.convert.converter.Converter;import org.springframework.core.serializer.support.DeserializingConverter;import org.springframework.core.s.

2020-10-26 10:40:35 571

原创 防暴力破解,限流策略

限流组件ratelimit配置<dependency> <groupId>com.marcosbarbero.cloud</groupId> <artifactId>spring-cloud-zuul-ratelimit</artifactId> <version>2.0.6.RELEASE</version></dependency>注:不能使用版本太低的,版本太低的在配...

2020-10-14 09:37:49 479

原创 利用反射将类[以及父类]中所有非空字段填充至Map

@Slf4jpublic class ReflectionUtil { /** * 类中所有非空字段填充至Map * * @param target * @return */ public static Map<String, Object> getAllNonFieldToMap(Object target) { Map<String, Object> map = new HashMap<.

2020-10-09 10:30:09 134

原创 RabbitMQ 集群与高可用配置

集群概述首先RabbitMQ这款产品本身的优点众多,大家最看好的便是他的异步化提高系统抗峰值能力,然后便是系统及功能结构解耦,那么照此两点来说,他的在整个系统中的作用还是至关重要的,那么如此重要,当然要考虑他的高可用性,通过 Erlang 的分布式特性(通过 magic cookie 认证节点)进行 RabbitMQ 集群,各 RabbitMQ 服务为对等节点,即每个节点都提供服务给客户端连接,进行消息发送与接收。这些节点通过RabbitMQ HA 队列(镜像队列)进行消息队列结构复制。本...

2020-09-18 14:02:11 125

原创 使用多线程实现一个阻塞队列

package com.es.demo;import lombok.extern.slf4j.Slf4j;import java.util.LinkedList;import java.util.concurrent.atomic.AtomicInteger;/** * 使用多线程实现一个阻塞队列 * * @author renpl */@Slf4jpublic class MyBlockQueue { // 初始化一个普通队列 private final Link.

2020-09-18 10:12:46 345

原创 Java多线程实现方法总结

一.实现Runnable接口static class RunnableImpl implements Runnable { @Override public void run() { log.info("通过实现Runnable接口实现线程:{}", Thread.currentThread().getName()); }}二.继承Thread类static class ThreadImpl extends Thread { @Override.

2020-09-16 09:49:22 83

空空如也

空空如也

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

TA关注的人

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