Redis缓存高可用集群
03-Redis缓存高可用集群3.1 Redis集群方案比较
哨兵模式
在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态,如果master节点异常,则会做主从切换,将某一台slave作为master,哨兵的配置略微复杂,并且性能和高可用性等各方面表现一般,特别是在主从切换的瞬间存在访问瞬断的情况,而且哨兵模式只有一个主节点对外提供服务,没法支持很高的并发,且单个主节点内存也不宜设置得过大,否则会导致持久化文件过大,影响数据恢复或主从同步的效率
高可用集群模式
redis集群是一个由多个主从节点群组成的分布式服务器群,它具有复制、高可用和分片特性。Redis集群不需要sentinel哨兵也能完成节点移除和故障转移的功能。需要将每个节点设置成集群模式,这种集群模式没有中心节点,可水平扩展,据官方文档称可以线性扩展到上万个节点(官方推荐不超过1000个节点)。redis集群的性能和高可用性均优于之前版本的哨兵模式,且集群配置非常简单
3.2 Redis高可用集群搭建
redis安装
12345678910111213141516 ...
Redis核心原理与持久化、主从与哨兵架构
01-Redis安装核心原理1.1 Redis安装123456789101112131415161718192021222324252627282930(个人博客写过Redis详细各种安装 www.lovekhh.xyz/blog/65)下载地址:http://redis.io/download安装步骤:# 安装gccyum install gcc# 把下载好的redis-5.0.3.tar.gz放在/usr/local文件夹下,并解压wget http://download.redis.io/releases/redis-5.0.3.tar.gztar xzf redis-5.0.3.tar.gzcd redis-5.0.3# 进入到解压好的redis-5.0.3目录下,进行编译与安装make# 启动并指定配置文件src/redis-server redis.conf(注意要使用后台启动,所以修改redis.conf里的daemonize改为yes)# 验证启动是否成功 ps -ef | grep redis # 进入redis客户端 src/redis-cli # 退出客户端qui ...
Docker搭建RabbitMq集群
Windows安装RabbitMq
由于其基于Erlang语言编写,所以先安装Erlang,下载地址
双击安装,安装路径不要与中文与空格
配置环境变量
path中添加
cmd中测试
安装RabbitMQ,下载地址
下载后双击安装
RabbitMQ Server安装完成之后,会自动注册为服务,并以默认配置进行启动
可能的问题:启动失败,通常是由于用户名为中文,导致默认的db和log目录访问出现问题。解决方法,写在RabbitMQ,配置环境变量RABBITMQ_BASE为一个不含中文的路径,如E:\rabbitmq,然后重新安装
Rabbit管理
进入rabbitMQ安装目录下的sbin目录,执行如下命令开启WEB管理插件,rabbitmq-plugins.bat enable rabbitmq_management
1234567891011121314C:\software\RabbitMQ\rabbitmq_server-3.7.18\sbin>rabbitmq-plugins.bat enable rabbitmq_managementEnabling ...
Docker Compose 入门
Docker Compose简介原来我们的操作是:DockerFile build run 进行手动操作,单个容器,如果假设我们有100个微服务,并行微服务之间还存在依赖关系。
这个时候,我们就可以使用Docker Compose来轻松高效的管理容器,定义运行多个容器。
官方介绍:
定义、运行多个容器
YAML file配置环境
Compose是一个用于定义和运行多容器Docker应用程序的工具。使用Compose,您可以使用YAML文件来配置应用程序的服务。然后,使用一个命令,就可以从配置中创建并启动所有服务。要了解有关Compose的所有特性的更多信息,请参阅特性列表。
Compose可以在所有环境中工作:生产、阶段、开发、测试,以及CI工作流。您可以在常见用例中了解关于每个用例的更多信息
使用Compose基本上有三个步骤:
用 Dockerfile 定义你的应用程序的环境,这样它就可以在任何地方复制。
在 Docker-compose 中定义组成应用程序的服务。这样它们就可以在一个独立的环境中一起运行。
运行 docker-compose up 和 Compose 启 ...
Mybatis的xml文件放到java目录下不会被加载
1. 加载java目录下xml报告异常
AbstractHandlerExceptionResolver.java:194 |org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver |Resolved exception caused by handler execution: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.guli.edu.mapper.CourseMapper.getCoursePublishVoById
问题分析:
dao层编译后只有class文件,没有mapper.xml,因为maven工程在默认情况下src/main/java目录下的所有资源文件是不发布到target目录下的,
Maven进行编译时候,只会把java文件进行编译,其他类型文件不会进行加载。也会把resources里面配置文件进行加载, ...
SpringBoot配置文件加载
二、配置文件1、配置文件SpringBoot使用一个全局的配置文件,配置文件名是固定的;
application.properties
application.yml
配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好;
YAML(YAML Ain’t Markup Language)
YAML A Markup Language:是一个标记语言
YAML isn’t Markup Language:不是一个标记语言;
标记语言:
以前的配置文件;大多都使用的是 xxxx.xml文件;
YAML:以数据为中心,比json、xml等更适合做配置文件;
YAML:配置例子
12server: port: 8081
XML:
1234<server> <port>8081</port></server>
2、YAML语法:2.1 基本语法k:(空格)v:表示一对键值对(空格必须有);
以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的
123server: ...
Java网络通信
第一章 网络编程入门1.1 网络通信协议
网络通信协议:通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样。在计算机网络中,这些连接和通信的规则被称为网络通信协议,它对数据的传输格式、传输速率、传输步骤等做了统一规定,通信双方必须同时遵守才能完成数据交换。
TCP/IP协议: 传输控制协议/因特网互联协议( Transmission Control Protocol/Internet Protocol),是Internet最基本、最广泛的协议。它定义了计算机如何连入因特网,以及数据如何在它们之间传输的标准。它的内部包含一系列的用于处理数据通信的协议,并采用了4层的分层模型,每一层都呼叫它的下一层所提供的协议来完成自己的需求。
上图中,TCP/IP协议中的四层分别是应用层、传输层、网络层和链路层,每层分别负责不同的通信功能。链路层:链路层是用于定义物理传输通道,通常是对某些网络连接设备的驱动协议,例如针对光纤、网线提供的驱动。网络层:网络层是 ...
单点登录(SSO)- -基于cookie
SSO英文全称Single Sign On,单点登录;SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
任何系统都必须去登陆服务器进行登录
服务器就记住了登录状态
其他系统访问受保护资源,需要再次登录,跳转到sso_server登录的时候,服务器告诉客户端,已经登录过,无须登录。登录过得信息
1)、单点登录框架调试https://gitee.com/xuxueli0323/xxl-ssohttp://www.xuxueli.com/xxl-sso/#/XXL-SSO 是一个分布式单点登录框架。只需要登录一次就可以访问所有相互信任的应用系统。 拥有”轻量级、分布式、跨域、Cookie+Token均支持、Web+APP均支持”等特性。现已开放源代码,开箱即用。
2)、下载框架代码默认规则:单点登录服务器的地址应该是:http://xxlssoserver.com:8080/xxl-sso-server 服务器/8081/xxl-sso-web-sample-springboot web系统1/8082/xxl- ...
SpringBoot整合Shiro
项目目录结构
数据库
application.yml
123456789101112131415161718192021222324252627282930server: port: 8111 servlet: context-path: /mytestspring: devtools: restart: enabled: true additional-paths: src/main/java thymeleaf: cache: false datasource: url: jdbc:mysql://127.0.0.1:3306/jpa?characterEncoding=utf-8&serverTimezone=UTC username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Drivermybatis: type-aliases-package: com.itheima.domain configuration: ...
Springboot整合阿里云OSS
1.对象存储OSS为了解决海量数据存储与弹性扩容,项目中我们采用云存储的解决方案- 阿里云OSS。
1、开通“对象存储OSS”服务(1)申请阿里云账号(2)实名认证(3)开通“对象存储OSS”服务(4)进入管理控制台
2、创建Bucket选择:标准存储、公共读、不开通
3、上传默认头像创建文件夹avatar,上传默认的用户头像
4、创建RAM子用户
(1)添加用户
(2)设置用户组权限:AliyunOSSFullAccess
(3)获取子用户AccessKeyId,AccessKeySecret
2. 使用SDK1、创建Mavaen项目
com.zzxx
aliyun-oss
2、pom
1234567891011121314151617181920<dependencies> <!--aliyunOSS--> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</ ...







