自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

白玉灬风的博客

java界的一枚小学生

  • 博客(78)
  • 资源 (1)
  • 收藏
  • 关注

原创 application.yml修改为bootstrap.yml文件不生效

把springboot微服务改造为模块化后,因项目优化需要将application.yml修改为bootstrap.yml。修改完成后,一直不生效。查阅相关资料,在pom文件中加入相关依赖,解决了加载不到的问题。特此做个笔记。<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap<...

2021-01-20 16:12:39 1978 2

转载 Redis详解

redisredisreids的常用数据类型1.String2.Hash3.List5.Sorted Set(ZSet)6.其他发布(pub)订阅模式(sub)模...

2020-08-19 21:12:30 441

原创 CentOS安装Redis

1、去官网下载稳定版本https://redis.io/:2、下载完成后上传到服务器,这里我放在了/home/software下,没有该目录,执行下面的命令:mkdir /home/software3、解压安装包,redis-6.0.6.tar.gz 根据自己的:#进入到目录下cd /home/software#解压tar -zxvf redis-6.0.6.tar.gz4、安装依赖包:yum -y install gcc-c++5、执行:make

2020-08-11 23:13:00 204

原创 搭建基于DR模式的LVS+Keepalive高可用集群

事前的IP规划图如下:两台LVS+Keepalived的IP规划如下:虚拟IP(VIP):192.168.235.20主节点IP:192.168.235.21主节点IP:192.168.235.22RealServer 的IP规划如下:192.168.235.101192.168.235.103完成后规划图如下所示:一、LVS主机(192.168.235.21,192.168.235.22)安装安装ipvsadmyum install -y ipvsadm二、LVS

2020-08-09 12:15:15 244

原创 Keepalived双机热备配置文件

Keepalived双机热备其实就是将就是在主备的基础上,在虚拟一个IP,主备节点位置调换即可。主备如何配置及配置文件参数解析可以参考本人的上一篇文章:https://blog.csdn.net/qq_34871626/article/details/107774077下面就直接列出双机热备的示例,不做过多赘述。节点一:! Configuration File for keepalivedglobal_defs { router_id keep_103}vrrp_script

2020-08-07 19:39:46 158

原创 Keepalived配置Nginx自动重启

1. 增加nginx 检查脚本vi /etc/keepalived/check_nginx_alive_or_not.sh脚本内容如下:#!/bin/bashA=`ps -C nginx --no-header | wc -l`# 判断nginx是否宕机,如果宕机尝试重新启动if [ $A -eq 0 ];then /usr/local/nginx/sbin/nginx # 等待3秒检查nginx 如果没有启动成功 则停止keepalived 启动备用机

2020-08-05 23:02:59 1128

原创 解决Keepalived主备都含有VIP

部署完keepalived后,测试下效果,发现主备切换很慢。在两台主机上查看IP信息。执行ip addr发现主备节点机都有VIP。好吧,根本主备都不成立,所谓的切换,只是IP被占用后的切换。查了下网上资料,找到解决办法。设置Selinux为宽容模式:setenforce 0 #设置为宽容模式,临时sed -i 's/=enforcing/=disabled/g' /etc/sysconfig/selinux #设置为宽容模式,永久接着防火墙规则中增加开放VR

2020-08-05 21:56:05 3141 4

原创 Nginx跨域配置

可以在server或location节点下添加如下配置:#允许跨域请求的域,*代表所有 add_header 'Access-Control-Allow-Origin' *;#允许带上cookie请求add_header 'Access-Control-Allow-Credentials' 'true'; #允许请求的方法,比如GET/POST/PUT/DELETE add_header 'Access-Control-Allow-Methods' *;#允许请求的header a

2020-08-05 12:12:51 298

原创 OSI网络模型

在讲到Nginx负载均衡的时候,其实Nginx是七层负载均衡,LVS是四层负载均衡,七层和四层是什么概念呢?这就必须提到网络模型。网络模型是计算机网络基础的一部分内容。网络模型就是OSI (Open System Interconnect) ,意思为开放网络互联,是由国际标准化组织(ISO)和国际电报电话咨询委员会 (CCITT)共同出版的,他是一种网络互联模型,也是一种规范。网络模型分为七层,也就是当用户发起请求到服务器接收,会历经七道工序,或者说用户利用互联网发送消息给另一个用户,也会历经七道工

2020-08-05 12:12:21 387

原创 Keepalived安装及双机主备配置

