Java笔记
文章平均质量分 90
Java架构师成长之路
Traving Yu
这个作者很懒,什么都没留下…
展开
-
Oracle数据库
但其本质也不是真的有了返回值,而是在存储过程内部给out类型参数赋值,在执行完毕后,我们直接拿到输出类型参数的值。group by:MySQL前面可以使用select * ,Oracle:select后只能跟分组字段和聚合函数字段等,不能使用星号。判空函数:MySQL:ifnull(var,0) ,Oracle:NVL(var,0)number(m,n)表示一个小数,总共最大n位,n是小数点以后的位数。触发器,就是制定一个规则,在我们做增删改操作的时候,原创 2022-11-28 21:36:41 · 545 阅读 · 1 评论 -
SpringSecurity+JWT
前端将用户名密码发送给后端,后端核对成功后根据用户信息生成一个JWT(Token),后端将JWT作为登陆成功返回结果给前端,前端保存在本地localStorage或sessionStorage上(退出登录时前端删除保存的JWT即可),前端之后每次请求时将JWT放入HTTP Header中,后端校验JWT有效性,如签名是否正确、Token是否过期、检查Token的接收方是否是自己等,后端验证成功后使用JWT中的用户信息完成相关请求操作。默认的登录请求url是"/login",并且只允许POST方式的请求。原创 2022-09-17 22:37:13 · 860 阅读 · 0 评论 -
SpringBoot快速开始
spring缺点配置繁琐导入maven依赖繁琐。SpringBoot概述SpringBoot对上述Spring的缺点进行的改善和优化,基于约定优于配置的思想。SpringBoot的特点为基于Spring的开发提供更快的入门体验开箱即用,没有代码生成,也无需XML配置。同时也可以修改默认值来满足特定的需求提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等SpringBoot不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式。原创 2022-09-17 11:03:09 · 480 阅读 · 0 评论 -
设计模式概述
设计模式分为3种类型:1、创建型模式:用来描述 “如何创建对象”,它的主要特点是 “将对象的创建和使用分离”。包括单例、原型、工厂方法、抽象工厂和建造者 5 种模式。2、结构型模式:用来描述如何将类或对象按照某种布局组成更大的结构。包括代理、适配器、桥接、装饰、外观、享元和组合 7 种模式。3、行为型模式:用来识别对象之间的常用交流模式以及如何分配职责。包括模板方法、策略、命令、职责链、状态、观察者、中介者、迭代器、访问者、备忘录和解释器 11 种模式。建造者模式:封装一个复杂对象的构建过程,并可以按步骤原创 2022-08-06 11:30:42 · 152 阅读 · 0 评论 -
高并发高可用之秒杀系统
防止用恶意模拟请求攻击,请求链接加入随机码的请求参数,只有秒杀开始才才携带随机码请求接口链接。使用加入购物车的方式实现错峰,用户下单点击速度有快有慢。使用nginx请求静态资源,或使用CDN网络。秒杀成功的订单使用消息队列异步创建订单等信息。使用分布式信号量,把库存存入redis中。高并发微服务崩了也不影响其他服务。网关层识别非法攻击请求进行拦截。...原创 2022-08-03 15:24:54 · 249 阅读 · 0 评论 -
高并发高可用之MongoDB
MongoDB是一个文档数据库(以JSON为数据模型),由C++语言编写。MongoDB的数据是存储在硬盘上的,只不过需要操作的数据会被加载到内存中提高效率,所以MongoDB本身很吃内存。(本文章使用4.x版本,自带分布式事务)MongoDB基于灵活的JSON文档模型,非常适合敏捷式快速开发。与此同时,其与生俱来的高可用、高水平扩展能力使它在处理海量、高并发数据应用时颇具优势。如何考虑是否选择MongoDB?没有某个业务场景必须要使用MongoDB才能解决,但使用MongoDB通常能让你以更低的成本原创 2022-07-27 23:10:10 · 2085 阅读 · 0 评论 -
高并发高可用之Kafka
消息的消费者的消费速度,远赶不上生产者的生产消息的速度,导致kafka中有大量的数据没有被消费。随着没有被消费的数据堆积越多,消费者寻址的性能会越来越差,最后导致整个kafka对外提供的服务的性能很差,从而造成其他服务也访问速度变慢,造成服务雪崩。HW是已完成同步的位置。但是有个问题,如果说这个topic中的消息非常多,多到需要几个T来存,因为消息是保存在log日志文件中的,为了解决这个问题,kafka给出分区解决。–创建多个消费组,多个消费者,部署到其他机器上,一起消费,提高消费者的消费速度。...原创 2022-07-23 15:29:50 · 1175 阅读 · 0 评论 -
高并发高可用之RabbitMQ
MQ的两种消息模型MQ的类型注意:发消息是发给交换机,收消息是监听队列。一个连接有很多个信道,每个信道用于收发一个队列。虚拟主机可以用来环境隔离,如生产环境和开发环境隔离。使用15672端口号访问MQ管理网页界面。headers交换器和direct交换器完全一致但性能更差,所以几乎不用。常用交换机类型有:(路由键通配符:#匹配0个或多个单词,*匹配一个单词)(交换机绑定队列时需要设置一个路由键且如果是topic类型支持设置带有通配符的路由键。客户端发送消息时也需要携带一个消息的路由键给交换机)引.原创 2022-07-05 23:17:12 · 2361 阅读 · 0 评论 -
高并发高可用之ElasticSearch
ES的数据存储在磁盘中,数据操作在内存中。注意:ElasticSearch6.0之后移除了类型的概念。7.x使用类型会警告,8.x将彻底废除。安装ES查看日志命令:查看docker镜像ID命令:运行docker镜像:访问:安装kibanakibana访问地址:http://192.168.239.134:5601/(1)GET /_cat/nodes:查看所有节点(2)GET /_cat/healt...原创 2022-06-23 22:54:23 · 5045 阅读 · 0 评论 -
SpringCloudAlibaba
创建一个聚合服务(总工程)并配置pom.xml删除无用的只保留以下在总工程下,选择Spring Initializr快速构建一个微服务模块,(common模块可以用maven模式创建)选择每个微服务必备两个组件spring web和open feign以此类推,创建所有微服务模块所有微服务pom.xml导入common模块依赖创建数据库,服务自治 每个微服务都对应一个自己的数据库每个微服务在自己的springboot配置文件中配置数据源和服务端口号,并导入相关数据源maven依赖红色为Ali原创 2022-06-11 10:32:24 · 393 阅读 · 0 评论 -
亿级流量多级缓存架构
Tomcat支持并发量太低所以不直接使用service操作Redis等,而是使用lua:Nginx+lua+RedisNginx+lua+kafkaNginx+lua=openresty (可作软防火墙)大公司没有delete语句,只做update逻辑删除,不常用的冷数据扔到HBase。此架构是针对读请求的。写请求如秒杀,大多数是用的消峰(过滤扔掉一大部分请求)Lua又称胶水语言,其设计目的是为了通过灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能。Redis执行lua的时候 其他客户端命令都原创 2022-06-04 12:03:57 · 394 阅读 · 0 评论 -
高并发高可用之Redis
目录为什么Redis是单线程还这么快二进制安全为什么Redis是单线程还这么快二进制安全原创 2022-05-16 22:59:33 · 1461 阅读 · 0 评论 -
高并发高可用之Zookeeper
集群使用主从复制集群方式,主节点读写操作,从节只进行读操作。zookeeper有自我修复功能,本身自带高可用。原创 2022-05-11 00:00:33 · 1563 阅读 · 0 评论 -
定时任务Quartz
目录QuartzQuartz原创 2022-05-06 14:40:33 · 2319 阅读 · 3 评论 -
多线程与高并发
目录JMH工具Disruptor框架JMH工具JMH即Java Microbenchmark Harness,是Java用来做基准测试的一个工具,该工具由OpenJDK提供并维护,测试结果可信度高。JVM下的性能测试工具。使用步骤:引入Maven依赖<dependency> <groupId>org.openjdk.jmh</groupId> <artifactId>jmh-core</artifactId>原创 2022-05-04 17:37:33 · 1056 阅读 · 0 评论