- 博客(32)
- 资源 (4)
- 收藏
- 关注
原创 Rest对象转换为json时,value值为null,key是否需要返回逻辑
Rest对象转换为json时,value值为null时,key是否需要返回的逻辑处理
2022-08-18 10:59:53 532 1
原创 微服务分布式架构-gateway服务集成nacos
微服务分布式架构,统一网关gateway的搭建,不需要写一行代码,直接配置文件加springboot启动脚本即可实现分布式
2022-01-12 15:27:37 3424 1
原创 linux上安装docker和harbor私有镜像仓库
准备一个虚拟机,装好linux操作系统一、docker安装1、docker依赖于系统的一些必要的工具,可以提前安装。yum install -y yum-utils device-mapper-persistent-data lvm22、添加软件源yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/lin...
2020-03-04 15:40:41 531
原创 分布式锁的实现方法
一、锁使用场景对公共区域数据并发访问,为防止数据脏读,脏写而使用锁。下面举例如下:从redis中取数据,做一定处理,再将处理后的数据压入,当多线程或多进程对同一个key对应的数据做处理时,就可能由于并发导最后的结果不是预期想要的。二、锁的使用流程 锁的大体使用流程都是获取锁,做数据处理,然后释放锁,流程图如下: 三、多线程同步锁如果只是涉及单进程...
2019-10-21 10:50:55 541
原创 Integer、String等封装对象比对最好用equals方法
Integer为封装对象,比较大小不要用“==”,而要用equals当然有时候发现用”==”也有效,如下面代码结果就是trueInteger a=Integer.valueOf(127);Integer b=Integer.valueOf(127);System.out.println(a==b);这个是由于Integer.valueOf方法中做了判断,当值小...
2019-10-12 14:36:07 825
原创 1:N图片识别分布式解决方案
一、背景1:N图片比对(人脸比对,车辆比对)为通用场景,但当N特别大时,如上千万,单服务多线程处理模式速度太慢,需要改造成分布式多服务并发执行,这样不仅能提高速度,扩展性也好。二、整体思路1、增加任务调度服务,任务调度服务主要分任务拆分和任务合并两个功能。2、任务调度收到业务平台的1:N识别命令,先根据过滤条件分批从hbase取所有图片的唯一id列表保存到本地文件,然后读...
2019-10-12 14:31:03 1219
原创 windows上模拟mysql主从数据同步
一、同一台windows电脑上搭建两套mysql第一套主mysql端口采用默认的3306,第二套备mysql端口采用3307,搭建过程省略。 搭建完后文件路径格式为: 3.启动后服务中有两个mysql服务二、两套mysql的配置文件如下主mysql 2.备mysql,备mysql需要设置端口为3307,默认为3306可以不用设置。...
2019-03-28 16:08:03 363
原创 Token鉴权机制
1、用户注册/添加用户,两个参数:userId、password 2、用户登录,登录校验userId和password 是否正确,正确根据userId、password 、时间戳,用MD5不可逆算法生成token。 将userId、token、超时时间存到数据库中,可以存在redis中,并将token返回给客户端。3、前台在超时时间内再次请求带上userId和token即可进行...
2018-09-29 15:37:14 10523
原创 缓存穿透、缓存击穿、缓存雪崩区别和解决方案
一、缓存处理流程 前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。 二、缓存穿透 描述: 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导...
2018-09-19 14:35:57 470177 120
原创 Mysql场景刷数据库脚本方法和顺序
新建环境脚本可以按如下几步按顺序在数据库中执行。CreateUser.sql该文件中放创建用户,创建数据库,将数据库的执行权限赋给用户的相关语句。举例如下:CreateTable.sql该文件中放业务需要的表结构的创建语句。举例如下 插入预置数据InsertData.sql 该文件中放业务需要的初始化数据 升级环境当环境已经发布过,...
2018-09-18 17:05:10 2645
原创 Mysql 5.59在windows10下乱码解决方式
1、安装完mysql,在dos登陆mysql,然后建表并插入中文数据,在dos执行查询显示乱码: 2、网上查询相关资料,是mysql得my.ini没有配置相关编码,执行【show variables like "%char%";】 如下所示,明显character_set_database编码位latin1(其实就是ISO-8859-1),而客户端访问和链接 都是gbk编...
2018-03-18 10:38:19 772
原创 Nginx+2个服务器各部署一套tomcat进行负载均衡模拟测试
1、安装Nginx和tomcat 安装请参考前面博文:Nginx安装与配置和开发环境准备-tomcat安装测试2、Tomcat部署web服务 1) 在eclipse上file ->new->Dynamic Web Project创建一个webTest工程,然后再WebContent 下建一个index.html文件,在文件body中输入Welc...
2018-03-11 21:09:25 453
原创 开发环境准备-Mysql安装(5.5.59 windows10 64位安装)
1、下载 1) 官网地址:http://www.mysql.com/downloads/ 2) 选择64位的版本下载 3) 登陆oracle账号下载,没有的话需要注册,我前面注册过,只是忘记密码,重置密码即可2、安装 1) 复制D:\soft\mysql-5.5.59-winx64...
2018-03-10 09:38:24 10195 3
原创 Nginx安装与配置
1、Nginx是什么 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。Nginx是一个负载均衡器2、Nginx下载 1) 官网地址...
2018-03-09 20:27:26 276
原创 开发环境准备-Mysql安装失败(5.6.39版本)
1、下载 1) 官网地址:http://www.mysql.com/downloads/ 2) 选择64位的版本下载 3) 登陆oracle账号下载,没有的话需要注册,我前面注册过,只是忘记密码,重置密码即可2、安装 1) 复制D:\soft\mysql-5.6.39-winx64下my-defaul...
2018-03-07 20:44:06 1674
原创 开发环境准备-tomcat安装测试
1、下载tomcat 1)官网下载地址:https://tomcat.apache.org 2) 在上图左边选择待下载的版本,这里本人选择Tomcat 8,然后再选择 64位windows zip包 2、安装 1)下载的为绿色版本,直接解压 ...
2018-03-06 20:57:01 250
原创 J2EE开发准备工作
一、JDK的下载、安装、配置请参考该文章:http://blog.csdn.net/kongtiao5/article/details/79439894二、开发工具选择和安装1. Eclipse还是MyEclipseMyEclipse是Eclipse+很多插件的版本,相对来说功能更全,也更厚重,占电脑资源相对较多,需要收费,当然可以用破解版。两者区别可以参考博客:http://blog.cs...
2018-03-05 20:49:47 270
转载 JVM重要参数调优
java -Xms -Xmx -XX:PermSize -XX:MaxPermSize在做java开发时尤其是大型软件开发时经常会遇到内存溢出的问题,比如说OutOfMemoryError等。这是个让开发人员很痛苦、也很纠结的问题,因为我们有时不知道什么样的操作导致了这种问题的发生。所以我们不得不通过不断的优化自己的代码结构,重构了一次又一次。虽然说不断的重构自己的代码对公对私都是一件非常好的事...
2018-03-05 20:05:16 329
转载 Java8内存模型—永久代(PermGen)和元空间(Metaspace)
一、JVM 内存模型 根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。 1、虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每个方法会创建一个栈帧,栈帧中存放了局部变量表(基本数据类型和对象引用)、操作数栈、方法出口等信息。栈的大小可以固定也可以动态扩展。当栈调用深度大于JVM所允许的范围,...
2018-03-05 16:18:34 179
原创 开发环境配置-JDK的安装与配置
一、 下载JDK1、 确认要下载的JDK版本 确认要运行服务器的版本和操作系统,我的在本机运行,是window10 64位操作系统。正式做项目一般选次新较稳定的版本,直接下载1.8最新版本。2、 官网下载路径:1)打开oracle官网首页,https://www.oracle.com/index.html,然后按下图找到下载路径 2)点击java Downloads ...
2018-03-04 21:29:19 223
原创 工作中比较有用的shell命令
1、查找60分钟内被改过的jar包 命令:find -mmin -60 -name *.jar,场景举例:大型项目中,很多人共用一套环境,环境突然出问题,不知道是谁换包引起2、find,xargs,grep联合使用 命令:find . -name *.sh | xargs grep 1024,场景举例:修改tomcat下虚拟机的默认启动内存,修改后发现不起作用,这 时修...
2018-03-03 16:53:56 308
原创 项目管理-项目整体计划Excel表格绘制
一、 最终效果图:二、 制作步骤1、 填写项目执行过程横坐标和纵坐标相关内容 2、 批量调整行高,并加上边框1) 一次选中所有行,设置高为252) 选中所有列,设置宽,这里宽度刚好,不用设置3) 选中,右击->设置单元格格式->边框,设置边框 3、 设置字体颜色,设置背景颜色 4、 设置项目每项活动所占时间1) 设置占时空格的颜色2) 插入->形状->基本形状,选三角形,拉...
2018-03-03 16:14:59 24837 1
原创 HashMap线程不安全问题
一、问题现象 虚拟机创建失败后,发现底层(openstack)的异常虚拟机还在,没有做删除回滚。查看日志发现“java.util.ConcurrentModificationException”异常: 二、问题分析 创建虚拟机失败后,会下发命令删除虚拟机做回滚,而删除前会查询虚拟机,由于查询虚拟机很慢,起了多线程分别查计算、存储、网络等相关信息。而查询时...
2015-09-13 11:35:03 1607
走出华为,经典啊经典
2010-12-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人