- 博客(71)
- 资源 (1)
- 收藏
- 关注
原创 java面试题
有Redis分布式锁,基于redis扩展的redisson,原理:setnx(set if not exists) key 及 设置UUID判断是否自己的锁,watchdog监听过期。声明式事务思路,在bean初始化时判断@transactional注解,有的化返回代理类,invoke带有transactionInterceptor的拦截器。目的解决计算器算法的问题,实际周期切分多个小的时间窗口,分别计算,然后根据时间滑动,并删除过期的小窗口。
2025-05-24 17:29:09
467
原创 秒杀业务思想
2、定时任务池,修改配置文件spring.task.scheduling.pool.size .不一定好使。3、定时任务异步执行,类增加@EnableAsync,方法增加@Async。数据预热、快速扣减 (提前上架redis缓存)问题:定时时任务默认阻塞,影响下一次任务。单独部署微服务,防止高流量影响其他业务。限流 熔断 降级(快速失败、限制次数)方法@schedule(cron)队列削峰(进入队列,逐渐创建订单)流量错峰(验证码、加入购物车)定时任务(定时扫描要上架的)
2025-05-24 17:24:52
130
原创 数据库范式
不隔离:脏写脏读、不可重复读(多次读 读到的结果不同)—行、幻读(已经清理了,有人查入了数据,还读到了内容)—表。超键:超码、在关系中能唯一标识记录的属性集(身份证、学号),唯一集合但不是最小唯一,三点定位思路。读、加s锁,读完后立即释放—读时改不了,避免了脏读、读完之后可能被其他事务写。数据库存储有对应文件、一个表一个文件。2如果属性值比较丰富的话,可以被更新的属性,写之前校验,还是读时候的值。主属性:某一个属性,属于候选键,它为主属性。1版本号:增加一个属性,时间戳,自增ID、、、判断没有被修改过。
2025-05-24 17:20:57
333
原创 缓存的更新机制
必须写成功:缓存成功、数据方成功——一个事务。99%的业务都用结构化数据—关系型数据库、mysql,oraclee,sqlite。缓存穿透—缓存没用、数据提供方也没有—无效调用、增加数据提供方压力、缓存无用。—写延迟、读延迟要求不一样。缓存有限、清理未来不被访问,保留未来被频繁访问、提高命中率。解决方案:缓存中,缓存一份空数据。直接写入缓存、从缓存同步到数据发。数据属性:(业务数据常用的?消息队列的消息重试、防止删除缓存失败、没消费。便于理解、快速实施。删除异常:删除数据是,导致其他数据一起丢失。
2025-05-24 17:20:26
682
原创 负载均衡笔记
舍弃强一致性、保证最终一致性。—主线程提前释放、避免阻塞耗时—发邮件,记日志,第三方交互/上报信息。进程—多进程、docker、不同端口启动/开多应用。吞吐量—单位时间内,能接受和返回的数据请求量。Transaction事务。负载均衡跟DNS解析 思路上一样。并发数—同时服务的调用方的数量。低级—限流—可用的用户少了?address ip。减少并发数—防止并非过高。DNS 解析域名到IP。CName 域名到域名。Cpu建议 负载70%舍弃C、eureka。—提升效率—多路计算。协程—线程中的线程、
2025-05-24 17:19:55
536
原创 处理三高业务
库存—访问量大、为数据一致性加锁(负载均衡、分库分表)依赖少、高可用 每经过一个处理 ,可靠性就会降低。短路径—路径短,缓存。商品列表—每个人可能不一样—搜索推荐。redis:商品id-库存1。负载均衡、缓存、消息队列、分库分表。多redis/单redis多key。写:读写分离、分库分表、延迟操作。集群、降级、兜底方案。一张表:商品id—总库存100。库存:销售层-调度层-仓库层。读:多级缓存、请求数据的优化。数据传输少、减少cpu、io。做缓存,提高性能,减少链路。合并请求、减少请求次数。
2025-05-24 17:19:24
276
原创 苹果三方商定
3、三方商店AltStore PLA,EPIC Games store 需要从他们的网站下载 他们的商店app,再从商店app下载其他app。4、SetApp 仍然要通过AppStore下载,他们先给了App Store的下载链接,然后用他们的链接 再次解锁需要内购的功能。简单的iOS15-iOS15.4,在手机上安装一次插件app,再安装TrollStore即可。2、巨魔的安装 需要针对 不同系统版本、手机型号(内核不同),选择不同的安装方式。1、申请上欧盟三方商店,不需要开发者主体在欧盟。
2025-05-24 17:11:08
178
原创 iOS知识复习
Runloop 是一个一直在执行的while循环,主线程默认开启,子线程需要手动开启,有3种源,执行时会判断timer sourece0 source1,应用 基本的scroll滑动时,timer会停止,需要添加到runloop trackmode中。根据isa指针 找到 实际所属的类,然后在该类的方法列表 及 父类的方法列表,找到后运行,再最顶层父类找不到对应方法,则unrecognized selector 异常。对象是动态类型,可以在运行时向对象发送消息,也就是某个方法没有实现,编译不会报错。
2025-05-24 17:08:19
733
原创 ES 入门概述
ES倒排索引1、分布式的搜索、存储、数据分析引擎 (不等于搜索引擎)2、优点、面向开发者,屏蔽了Lucene的复杂特性集群自动发现自动维护数据在多个节点的建立搜索请求的负载均衡自动维护冗余副本,保证部分节点宕机时不会有数据丢失提供了高级功能-复合查询、聚合分析、基于地理位置构建大型分布式集群、处理pb级别数据同义词梳理,相关度排名、海量数据的近实时处理3、应用领域百度—全文检索、高亮、搜索推荐网站的用户行为日志BIGIthubEL..
2021-04-02 10:48:25
143
原创 Nginx Tengine学习笔记
Nginx Tengine一种web服务器,同Apache,但是比apache先进很多支持热部署,系统压力小,稳定性好,静态文件处理好,反向代理好。主要扮演反向代理服务器的角色,将服务器收到的请求按照规则分发的过程,叫做负载均衡反向代理代理的是服务器,隐藏了服务器信息,分布式部署。Ngnix支持的负载均衡调度算法:1.轮询(默认)2.ip_hash 跟进发起客户端的ip的hash结果进行匹配,固定ip总会访问到一个后台,一定程度上解决了集群部署环境下sessi...
2020-05-29 19:24:21
763
原创 微服务架构
微服务架构1、拆封服务为provider consumer2、微服务之间通信方式RPC:remote procedure call 远程过程调用,像调用本地服务一样REST:Representational State Transfer,一组架构约束条件和原则,狭义:参数封装到url上。3、分布式部署到不同的服务器上4、集群服务器一个组,做相同的事,5、常用框架Dubbo—RPCDubbox—-Dubbo的升级,支持RESTSpringC...
2020-05-29 19:23:20
268
原创 pom.xml
pom.xml1、元注解,注解他人的注解@Target({ElementType.TYPE}) //作用范围,在什么类型上可以使用该注解@Retention(RetentionPolicy.RUNTIME) //作用域@Documented@Inherited@SpringBootConfiguration @Configuration配置类。 beans.xml配置文件。启动类本身也是一个component@EnableAutoConfiguration 自动配...
2020-05-29 19:21:10
227
原创 SpringCloud学习笔记
SpringCloud本质1、三层架构MVC——是一种结构——为了开发更有效率2、使用开发框架SpringIOC 控制反转。DI依赖注入AOP3、架构发展单体架构微服务化—模块化-拆分分布式部署—-代码其实没有变化(分布式出现的四个核心问题)4、微服务架构的问题这么多服务,客户端怎么访问服务之间如何通信服务怎么治理服务挂了,怎么办为什么要解决这些问题?网络是不可靠的5、SpringCloud生态,解决这些问题第一个Spr..
2020-05-29 19:19:47
239
原创 spring自动配置学习笔记
application.properties 配置server.port=8001application.yml会自动读取,其他命名方式需要单独配置 PropertySources(classPath://Config/config.properties)1、为什么在这里配置一个简单的东西,她就会生效?yaml配置自动绑定,判断条件生效2、什么是yaml,为什么用yaml这种语言以数据(对象,map,list,集合)做中心k: value (中间必须有空格)...
2020-05-29 19:16:33
167
原创 Redis 数据库软件
1.概念高性能 NOSQL( 非关系型数据库)2.下载安装3.命令操作 —数据结构4.持久化操作5.使用java客户端操作redis关系型数据库 mysql oracle1.数据之间有关联关系2.数据存储在硬盘的文件上非关系型数据库 NOSQL(not only sql)。redis. hbase1.存储key:value,数据之间没有关联关系2.存储在内存里操作关系型数据库非常耗时——》 经常查询一些不太经常变化的数据——》缓存思想解...
2020-05-29 19:13:28
282
原创 Maven 学习总结
Maven1、是项目管理工具 包含POM项目对象模型、标准集合、项目生命周期、一个依赖管理系统2、要解决的问题: Jar包冲突依赖 单元测试 打包 部署Maven 的jar包不在项目中,在jar包仓库里,通过jar包的坐标找到对应的jar包3、种类 仓库种类 本地仓库 远程仓库【私服】 中央仓库4、Maven项目标准目录结构: Src/main/java 核心代码 ...
2020-05-29 19:11:44
186
原创 Mybatis学习总结
## 一、环境搭建1、编写基本的实体类—和数据库表内容一致2、引入依赖(pom.xml)3.、全局配置文件 mybatis-config.xml enviroments配置环境,可多个 transactionManager事务管理器类型 type=“JDBC”. datasource配置4个基本信息: driver , url, username, password mappers指...
2020-05-29 19:00:05
206
原创 mac OSX中安装启动zookeeper
安装zookeeper支持brew安装。查看zookeeper 信息$ brew info zookeeper安装zookeeper$ brew install zookeeper安装后,在/usr/local/etc/zookeeper/目录下,已经有了缺省的配置文件。$ ls /usr/local/etc/zookeeperdefaul...
2020-01-13 15:05:56
241
原创 JAVA抢购业务学习--架构设计
难点:高并发—超出最大服务数【分布式、Redis缓存、集群、分布式锁】 单用户多次操作—抢购狂点,如何达到仅处理一次【消息的幂等性】 保证抢购的顺序【消息队列排队】业务架构:描述系统可以做什么的架构微信登录、用户名密码登录 抢购 微信支付、支付宝支付应用架构:描述系统业务应用分类的架构用户业务 商品业务 订单业务 支付业务技术架构:描述系统技术实现的架构前后端...
2020-01-06 13:13:31
415
原创 iOS Background Crash问题总结
一、background crash日志问题 这部分日志一般是一些特殊场景下,系统强杀无法捕捉的 crash 信号,只能依赖apple系统自己的crash系统:第一种常用的通过Xcode -> Organizer查找日志,第二种通过手机设置->隐私→分析,查看日志; 备注:手机设置→隐私→分析里的日志有很多其他知识二、问题实例的 background ...
2019-06-28 17:00:22
1045
原创 QT学习
一、Mac下qt的安装,安装homebrew-->执行brew install qt-->下载qt creator安装包偏好设置中设置环境-->编译器修改为clang,qt版本选中本地的qmake文件-->done注:因为qt安装在usr/local隐藏目录下,无法选中,所以最后一步选择qt版本前,将usr/local/qt拖入个人收藏里,即可再选中。...
2018-11-20 11:07:20
406
转载 重申OOD&OOP中的编码原则---多数程序员必须、却并未遵循的原则问题
S.O.L.I.D是面向对象设计和编程(OOD&OOP)中几个重要编码原则(Programming Priciple)的首字母缩写。SRPThe Single Responsibility Principle 单一责任原则OCPThe Open Closed Principle开放封闭原则LSPThe Liskov Substitution Principle里氏替换原则ISPThe In...
2018-05-16 16:29:11
288
转载 音视频数据相关
视频编码H264理论依据:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内。实现策略:所以对于一段变化不大图像画面,我们可以先编码出一个完整的图像帧A,随后的B帧就不编码全部图像,只写入与A帧的差别,这样B帧的大小就只有完整帧的1/10或更小!B帧之后的C帧如果变化不大,我们可以继续以参考B的方式编码C...
2018-05-10 13:41:05
429
原创 直播技术研究2-推流
推流主要涉及内容:视频捕获:系统方法捕获,GPUImage捕获,CMSampleRef解析美颜滤镜:GPUImage,视频变换:libyuv软编码:faac,x264硬编码:VideoToolbox(aac/h264)libaw:C语言函数库flv协议及编码推流协议:librtmp,rtmp重连,rtmp各种状态回调 推流流程:视频捕捉及GPUImage的使用比较基础,后续学习音视频格式及编码。...
2018-03-28 10:13:33
498
原创 直播技术研究1-CDN与推拉流
一、基本概念CDN的全称是Content Delivery Network,即内容分发网络,简单地说,内容分发网络(CDN)是一个经策略性部署的整体系统,包括分布式存储、负载均衡、网络请求的重定向和内容管理4个要件,而内容管理和全局的网络流量管理(Traffic Management)是CDN的核心所在。通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。二、...
2018-03-27 11:06:28
5717
原创 iOS卡顿优化探究学习
1、iOS的CoreAnimation并非只是一些动画API,本质上是控制图层的分解、存储和管理体系。会涉及绘图、效率等问题。2、CALayer同UIView类似都是一些被层级关系树管理的矩形块,并管理子图层位置,都可以包含图片、文字等内容,并有一些API来做动画。最大的不同是CALayer不能处理用户交互。每个UIView都有对应的layer图层并可以添加更多图层,真正的动画是layer实现
2018-01-02 18:42:44
544
原创 YYCache学习
YYCache基本介绍 YYCache内部包括YYMemeryCache、YYDiskCache。其基本使用比较简单,例如初始化方法initWithName(提供默认路径),initWithPath(自定义路径),类方法cacheWithName,cacheWithPath。添加key-value时会同时向YYMemeryCache、YYDiskCache添加,检索只要其中任意一个查找到key
2017-12-13 11:58:28
546
转载 奔向三张,不破不立:一个iOS开发工程师的职业规划思考(转自iOSer 逆,以资激励)
大前天下午快下班那会儿,跟念茜聊了一下各自的工作现状,发现她现在碰到的一些职业规划上的困惑,跟我在一年多前的情况非常相似。而我经过一年多来的不断思考和调整,已经基本明确了自己的职业规划,发展的方向变得越来越清晰,配合我个人较强的执行力,困惑越来越少,事情也正在朝着越来越好的方向发展。念茜和我是iOS开发行业中的普通年轻从业人员,因此我们的困惑具有一定的代表性。今天,我就跟大家说说这两年来我的职业规
2017-12-05 10:38:59
1249
原创 Servlet学习
1、表单数据提交表单First name:Last name: 如果您点击提交,表单数据会被发送到名为 demo_form.asp 的页面。如果您点击提交,表单数据会被发送到名为 demo_form.asp 的页面。处理表单Servlet 处理表单数据,这些数据会根据不同的情况使用不同的方法自动解析:getParamet
2017-08-23 18:14:53
374
原创 CGI、Servlet、JSP
1、CGI基本概况CGI:common gate interface ,通用网关接口因为CGI是Server和Clinet的接口,所以对于不同的Server,CGI程序的移值是一个很复杂的问题。一般对于不同的Server,决没有两个可以互相通用的CGI。实际上 这就是CGI程序最复杂的地方。以前网站上的动态功能都是用CGI实现,而写CGI的语言有很多,C也行。最流行的是perp。
2017-08-23 11:33:58
583
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人