Keepalived用于解决单点故障,可以实现nginx的高可用。该组件免费。可以实现高可用HA机制。基于VRRP协议。虚拟路由冗余协议协议(VRRP协议):解决内网单机故障的路由协议构建有多个路由器MASTER BACKUP,将几台提供相同服务的路由器组成路由器组,每路由器绑定一个虚拟IP。使用keepalived实现高可用前提:硬件配置需要一样...

2020-08-04 22:18:10 953

原创 Nginx日志切割

nginx的日志如果不做切割的话,文件的内容会越来越多,体积会越来越大,不便于运维查看。所以我们可以通过把大的日志文件切割成多份不同的小文件作为日志,切割规则可以以天为单位,如果每天有几百甚至上千G,则可以按需以半天或者小时为单位进行切割。手动切割具体步骤如下:1、创建一个shell可执行文件vi /usr/local/nginx/sbin/cut_nginx_log.shcut_nginx_log.sh,内容为:#!/bin/bash# Description: rota..

2020-08-02 20:17:22 197

原创 同步与异步,阻塞与非阻塞

阻塞与非阻塞、同步与异步,很多人可能会认为同步就是阻塞,异步就是非阻塞,其实并不是尽然。这四个概念两两组合,会形成4个新的概念,如下:1 .同步阻塞:客户端发送请求给服务端,此时服务端处理任务时 间很久,则客户端则被服务端堵塞了,所以客户端会一直等待服 务端的响应,此时客户端不能做其他任何事,服务端也不会接受 其他客户端的请求。这种通信机制比较简单粗暴,但是效率不高。2.同步非阻塞:客户端发送请求给服务端,此时服务端处理任务时间很久,这个时候虽然客户端会一直等待响应,但是服务端可以处理其

2020-08-02 20:07:03 274

转载 Nginx进程模型解析

