简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
结构化数据,如一些用户信息,可以存放在一张用户表,而非结构化数据,如用户投稿的视频、图片,这些数据,就可以存放在对象存储里。把书籍比作数据,那磁盘就是书架,用于存放书籍,而数据库则是图书馆管理系统,负责管理书籍的借阅、归还和分类等事务,关系型数据库中往往含有多个数据表,在数据表中存储数据,可以类比图书馆存放书籍的模式。大规模数据及多重数据种类存储的解决方案–非关系型数据库。
看到枚举中定义属性就很看不惯。这里梳理下Java枚举中定义属性,以及枚举在开发中的实际应用举例。枚举中枚举类的语法结构虽然和普通类不一样,但是经过编译器之后产生的也是一个class文件。该class文件再反编译回来可以看到实际上是生成了一个类。该类继承了//java为单继承
注意这里的字段只有一个,但实际场景如:输入虹桥,预期返回business、name、brand等字段包含虹桥的数据,如此就得用上一节的。当然可以人为控制文档相关性算分,从而控制文档排名(fuction score:算分函数查询),例如百度竞价,谁出价高谁就在搜索第一位。对于不参与算分的查询,就放到must_not或者filter,减少不必要的算分,以提高查询性能。二者结果一样,但从性能考虑,推荐m
AQS,即AbstractQueuedSynchronizer,抽象的队列同步器。AQS是JUC的基石,好比JVM之于Java。AQS是用来实现锁或者其它同步器组件的公共基础部分的抽象实现, 是重量级基础框架及整个JUC体系的基石,主要用于解决锁分配给"谁"的问题。AbstractOwnableSynchronizer(下面两兄弟的父类)AbstractQueuedSynchronizer:简称A
AOT编译器会为特定的平台创建可执行文件(如windows下的exe),这种文件即Native Image(本地镜像),如此,就不再具备跨平台性。总之,GraalVM在JIT模式,使用Graal编译器,性能好,但内存CPU占用不低。如果既追求低资源占用,又追求高性能,就花钱买企业版的GraalVM。最后,单论性能,社区版的GraalVM本地镜像模式性能是不如Hotspot JVM的JIT模式的。最
授权服务:负责校验接入的客户端、登录的用户账户是否合法,以及颁发token.资源服务:校验token,返回资源信息
相比自己的代码里用Spring AOP添加某些功能,字节码增强更适配无侵入式的Java Agent场景。比如下面写个Java Agent打印。
JetCache对SpringCache进行了封装,在原有功能基础上实现了多级缓存、缓存统计、自动刷新、异步调用、数据报表等功能CaffeineRedisTair。
考虑到远程调用可能失败,失败后重试三次,以上面的hutool为例来实现,其余的都一样,主要还是一个是否成功标记位 + 一个计数,successFlag不用voilate,并发安全也不用考虑,线程内部调用的,用到的数存栈里了都。上面的RestTemplate,在调三方接口时挺好用的,但微服务架构下,各个微服务之间调用时,url就不好写,由此,用Feign:一个声明式的http客户端。和getForE
开发中,代码备份、代码还原回滚、追溯、协同开发等场景必不可少,由此,版本控制工具诞生。