Java架构
白玉灬风
一枚小学生
展开
-
Redis详解
redisredisreids的常用数据类型1.String2.Hash3.List5.Sorted Set(ZSet)6.其他发布(pub)订阅模式(sub)模...转载 2020-08-19 21:12:30 · 1256 阅读 · 0 评论 -
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 · 233 阅读 · 0 评论 -
搭建基于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 · 253 阅读 · 0 评论 -
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 · 172 阅读 · 0 评论 -
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 · 1166 阅读 · 0 评论 -
解决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 · 3432 阅读 · 4 评论 -
Keepalived安装及双机主备配置
Keepalived用于解决单点故障,可以实现nginx的高可用。该组件免费。可以实现高可用HA机制。基于VRRP协议。虚拟路由冗余协议协议(VRRP协议):解决内网单机故障的路由协议构建有多个路由器MASTER BACKUP,将几台提供相同服务的路由器组成路由器组,每路由器绑定一个虚拟IP。使用keepalived实现高可用前提:硬件配置需要一样...原创 2020-08-04 22:18:10 · 1001 阅读 · 0 评论 -
OSI网络模型
在讲到Nginx负载均衡的时候,其实Nginx是七层负载均衡,LVS是四层负载均衡,七层和四层是什么概念呢?这就必须提到网络模型。网络模型是计算机网络基础的一部分内容。网络模型就是OSI (Open System Interconnect) ,意思为开放网络互联,是由国际标准化组织(ISO)和国际电报电话咨询委员会 (CCITT)共同出版的,他是一种网络互联模型,也是一种规范。网络模型分为七层,也就是当用户发起请求到服务器接收,会历经七道工序,或者说用户利用互联网发送消息给另一个用户,也会历经七道工原创 2020-08-05 12:12:21 · 394 阅读 · 0 评论 -
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 · 329 阅读 · 0 评论 -
同步与异步,阻塞与非阻塞
阻塞与非阻塞、同步与异步,很多人可能会认为同步就是阻塞,异步就是非阻塞,其实并不是尽然。这四个概念两两组合,会形成4个新的概念,如下:1 .同步阻塞:客户端发送请求给服务端,此时服务端处理任务时 间很久,则客户端则被服务端堵塞了,所以客户端会一直等待服 务端的响应,此时客户端不能做其他任何事,服务端也不会接受 其他客户端的请求。这种通信机制比较简单粗暴,但是效率不高。2.同步非阻塞:客户端发送请求给服务端,此时服务端处理任务时间很久,这个时候虽然客户端会一直等待响应,但是服务端可以处理其原创 2020-08-02 20:07:03 · 287 阅读 · 0 评论 -
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 · 227 阅读 · 0 评论 -
Nginx进程模型解析
文章目录Nginx进程模型解析Worker的抢占机制Nginx的事件处理机制小结Nginx进程模型解析nginx包含了两种进程:worker进程:主进程master进程:工作进程通过下面的命令可以看出:[root@localhos...转载 2020-08-01 21:00:44 · 278 阅读 · 0 评论 -
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 · 1471 阅读 · 0 评论 -
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 · 461 阅读 · 0 评论 -
SpringBoot多环境部署
SpringBoot多环境部署需要有主配置和副配置文件,格式如下主配置文件:application.yml 副配置文件:application-{name}.yml副配置文件。示例如下在主配置文件application.yml 加入如下配置:#多环境配置spring: profiles: active: devactive值为副配置文件的{name}值。假设现在开发环境tomcat端口设置为8088,而生产环境为80,则可以做如下修改:#原先a...原创 2020-07-29 22:53:54 · 393 阅读 · 0 评论 -
购物车数据存储的几种实现形式
一、在客户端浏览器Cookie存储适用场景:无需登录的情况优点:性能好,访问快,无需与服务端交互。缺点:数据易丢失,例如换电脑的时候,就没办法读取到种在原先浏览器中Cookie的数据。容易出现隐私安全问题。二、存储在Session中适用场景:登录的情况优点:在业务及用户数据较少时,初期性能好,访问快。缺点:Session基于内存,用户量庞大影响服务器性能。只能存在于当前会话中,不适用于集群跟分布式系统。三、存储在数据库适用场景:登录的情况优点:数据持久化,可在任.原创 2020-07-14 23:39:20 · 832 阅读 · 0 评论 -
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 · 91 阅读 · 0 评论 -
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 · 3703 阅读 · 0 评论 -
SpringBoot使用AOP监控执行时间
一、首先需要添加如下依赖: <!-- aop依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>二、使用环绕通知,并且根据实际原创 2020-07-12 15:29:10 · 1638 阅读 · 0 评论 -
SpringBoot整合log4j
一、首先需要移除pom文件下spring-boot-starter默认的日志依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions>原创 2020-07-12 15:01:04 · 149 阅读 · 0 评论 -
SpringBoot跨域配置
一、使用CorsFilter,添加配置类@Configurationpublic class MyConfiguration { @Bean public FilterRegistrationBean corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); CorsConfiguration config = new CorsConfiguration(原创 2020-07-12 12:14:54 · 540 阅读 · 0 评论 -
SpringBoot整合swagger2
首先现在工程pom下添加如下依赖: <!-- swagger2 配置 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.4.0</version>原创 2020-07-12 00:01:11 · 112 阅读 · 0 评论 -
SpringBoot集成单元测试
在Springboot项目中集成单元测试及其的简单,首先先在pom文件中添加如下依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</s...原创 2020-07-10 22:59:13 · 152 阅读 · 0 评论 -
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 · 100 阅读 · 0 评论