文章目录Nginx进程模型解析Worker的抢占机制Nginx的事件处理机制小结Nginx进程模型解析nginx包含了两种进程:worker进程:主进程master进程:工作进程通过下面的命令可以看出:[root@localhos...

2020-08-01 21:00:44 188

原创 Linux Centos7 安装Nginx

1、去官网http://nginx.org/en/download.html下载稳定版本的Nginx2、上传到自己服务,这里我上传到/home/software3、安装依赖环境 3.1安装gcc环境 执行:yum install gcc-c++可能会出现以下情况:已加载插件:fastestmirrorLoading mirror speeds from cached hostfileCould not retrieve mirrorlist...

2020-08-01 18:12:50 1449

原创 SpringBoot应用打成war包

SpringBoot应用可以打成jar包或者war包,打成jar跟war概念上有点不同1. 打成jar包,它体现的是一种服务化的概念2. 打成war包则是应用程序的概念,可以包含有页面信息,也可以向外提供服务和接口这里介绍下打成war包的步骤。第一:在api层,将pom文件里的打包方式修改为war包。 <packaging>war</packaging>第二步:排除spring-boot-starter内置tomcat依赖。...

2020-07-30 20:29:10 428

原创 SpringBoot多环境部署

SpringBoot多环境部署需要有主配置和副配置文件,格式如下主配置文件:application.yml 副配置文件:application-{name}.yml副配置文件。示例如下在主配置文件application.yml 加入如下配置:#多环境配置spring: profiles: active: devactive值为副配置文件的{name}值。假设现在开发环境tomcat端口设置为8088,而生产环境为80,则可以做如下修改:#原先a...

2020-07-29 22:53:54 362

原创 购物车数据存储的几种实现形式

一、在客户端浏览器Cookie存储适用场景:无需登录的情况优点:性能好,访问快,无需与服务端交互。缺点:数据易丢失,例如换电脑的时候,就没办法读取到种在原先浏览器中Cookie的数据。容易出现隐私安全问题。二、存储在Session中适用场景:登录的情况优点:在业务及用户数据较少时,初期性能好,访问快。缺点:Session基于内存,用户量庞大影响服务器性能。只能存在于当前会话中,不适用于集群跟分布式系统。三、存储在数据库适用场景:登录的情况优点:数据持久化,可在任.

2020-07-14 23:39:20 788

原创 SpringBoot 整合 mybatis-pagehelper

1.在pom文件中引入分页插件依赖<!--pagehelper --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.12</version></dependency>2、配置yml文件.

2020-07-14 21:37:59 85

原创 SpringBoot开发环境下开启mybatis日志控制台SQL打印

原先的配置如下:mybatis: type-aliases-package: com.newmall.pojo # 所有POJO类所在包路径 mapper-locations: classpath:mapper/*.xml # mapper映射文件为了测试方便需要开启mybatis日志sql打印,只需要加configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl配置即可在控制台中看到执行的sql。my.

2020-07-12 15:46:29 3655

原创 SpringBoot使用AOP监控执行时间

一、首先需要添加如下依赖: <!-- aop依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>二、使用环绕通知,并且根据实际

2020-07-12 15:29:10 1590

原创 SpringBoot整合log4j

一、首先需要移除pom文件下spring-boot-starter默认的日志依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions>

2020-07-12 15:01:04 134

原创 SpringBoot跨域配置

一、使用CorsFilter,添加配置类@Configurationpublic class MyConfiguration { @Bean public FilterRegistrationBean corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); CorsConfiguration config = new CorsConfiguration(

2020-07-12 12:14:54 402

原创 SpringBoot整合swagger2

首先现在工程pom下添加如下依赖: <!-- swagger2 配置 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.4.0</version>

2020-07-12 00:01:11 101

原创 SpringBoot集成单元测试

在Springboot项目中集成单元测试及其的简单,首先先在pom文件中添加如下依赖:​ <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</s...

2020-07-10 22:59:13 140

原创 Spring事务传播机制

Spring有以下的事务机制:/** * Support a current transaction, create a new one if none exists. */REQUIRED(TransactionDefinition.PROPAGATION_REQUIRED),支持当前的事务,如果当前没有事务,就创建一个事务,它也是默认的事务机制。/** * Support a current transaction, execute non-transactionally if n.

2020-07-10 22:40:13 88

原创 HikariCP连接数配置

HikariCP最大连接数跟最小连接数配置。Hikari作者是推荐配置成相同数,例如10。 当然也可以根据实际情况自行配置。例如:4核心CPU,最大连接数可以配置成10,8核心最大连接数可以配置成20。最小连接数一般5~10都可以。...

2020-07-06 22:22:15 1710

转载 分布式系统事务一致性

一 分布式系统特点现今互联网界,分布式系统和微服务架构盛行。业界著名的CAP理论也告诉我们,在设计和实现一个分布式系统时,需要将数据一致性、系统可用性和分区容忍性放在一起考虑。1、CAP理论在分布式系统中,一致性(Consistency)、可用性(Availability)和分区容忍性(Partition Tolerance)3 个要素最多只能同时满足两个,不可兼得。其中,分区容忍性又是不可或缺的。一致性:分布式环境下多个节点的数据是否强一致。 可用性:分布式服务能一直保证可用状态。当

2020-05-12 10:47:41 271

原创 oracle数据库url 三种写法

今天想写个公司的oracle数据库工具,用来更方便工作,开发库的连接没问题,奈何测试库连接总是报SID错误,应该是url写的有问题。然后看了下tns,又查了些网上的资料,发现oracle的url三种的写法。JDBC url 三种写法,连接oracle数据库1.使用service_name,配置方式:jdbc:oracle:thin:@//<host>:1521/service_...

2020-05-03 14:42:48 9523

原创 JAVA属性拷贝,属性为空不进行拷贝

最近在写项目的过程中,由于分层关系,经常会进行对象间的属性拷贝。但是源对象有空属性的又不想拷贝,不管是Apache的还是springframework的都会直接将空值也赋值过去。所以自己写了一个工具来实现,仅供参考:public class BeanUtil { /** * source属性为空的不赋值给target * @param source ...

2019-10-17 20:30:24 2764

原创 JVM发生OOM问题分析

当发生内存溢出,需要进行问题定位时,需要进行对内存映像文件进行分析,导出方式总共有两种:一、内存溢出自动导出对jvm参数进行设置两个参数:-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./二、使用jmap命令手动导出jmap -dump:format=b,file=head.hprof pid,其中pid为根据...

2019-09-03 21:12:18 411

转载 jdk8 Metaspace 调优

简介从JDK8开始,永久代(PermGen)的概念被废弃掉了,取而代之的是一个称为Metaspace的存储空间。Metaspace使用的是本地内存,而不是堆内存,也就是说在默认情况下Metaspace的大小只与本地内存大小有关。当然你也可以通过以下的几个参数对Metaspace进行控制: -XX:MetaspaceSize=N 这个参数是初始化的Metaspace大小,该值越大触发M...

2019-08-28 21:22:30 173

原创 垃圾回收算法

Java垃圾回收思想枚举根节点,做可达性分析。根节点可以做根节点的有:类加载器、Thread、虚拟机栈的本地变量表、static成员、常量引用、本地方法栈的变量等。垃圾回收算法标记清除算法分为标记、清除两个阶段。首先标记处所有需要回收的对象,在标记完成后统一回收所有。缺点:效率不高,标记和清除两个过程的效率都不高。产生碎片,碎片过多会导致提前GC。复制算法它将可...

2019-03-05 20:39:15 134

原创 JVM内存结构

注:所有内容基于JDK1.8版本。一、运行时数据区在了解JVM内存结构前,先了解一个规范——运行时数据区。查看官方解释:Java虚拟机定义了在程序执行期间使用的各种运行时数据区域。其中一些数据区域是在Java虚拟机启动时创建的,仅在Java虚拟机退出时销毁。其他数据区域是每个线程。线程数据区域是在线程退出时创建和销毁线程时创建的。(按照个人理解,就是JVM在执行Java程序时,会把内存划分...

2019-03-02 22:40:22 177

原创 JVM参数类型

一、JVM参数类型JVM参数主要主要分为三大类:1、标准参数,例如-help、-server、-client、-version、-showversion、-cp、-classpath等相对稳定的命令。2、X参数,它是非标准化参数。在各个版本的JVM中可能会有变化,但是变化比较小。例如-Xint:解释执行。-Xcomp:第一次使用就编译成本地代码。-Xmixed:混合模式,JVM自己来决...

2019-01-30 20:33:32 230

原创 事务的原则与实现

什么是事务事务是一种以可靠、一致的方式,访问和操作数据库中数据的程序单元。事务四大特性原子性:事务当中的多个操作,要么都完成要么都失败。 一致性:事务完成后,状态的改变是一致的,结果是完整的。 隔离性:不同的事务在试图操作相同数据的时候,它们之间应该隔离 持久性:事务提交后,数据操作的结果才会保存到数据库永久保存。四个隔离级别1、read uncommitted 读未提交...

2019-01-26 09:04:12 638

原创 oracle存量数据迁移脚本示例(适用小数据量)

declare  nHomeCounty     number(3);  nResult         number(2);  nEntrustID      number(12);  nEctrustAgentID number(12);  nCount          number(8);begin  for cur_data in (select *           ...

2018-11-28 19:15:51 561

原创 Java并发编程之不可变对象

不可变对象条件对象需要满足一下三个条件才是不可变对象:1、对象创建以后其状态就不能修改2、对象所有域都是final类型3、对象是正确创建的(对象在创建期间,this引用没有溢出)简而言之就是将类声明为final,将所有的成员声明为私有的,对变量不提供set方法。将所有可变的成员声明为final。在get方法中不返回对象本身,而是克隆对象的拷贝。(可参考String类)。fi...

2018-08-16 21:41:04 229

原创 Java并发编程之常见线程不安全类与写法

线程不安全类:一个类的对象可以被多个线程访问修改,并且没有做任何的同步或者并发处理,就很容易出现线程安全问题。以下介绍几种常见的线程不安全类及其写法:一、StringBuilder,StringBuffer字符串拼接主要提供了两个类:StringBuilder,StringBufferStringBuilder字符串拼接测试:@Slf4jpublic class Strin...

2018-08-15 22:07:21 969

原创 Java并发编程之工厂模式

饿汉模式:饿汉模式的单例实例是在类装载时进行创建的,它是有JVM的机制保证的,所以它总是线程安全的:/** * 饿汉模式 * 单例实例在类装载时进行创建 */public class SingletonExample2 { // 私有构造函数 private SingletonExample2() { } // 单例对象 privat...

2018-08-09 22:29:15 993

原创 Java并发编程之对象发布(Publish)和逸出(Escape)

什么是对象发布:使一个对象能够被当前范围之外的代码所使用。示例:@Slf4jpublic class UnsafePublish { private String[] states = {"a", "b", "c"}; public String[] getStates() { return states; } public s...

2018-08-09 21:55:19 1448

nideshop_product.sql

数据库测试建表语句,方便测试,筹齐50个字筹齐50个字筹齐50个字筹齐50个字筹齐50个字筹齐50个字筹齐50个字筹齐50个字

2020-06-15

空空如也

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

TA关注的人

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