- 博客(19)
- 收藏
- 关注
原创 java面试题(常见集合)
时间复杂度分析:来评估代码的执行耗时的大O表示法:不具体表示代码真正的执行时间,而是表示代码执行时间随数据规模增长的变化趋势。
2024-05-13 12:50:47 529 1
原创 Nginx(简洁版)
像这种进出都要经过代理服务器(网关)的叫做隧道式代理,但是有一种性能更高的代理模式叫lvs(DR模型),他上传需要经过代理服务器,但是连接建立后便从服务方直接连接发起方。网关其实就是代理服务器,特点是需要中转,所以网关的带宽限制会影响上传与下载的速度。下面是反向代理的示例。是由服务方主动提供代理,所以叫反向代理。下面是一张正向代理的示例,是用户与服务器主动想要连接外网。上面的书写方式过于麻烦,我们也可以使用正则表达式。电脑拿到IP地址之后,会发起TCP/IP请求,使用负载均衡,代理到多个ip。
2024-05-12 13:35:21 205
原创 分布式事务(Seata)
原子性:事务中的所有操作,要么全部成功,要么全部失败一致性:要保证数据库内部完整性约束,声明性约束隔离性:对同一资源操作的事务不能同时发生持久性:对数据库做的一切修改将永久保存,不管是否出现故障。
2024-05-07 10:17:47 753
原创 Sentinel
默认情况下,发生限流,降级,授权拦截时,都会抛出异常到调用方。如果要自定义异常的返回结果,需要实现BlockExceptionHandler接口:而BlockException包含很多子类,分别对应不同的场景异常说明限流异常热点参数限流异常降级异常授权规则异常系统规则异常统计数据:统计某个资源的访问数据(QPS,RT等信息)规则判断:判断限流规则,隔离规则,降级规则,熔断规则是否满足这里的资源。
2024-05-06 10:54:39 1057
原创 ElasticSearch
ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发给ES。character filters:在tokenizer之前对文本进行处理。例如删除字符,替换字符tokenizer:将文本按照一定的规则切割成词条(term)。例如keyword,就是不分词;还有ik_smarttokenizer filter:将tokenizer输出的词条做进一步处理。例如大小写转换,同义词处理,拼音处理等。
2024-05-04 23:07:33 526
原创 java面试(微服务)
可以自己创建IRule接口,然后再通过配置类或者配置文件即可,通过定义IRule实现可以修改负载均衡规则,有两种方式:服务降级是服务自我保护的一种方式,或者保护下游服务的一种方式,用户确保服务不会受请求突增影响变得不可用,确保服务不会崩溃如果降级太多则会触发熔断Hystrix熔断机制,用于监控微服务调用情况,默认是关闭的,如果需要开启需要在引导类上添加注解:@EnableCircuitBreaker,如果检测到10秒内请求的失败率超过50%,就触发熔断机制。之后每隔5秒重新尝试请求微服务,如果微服务
2024-05-01 21:06:40 1073
原创 java面试(框架)
AOP称为面向切面编程,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect) ,减少系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。记录操作日志缓存处理Spring中内置的事务处理缓存名称源码名称作用一级缓存单例池,缓存已经经历了完整的生命周期,已经初始化完成的bean的对象二级缓存缓存早期的bean对象(生命周期还没走完)三级缓存。
2024-04-27 13:58:41 870
原创 微信小程序
WXML(WeiXin Markup Language)是小程序框架设计的一套标签语言,用来构建小程序页面的结构,其作用类似于网页开发的HTML。WXSS(WeiXin Style Sheets)是一套样式语言,用于描述WXML的组件样式,类似于网页开发中的CSS。宿主环境(host environment)指的是程序运行锁必须得依赖环境。例如:Android系统和IOS系统是两个不同的宿主环境。
2024-04-26 20:01:22 809 1
原创 java面试(MySQL)
索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护者满足特定查找算法的数据结构(B+树),这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找#算法,这种数据结构就是索引。
2024-04-25 21:47:20 765 1
原创 java面试(Redis)
查询一个不存在的数据,mysql查询不到数据也不会写入缓存,就会导致每次请求都查数据库解决方案1:缓存空数据,查询返回的数据为空,扔把这个空结果进行缓存优点:简单缺点:消耗内存,可能会发生不一致的问题解决方案2:布隆过滤器bitmap(位图):相当于是一个以(bit)为为单位的数组,数组中每个单元只能存储二进制数0或1布隆过滤器作用:布隆过滤器可以用作检索一个元素是否在一个集合中。
2024-04-22 20:54:17 918
原创 rabbitMQ(高性能的异步通信组件)
publisher:消息发送者consumer:消息的消费者queue:队列,存储消息exchange:交换机,负责路由消息virtual-host:虚拟主机,起到数据隔离的作用。
2024-04-14 11:14:35 967 1
原创 websocket打造在线聊天室
WebSocket是一种网络通信协议。RFC6455定义了他的标准。WebSocket是HTML5开始提供的一种在单个TCP连接上进行全双工通讯的协议HTTP协议是一种无状态的,无连接的,单向的应用层协议。它采用了请求/响应模型。通信请求只能由客户端发起,服务端对请求作出应答处理这种通信模型有一种弊端:HTTP协议无法实现服务器主动向客户端发起消息这种单向请求的特点,注定了如果服务器有连续的状态变化,客户端要获知就非常麻烦。大多数web应用程序将通过频繁的异步AJAX请求实现长轮询。
2024-04-10 09:44:25 611 1
原创 mysql高级(运维篇)
主从复制是指将主数据库的DDL和DML操作通过二进制日志传到库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。MySQL支持一台主库同时向多台从库进行复制,从库同时也可以作为其他服务器的主库,实现链状复制MySQL复制的优点主要包含以下三个方面主库出现问题,可以快速切换到从库提供服务实现读写分离,降低主库的访问压力可以从库中执行备份,以避免备份期间影响主库服务IO瓶颈:热点数据太多,数据库缓存不足,产生大量磁盘IO,效率较低。
2024-04-01 19:24:58 596
原创 mysql高级(进阶篇)
存储引擎就是存储数据,建立索引,更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。// 在创建表的时候,指定存储引擎CREATE TABLE 表名{...// 查看当前数据库支持的存储引擎用户定义变量是用户根据需要自己定义的变量,用户变量不用提前声明,在用的时候直接"@变量名"使用就可。其作用域为当前连接# 赋值SELECT 字段名 INTO @var_name FROM 表名# 使用。
2024-03-29 11:27:26 582 1
原创 springsecurity OAuth2.0(springboot集成springsecurity 以及springcloud集成springsecurity )
用户认证通过后,为了避免用户的每次操作都进行认证,将用户的信息保存在会话中。会话就是系统为了保持当前登录的用户的登录状态锁提供的机制。
2024-03-12 16:57:57 1053
原创 JUC学习(下)
Unsafe对象提供了非常底层的,操作内存,线程的方法,Unsafe对象不能直接调用,只能通过反射获得定义英文名称:Flyweight pattern 当需要重用数量有限的同一类对象的时候归类@Slf4j// 1.任务队列// 2.锁// 3.生产着条件变量// 4.消费者条件变量// 5.容量// 带超时的阻塞获取try {// 将超时时间统一转换为纳秒try {// 返回值为剩余的时间return t;}finally {// 阻塞获取。
2024-01-02 20:20:43 441 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人