随笔分类 - java / 框架
摘要:一、Nginx 首先,来看看Nginx的作用与缺陷。 Nginx服务发现 Nginx是一个反向代理组件,那么Nginx需要知道应用服务器的地址是什么,这样才能够将流量透传到应用服务器上,这就是服务发现的过程。 缺陷: 服务器的变动,就需要修改客户端配置后,重启所有的客户端进程,操作时间比较长; 服务
阅读全文
摘要:一. 缓存穿透 当热点数据为空时,将会有大量请求到缓存,一旦数据库承受不了用户请求,查询就会变慢,大量的请求也会阻塞在数据库查询上,造成应用服务器的连接和线程资源被占满,最终导致系统崩溃,这样称为缓存穿透。 通常解决方案: 返回空值 我们从数据库中查询到空值或者发生异常时,我们可以向缓存中回种一个空
阅读全文
摘要:1. Cache Aside(旁路缓存) 这个策略数据以数据库中的数据为准,缓存中的数据是按需加载的。 数据更新: 更新数据库中的记录; 删除缓存记录 从缓存中读取数据; 如果缓存命中,则直接返回数据; 如果缓存不命中,则从数据库中查询数据,并将数据写入到缓存中,并且返回给用户。 2. read、W
阅读全文
摘要:六、分布式Trace简述 1. 请求要在多个服务之间调用,如何排查慢请求问题? 给同一个请求的每一行日志增加一个相同的标记,比如我们可以在程序的入口处生成一个requestId,然后把它放在线程的上下文中,这样就可以在需要时随时从线程上下文中获取到requestId了。 String request
阅读全文
摘要:zebra是一个基于JDBC API协议上开发出的高可用、高性能的数据库访问层解决方案。通俗来说就是数据库访问的中间件,在JDBC和数据库连接池之上实现读写分离、分库分布等功能。一般来说Zebra在数据访问架构中位置如下^[2]^: Zookeeper/OCTO/Nacos:注册中心,存储了数据库的
阅读全文
摘要:一、mapStruct映射工具 1.1 功能 在编译时期是处理映射注解,实现类到类之间的映射 MapStruct vs BeanUtils BeanUtils: 在运行时根据反射动态赋值 缺点:动态赋值,存在大量的反射调用,性能较低;内存占用多,不适合高并发应用场景 MapStruct:在编译时静态
阅读全文
摘要:Git 一、Git概述 Git大家都听过,是一个免费的、开源的分布式控制系统。 1. 版本控制工具 版本控制工具分类两类:集中式版本控制工具和分布式版本控制工具 集中式版本控制工具 例如SVN、CVS等工具,都包含一个单一的集中管理的服务器,保存了所有文件的修订版本。协同工作的人们通过客户端连接到服
阅读全文
摘要:Spring MVC 执行流程 Spring MVC整个流程分成三个阶段 准备阶段 匹配阶段 执行阶段 准备阶段 在 Web 容器第一次用到 DispatcherServlet 的时候,会创建其对象并执行 init 方法 init 方法内会创建 Spring Web 容器,并调用容器 refresh
阅读全文
摘要:AOP切面顺序导致事务不能正确回滚 原因:事务切面的优先级最低,自定义的切面默认跟事务优先级相同,并且自定义切面在内层,若这是自定义切面没有正确抛出异常,则导致外层事务不能正常回滚 @Transactional(rollbackFor = Exception.class) public void t
阅读全文
摘要:如果容器中有AutowiredAnnotationBeanPostProcessor后处理器,则加了@Autowired注解的或只有一个参数的构造器的bean由这个后处理器创建。 @Controller public class HeloController { @Autowired private
阅读全文
摘要:ApplicationContext refresh的流程 ApplicationContext的父类是AbstractApplicationContext, refresh是AbstractApplicationContext中的一个方法,它负责初始化ApplicationContext容器,容器
阅读全文
摘要:Mybatis动态标签 1. if标签 动态条件判断 <select id="findByCondition" resultType="user" parameterType="user"> select * from user where 1=1 <if test="username!=null"
阅读全文
摘要:Linux修改文件报错 今天修改nginx的配置文件时: http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; lua_package_path "/u
阅读全文
摘要:CentOS无法远程连接 1. 查看CentOS是否能ping ping www.baidu.com 如果超时,,则可能是防火墙未关闭,关闭防火墙 systemctl stop firewalld systemctl disable firewalld 2. Windows的防火墙未关闭 查看win
阅读全文
摘要:DSL索引库操作 1. 创建索引库 PUT /索引名称 { "mappings": { "properties": { "字段名1":{ "属性": "属性值", }, "字段名2":{ "properties": { "子字段名":{ "属性":"属性值" } } } } } } 2.查询索引库
阅读全文
摘要:idea建立SpringBoot聚合项目 建立父项目——HelloMQ 配置父项目pom <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http
阅读全文
摘要:整合SSM MVC框架:SpringMVC 持久层框架:注解Mybatis 整体框架:Spring 以查询所有User信息为例,SSM通用的实现步骤: 一、创建配置文件 1.导入依赖的jar包:spring、springmvc、mybatis、jstl、mysql、c3p0等 <dependency
阅读全文
摘要:解决注解Mybatis注入多个参数时报错 问题:当使用注解Mybatis注入多个参数时,报错 @Insert("insert into user_role values(#{uid},#{rid})") void saveUserRole(int uid, int rid); 报错信息: org.a
阅读全文
摘要:Tomcat加载问题 修改了一个类的名字,使用idea自动修改这个类的名字,修改完之后就报错: Artifact storage:war exploded: Error during artifact deployment. See server log for details 解决方法1:重新生成
阅读全文
摘要:Maven导入依赖问题 问题: 加入Spring-webmvc依赖时,maven报错,而其他spring依赖都能导入。 Cannot resolve org.springframework:spring-webmvc:5.2.9.RELEASE Debug: 查询本地maven仓库:C:\Users
阅读全文