04 2023 档案
摘要:1、Nacos统一配置管理 配置更改热更新 步骤: (1)在左侧栏中的配置管理中选择配置列表,然后点击右上角的+号; (2)在弹出表单中填写配置信息 Data ID:配置文件的id:【服务名称】-【profile】.【后缀名】 Group:分组:默认即可 配置内容:建议将一些关键参数,需要运行时调整
阅读全文
摘要:1、认识Nacos Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比eureka功能更加丰富,在国内更受欢迎。 2、服务注册到Nacos 步骤: 3、Nacos服务分级存储模型 服务--集群--实例 服务跨集群调用问题: 服务调用尽可能选择本地集群服务,跨集群调用延迟较高
阅读全文
摘要:1、负载均衡原理 Ribbon负载均衡规则: (1)规则接口是IRule; (2)默认实现是ZoneAvoidanceRule,根据zone选择服务列表,然后轮询。 2、负载均衡策略 通过定义IRule实现可以修改负载均衡规则,有两种方式: 2.1代码方式:在提供者方的启动类中,定义一个新的IRul
阅读全文
摘要:1、微服务远程调用的提供者与消费者 服务提供者:一次业务中,被其他微服务调用的服务。 服务消费者:一次业务中,调用其他微服务的服务。 提供者与消费者角色是相对的。 一个服务可以同时是服务提供者和服务消费者。 2、eureka作用 3、Eureka的实现方式 下面的例子中有eureka-service
阅读全文
摘要:1、服务拆分注意事项 (1)不同微服务,不要重复开发相同业务; (2)微服务数据独立,不要访问其他微服务的数据库,每个微服务有自己单独的数据库; (3)微服务可以将自己的业务暴露为接口,供其他微服务调用。 2、微服务调用方式 基于RestTemplate发起的http请求实现远程调用(在项目的启动类
阅读全文
摘要:1、微服务架构特征 (1)单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发。 (2)面向服务:微服务对外暴露业务接口。 (3)自治:团队独立、技术独立、数据独立、部署独立。 (4)隔离性强:服务调用做好隔离、容错、降级,避免出现联级问题。 2、微服务结构
阅读全文
摘要:1、微服务是分布式架构的一种。 2、微服务技术栈 然后利用Jenkins对一系列微服务进行自动化编译,接着利用Docker进行打包,形成镜像,最后用Kubernetes、RANCHER等技术进行自动化部署。 SpringCloud只是微服务中用到的一种技术,负责微服务治理。
阅读全文
摘要:概述1. requestrequest是表示一个请求,只要发出一个请求就会创建一个request,它的作用域:仅在当前请求中有效。 用处:常用于服务器间同一请求不同页面之间的参数传递,常应用于表单的控件值传递。 方法:request.setAttribute(); request.getAttrib
阅读全文
摘要:1.Redis 的 List 数据类型 1.1 List 数据类型的特点 List 列表是 Redis 提供的一种重要的数据类型。它是由若干个字符串元素组成的集合,并且每个字符串元素都是按照插入顺序排序的。也可以将列表理解为多个字符串组成的一个集合对象,并按照链表(Link List)的插入顺序排序
阅读全文
摘要:1.Redis 的 Sorted Set 数据类型 1.1 Sorted Set 数据类型的特点 Sorted Set 有序集合是 Redis 提供的一种重要的数据类型。它是由不重复且有序的字符串元素组成的,而且每个元素都会关联一个 double 类型的分数,通过该分数来为集合中的成员进行从小到大的
阅读全文
摘要:1.Redis 在 Session 共享问题中的应用 传统 Session-Cookeis 身份认证方法中,一个 Session 只保存在一台服务器上,适合域单体应用。随着项目规模的增加,项目的架构也不断向微服务分布式集群演进,传统的 Session-Cookie 方式在集群环境下就不能很好的工作了
阅读全文
摘要:1.Redis 缓存 缓存(cache),原始意义是指访问速度比一般随机存取存储器(RAM)快的一种高速存储器,通常它不像系统主存那样使用 DRAM 技术,而使用昂贵但较快速的 SRAM 技术。缓存的设置是所有现代计算机系统发挥高性能的重要因素之一。 Redis 因读写性能较高,它非常适合作为存贮数
阅读全文
摘要:实际项目中,需要通过编程语言去访问并操作 Redis。Redis 官方提供了多种语言的客户端,具体可访问以下地址:https://redis.io/clients Java 语言访问 Redis,常用的 API 包括: (1)Jedis:一个很小但很健全的 redis 的 java 客户端,通过 J
阅读全文
摘要:1. Cluster 分片集群 1.1 Cluster 集群的结构和作用 redis 哨兵模式虽然提供了 redis⾼可⽤、高并发读的解决方案,但是在海量数据应用场景下,仍然存在海量数据存储问题和高并发写的问题。当只有⼀个 Master 对外提供服务时,如果数据量特别⼤,内存占⽤问题严重,数据的高并
阅读全文
摘要:1. Docker 网络 1.1 Docker 网络模式 使用 Docker 时,宿主机和容器内系统、容器和容器之间都需要网络连接,必须要考虑容器和宿主机、容器和容器之间的网络连接方式,因此了解 docker 的网络模式对正确使用 docker 非常重要。 Docker 启动后,它默认会创建三个网络
阅读全文
摘要:1. 哨兵模式 1.1 哨兵模式的结构和作用 哨兵(Sentinel)是 Redis 官方提供的一种高可用方案,它可以监控多个 Redis 服务实例的运行情况。本质上,Sentinel 也是一个运行在特殊模式下的 Redis 服务器。主从复制模式下,一般会配置多个 Sentinel 节点,通过互相协
阅读全文
摘要:1. 主从复制 1.1 什么是主从复制 主从复制,是将多台数据库服务器分为主节点(master)和从节点(slaver),主节点数据更新后会根据配置和策略,自动同步到从节点上,从而保证主从节点中存有相同的数据。 1.2 主从复制的作用 有了主从复制,数据可以有多份副本,这就带来了很多好处: (1)提
阅读全文
摘要:1、Docker 容器的数据卷 Docker 是将系统与运行的环境打包成容器来运行,当容器删除后,容器里的系统自然也就没有了。但是,在实际的项目中,希望 Docker 容器产生的数据能够持久化,同时容器之间也能够共享数据。Docker 提供了数据卷技术来实现这些需求。 数据卷就是目录或文件,存在于一
阅读全文
摘要:1、Redis 持久化 1.1 什么是持久化 持久化可以理解为数据的永久存储,就是将数据存储到一个不会丢失的地方。如果把数据放在内存中,电脑关闭或重启数据就会丢失,所以放在内存中的数据不是持久化的,而放在磁盘就是一种持久化。 1.2 Redis 的持久化 Redis 的数据存储在内存中,内存是瞬时的
阅读全文
摘要:1、Redis 事务机制 1.1 事务的定义 事务是指一系列操作数据库的步骤,这一系列的操作步骤,要么完全地执行,要么完全地不执行。 1.2 Redis 的事务 同样,Redis 中的事务也是一组命令的集合,至少是两个或两个以上的命令。Redis事务是一个单独的隔离操作,事务中的所有命令都会序列化、
阅读全文
摘要:1、发布与订阅 1.1 什么是发布和订阅 发布订阅模式是一种应用程序(系统)之间通讯、传递数据的技术手段,特别是在异构(不同语言)系统之间作用非常明显,可以实现应用(系统)之间的解耦合。 发布订阅是一对多的关系,需要有信息的发布者和消息的收听者。订阅者:对某个内容感兴趣,需要实时获取新的内容,只要关
阅读全文
摘要:1、安装条件 (1)64 位 Windows 10 及以上操作系统 (2)已经开启了 BIOS 设置中的硬件虚拟化支持,如没有开启,在 BIOS 中设置。 2 、下载 Docker Desktop Installer.exe 安装包 (1)官网:https://www.docker.com/ 访问官
阅读全文
摘要:1、Docker 概念 • Docker 是一个开源的应用容器引擎 • 诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker Inc) • Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux 机器
阅读全文
摘要:1、帮助文档 redis 英文版命令大全:https://redis.io/commands redis 中文版命令大全:http://redisdoc.com/ 2、redis-benchmark.exe 性能测试 Redis 自带了一个 redis-benchmark 的工具,可以模拟 n 个客
阅读全文
摘要:1、下载地址 官方下载: https://github.com/microsoftarchive/redis/releases ,可以根据需要下载不同版本。 2、Redis 服务器安装和启动 (1)将下载的 Redis 安装包解压,然后放到相应的路径下,如 d:\redis; (2)在Redis 安
阅读全文
摘要:Redis数据库提供了多种数据结构,其中最常见的数据结构有String(字符串)、List(表)、Set(集合)、Hash(散列)、Sorted Sets(有序集合)。 (1)String(字符串) String字符串是Redis中最基本也是最简单的数据结构,其值是二进制安全的,值的数据类型可以为数
阅读全文
摘要:键值对存储数据库是NoSQL数据库的一种类型,也是最简单的NoSQL数据库。顾名思义,键值对存储数据库中的数据是以键值对的形 式 来 存 储 的 。 常 见 的 键 值 对 存 储 数 据 库 有 Redis 、TokyoCabinet/Tyrant、Voldemort以及Oracle BDB数据库
阅读全文
摘要:1 日志 1.1 日志文件 日志文件是用于记录系统操作事件的文件集合。在计算机中,日志文件是记录在操作系统或其他软件运行过程中发生的事件,它具有处理历史数据、诊断问题的追踪以及理解系统的活动等重要作用。 1.2 两种日志文件类型 ⚫ 操作日志:用户在操作软件时记录下来的操作步骤,便于用户自己查看。主
阅读全文
摘要:在实际开发中,为了传递参数方便或保护数据安全或组合复杂的参数等,有时会对实体类进行分层设计,经常把实体类分为 VO、DTO、DO 和 PO 等对象。 ⚫ VO(View Object):视图对象,用于展示层,指把某个指定页面(或组件)需要的所有数据封装起来; ⚫ DTO(Data Transfer
阅读全文
摘要:在项目开发中,数据校验是必须要考虑和面对的事情。应用程序应该通过某种手段来确保存入数据库中的数据从语义上来讲是正确的。在通常的情况下,应用程序是分层的,不同的层由不同的开发人员来完成。很多时候同样的数据验证逻辑会出现在不同的层,这样就会导致代码冗余和一些管理的问题,如说语义的一致性等。为了避免这种情
阅读全文
摘要:1、Shiro 架构 Shiro 是一款应用非常广泛的安全框架,它可以完成:认证、授权、加密、会话管理、与 Web 集成、缓存等功能。 其中: ⚫ Authentication:身份认证/登录,验证用户是不是拥有相应的身份; ⚫ Authorization:授权,即权限验证,验证某个已认证的用户是否
阅读全文
摘要:1、拦截器的基本概念 拦截器是 SpringBoot 的一个强大的控件,它可以使得程序在进入控制器之前做一些操作,或在控制器方法完成后、甚至是在视图渲染时进行操作,常用于对控制器方法进行预处理和后处理,如进行登录、权限验证问题的处理。 拦截器和过滤器的概念相似。过滤器是 Servlet 规范中的一部
阅读全文
摘要:1、配置类常用注解 在 SpringBoot 项目中,推荐零配置,因此一些原来写在.xml 文件中的配置信息,有时需要用相应的配置类来实现。定义配置类时常用注解如下: @Configuration:声明一个类作为配置类,代替 xml 文件; @Bean:声明在方法上,将方法的返回值加入 Bean 容
阅读全文
摘要:1、系统安全框架 1.1 认证与授权 软件应用系统设计与开发过程中,必须要考虑系统的安全问题。软件应用系统安全主要包括认证(登录)和授权(权限管理)两部分,一般称为权限管理。 如果不借助第三方安全框架,开发者需要自己设计并实现认证和授权功能。一般的设计思路是:用户在登录页面输入用户名和密码进行登录操
阅读全文
摘要:1、同源策略 1.1 浏览器的同源策略 浏览器同源策略是一种约定,是最核心、也是最基本的安全功能。它由Netscape最早提出,要求浏览器把相同的协议名、域名(或二级域名)和端口号的 URL 识别为同源网站,反之则是非同源网站。只有同源的网站才可以进行 Ajax 和 Cookie 的操作,而对超链接
阅读全文
摘要:1、API 接口文档 前后端分离开发模式中,在项目中会创建Restful风格的API接口,供第三方或前端人员使用,那么前端人员在使用的过程中如何知道有哪些接口以及接口详细信息呢?在实际开发中,一般通过写API接口文档来进行沟通交流。人工来维护API文档会带来很多问题,如不同的开发人员写的API文档不
阅读全文
摘要:在web项目开发中,不管是mapper层、service层还是controller层,都有可能发生异常。如果每个异常都单独处理,系统的代码耦合性高,工作量大,维护困难。SpringMVC能将所有类型的异常处理,从各层的各种处理过程中解耦出来,进行统一处理,既保证了相关处理过程的功能较单一,也实现了异
阅读全文
摘要:在开发过程中,通常会对业务代码不断地修改测试,在修改之后往往需要重启服务,有些服务需要加载很久才能启动成功,这种重复操作极大的降低了程序开发效率。Spring Boot框架专门提供了进行热部署的依赖启动器spring-boot-devtools,用于进行项目热部署,而无需手动重启项目。 具体实现步骤
阅读全文
摘要:1、RESTful 风格应用 1.1 前后端不分离 在Web 1.0时代,网页是在服务器端使用动态脚本语言和模板引擎渲染出来,后端需要控制前端的展示,所以传统的 WEB 应用不分前后端,如 JSP 和 Themleaf 技术,因此前端和后端的耦合度很高。 1.2 前后端分离 随着互联网技术的发展和移
阅读全文
摘要:传统的网站的开发及访问: 改进的网站的开发及访问: 现在的网站的开发及访问:前后端分离 微服务
阅读全文
摘要:1、Postman 概述 Postman是一款非常流行的API接口测试工具。对于一个API来说,输入的请求(Request)包括 URL、method、Request Cookies、Request Headers和Request Body;收到请求后,API会回复响应(Response),包括Re
阅读全文
摘要:创建一个SpringBoot项目,然后如下操作: (1) 添加Lombok插件--简化实体类 (2)添加Mybatis框架和MySQL驱动 访问Mysql和使用Mybatis (3)创建pojo包和实体类 在项目中创建pojo包,并在其中创建实体类。实体类上可以使用Lombok注解。首次使用时,需要
阅读全文