java与数据库中的锁 及 MVCC

一、Java中的锁公平锁/非公平锁 可重入锁/不可重入 独享锁/共享锁 读写锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁1.1 公平锁,非公平锁:公平锁就是保障了多线程下各线程获取锁的顺序,先到的线程优先获取锁,当一个线程获取到锁后,这时如果其他多个线程同时请求获取锁,会将其他线程按到达顺序排成队列,当持有锁的线程释放锁后,队列中的线程会依次按照队列顺序获取锁。非公平锁则无法提供这个保障。与公平锁的区别时,当一个线程持有锁时,其他线程请求时会加入队列中,当一个持有锁的线程释放.
分类: 其他 发布时间: 04-06 22:34 阅读次数: 0

RestTemplate实现负载均衡及Ribbon原理

Ribbon让服务调用端具备负载均衡能力,即客户端会有一个服务器地址列表(在SpringCloud中,服务注册列表的信息来自 EurekaClient等注册中心),在发送请求前通过负载均衡算法选择一个服务器,然后进行访问,即在客户端就进行负载均衡算法分配。客户端负载均衡,大抵可以分为两个过程:获取服务注册列表的信息 根据均衡策略进行负载均衡Ribbon的负载均衡,主要通过LoadBalancerClient来实现的,而LoadBalancerClient具体交给了ILoadBalancer来处理
分类: 其他 发布时间: 04-06 22:34 阅读次数: 0

Feign原理

Feign注重服务端的负载均衡,比如后端A服务调B服务,若B服务有多个部署实例,A在用Feign调用时实际是有负载均衡的。如果用一句话来概括Feign的工作原理,那就是:在微服务启动时,Feign会进行包扫描,对加@FeignClient注解的接口,按照注解的规则,创建远程接口的本地JDK Proxy代理实例。然后,将这些本地Proxy代理实例,注入到Spring IOC容器中。当远程接口的方法被调用,由Proxy代理实例去完成真正的远程访问,并且返回结果。比如:@FeignClient(
分类: 其他 发布时间: 04-06 22:34 阅读次数: 0

数据结构 与 算法

O一、基本概念和术语1.1 数据、数据结构数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。比如整型等数值类型、字符、声音、视频、图像等。数据结构:是互相之间存在一种或多种特定关系的数据元素的集合。1.2 算法算法:是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,且每条指令表示一个或多个操作。算法的特性:输入输出:算法有零个输入或多个输入,至少有一个或多个输出 有穷性:执行有限的步骤后就会有结果,不会出现无.
分类: 其他 发布时间: 04-06 22:34 阅读次数: 0

玩转 RestTemplate

一、RestTemplate 简介RestTemplate是Spring提供的用来访问Rest服务的客户端或者说是一个 HTTP 请求工具。这么说可能有些抽象,那就设想一下:现在有A、B两个服务,两个服务都注册在eureka中,那A服务要调用B服务怎么办?你可以使用Java 自带的 HttpUrlConnection 或者经典的网络访问框架 HttpClient 来实现。但是这些请求工具都是比较原生态的,在使用时开发者还要自己完成部分逻辑,使用起来比较复杂。Spring给我们提供了RestT.
分类: 其他 发布时间: 04-06 22:34 阅读次数: 0

spring cloud 专辑(全面梳理、实际代码、常见问题总结)

一、什么是微服务?什么是微服务架构?“微服务”一词来源于 Martin Fowler 的《Microservices》一文。微服务是一种架构风格,即将单体应用划分为小型的服务单元,微服务之间使用 HTTP 的 API 进行资源访问与操作。微服务架构就是将单体的应用程序分成多个应用程序,这多个应用程序就成为微服务,每个微服务运行在自己的进程中,并使用轻量级的机制通信。这些服务围绕业务能力来划分,并通过自动化部署机制来独立部署。这些服务可以使用不同的编程语言,不同数据库,以保证最低限度的集中式管理。.
分类: 其他 发布时间: 04-06 22:34 阅读次数: 0

数据库表结构文档生成导出神器——Screw(螺丝钉)插件springboot集成实例

本文所有实例代码下载地址:https://github.com/ImOk520/myspringcloud一、说明Screw(螺丝钉)是一款简洁好用的数据库表结构文档生成工具,它的特点是:简洁、轻量、设计良好、多数据库支持、多种格式文档、灵活扩展以及支持自定义模板,对于有经常要进行数据库设计、评审、文档整理等需求的人来说就是福音~。Screw支持的数据库有:MySQL MariaDB TIDB Oracle SqlServer PostgreSQL Cache DB...
分类: 其他 发布时间: 04-06 22:34 阅读次数: 0

springboot实现微信小程序二维码生成

一、微信小程序创建先要去微信公众平台注册一个小程序,每个小程序都有相应的AppID(小程序ID)和AppSecret(小程序密钥),它们是获取ACCESS_TOKEN所需要的。微信公众平台地址:https://mp.weixin.qq.com/注册添加小程序后会取得AppID(小程序ID)和AppSecret(小程序密钥):二、依赖引入 <dependency> <groupId>com.alibaba</.
分类: 其他 发布时间: 04-06 22:33 阅读次数: 0

Linux命令(权限、文件操作、请求、资源、服务日志查看...)整理

整理一下,方便忘记时快速查看,持续更新。一、文件/目录操作cd -返回上次所在的目录cd /返回根目录pwd显示当前目录路径ls查看目录中的文件mkdir dir1创建一个叫做 'dir1' 的目录'mkdir dir1 dir2同时创建两个目录mv dir1 new_dir重命名/移动 一个目录cp file /usr/file1在file文件路径下,将文件file复制到目录/usr下,并改名为file1(cp meeting_manage-0.1.war...
分类: 其他 发布时间: 04-06 22:33 阅读次数: 0

spring管理下事务总失效?事务不起作用场景 + 事务隔离策略

为什么要说事务?一方面业务开发中经常要考虑事务,比如调用第三方接口失败时处理本地数据状态是要考虑事务,结算时A账户增加失败时B账户也不能扣款成功。。。总之,在遇到原子性的操作,要成功都成功,要失败都失败的场景时,事务肯定是要考虑的!另一方面,“你有没有遇到事务失效的情况?” 或者 “哪些情况下事务会失效?”已经是面试时的高频问题,都爱问这个,我就被问过!这里学习整理下还是必要的,谁不想以后吊打面试官呢!一、事务失效的情况这里所有的例子都用下面这个更新操作演示: <u..
分类: 其他 发布时间: 04-06 22:33 阅读次数: 0

为啥ElasticSearch搜索那么快?倒排索引又是啥?

一、倒排索引假如给你一个文本库,现在让你去找出所有包含“Hello”这个单词的文档,并按该单词出现的频率高低进行权重,即出现次数最多的文本优先展示。1.1正排索引倒排索引是相对于正排索引来说的,对于上面的场景,先看正排索引会怎么做:如果是正排索引,...
分类: 其他 发布时间: 04-06 22:33 阅读次数: 0

ES核心概念、基本操作及SpringBoot集成

ES全称ElasticSearch,是一种分布式全文检索引擎,用于全文搜索、分析。近乎实时的存储及检索效率,可以在上百台服务器上运行处理PB级数据的扩展性都让ES成为炙手可热的搜索引擎。除此外,ES通过简单的RESTful API屏蔽了Lucence的复杂语法,在使用上ES也变得简单易上手。一、ES核心概念1.1ES和普通关系型数据库的映射关系ES集群中可以包含多个索引(数据库),每个索引可以包含多个类型(表),每个文档(行)中又包含多个词(字段)。当然上面的映射也只是为了易于理解.
分类: 其他 发布时间: 04-06 22:33 阅读次数: 0

什么?!你还没有学习Docker?

可以说只要是后端开发基本都知道点Docker,但是仅仅知道那一点点是不够的,在交付逐渐以jar、war包的形式转为容器形式的趋势中,不管是开发还是运维人员都需要好好学习掌握Docker。一、为什么会有Docker?Docker来自一家名叫“dotCloud”的公司,这家公司主要提供基于PaaS的云计算技术服务(具体来说,是和LXC有关的容器技术,LXC,就是Linux容器虚拟技术)。后来,dotCloud公司将自己的容器技术进行了简化和标准化,并命名为——Docker。当然Docker诞生之
分类: 其他 发布时间: 04-06 22:33 阅读次数: 0

有了这篇,面试官问MySQL,再也不虚了!(一)

一、一条SQL查询语句是如何执行的?select * from student where ID=1;上面是一条最简单的查询SQL语句,我们看到的只是输入一条语句,返回一个结果,却不知道这条语句在 MySQL 内部的执行过程。看似简单的背后有着复杂的过程,实际对应着Mysql的逻辑架构:MySQL 的逻辑架构图总体上,MySQL 可以分为 Server 层和存储引擎层两部分。Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所..
分类: 其他 发布时间: 04-06 22:33 阅读次数: 0

有了这篇,面试官问MySQL,再也不虚了!(二)

写在前面:最近学习了大佬的MySQL课程,很有深度,解开了我很多疑点,值得去研究学习,这里整理记录下。当然这里面需要一些前置知识储备,详见:二叉树、红黑树、B树、B+树 合集MySQL相关知识点一、随机查询现象:英语学习 App 首页有一个随机显示单词的功能,也就是根据每个用户的级别有一个单词表,然后这个用户每次访问首页的时候,都会随机滚动显示三个单词。发现随着单词表变大,选单词这个逻辑变得越来越慢,甚至影响到了首页的打开速度。mysql> CREATE TABLE.
分类: 其他 发布时间: 04-06 22:33 阅读次数: 0

有了这篇,面试官问MySQL,再也不虚了!(三)

写在前面:最近学习了大佬的MySQL课程,很有深度,解开了我很多疑点,值得去研究学习,这里整理记录下。当然这里面需要一些前置知识储备,详见:二叉树、红黑树、B树、B+树 合集MySQL相关知识点一、误删数据后除了跑路,还能怎么办?传统的高可用架构是不能预防误删数据的,因为主库的一个 drop table 命令,会通过 binlog 传给所有从库和级联从库,进而导致整个集群的实例都会执行这个命令。为了找到解决误删数据的更高效的方法,我们需要先对和 MySQL 相关的误删数据,.
分类: 其他 发布时间: 04-06 22:33 阅读次数: 0

注解初体验

文章目录#什么是注解(Annotation)Annotation:是JDK5.0开始引入的新技术Annotation的作用:不是程序本身,可以对程序作出解释可以被其程序读取。(注解信息处理流程是注解和注释的最大区别)Annotation的格式:“@注释名”在代码中存在 例如 @SuppressWarning(value=“all”)Annotation的使用位置:可以加在package...
分类: 其他 发布时间: 04-06 22:15 阅读次数: 0

手写WebServer服务器

文章目录项目介绍具体实现初步搭建类和结构测试浏览器与服务端的连接服务端的三步曲解析请求处理请求发送响应优化并处理转态码DOM4J读取xml文件结合服务器实战ATM项目心得总结项目介绍基于:Java EE、多线程、Socket网络编程、XML解析,反射虽然要用到的东西不是很多,但是却充满了挑战。通过这个项目可以大致的了解浏览器与服务器之间的数据传递,请求是如何发送的,以及服务端又是如何处理请求...
分类: 其他 发布时间: 04-06 22:15 阅读次数: 0

小记:idea部署Tomcat运行servlet项目遇到的bug(jar not loaded)

情况如下:tomcat输出servlet-api-XX.jar - jar not loaded .解决方法首先将项目中的所有servlet相关的jar包移除,然后在pom.xml中进行配置 <dependency> <groupId>javax.servlet</groupId> <artifactId>ser...
分类: 其他 发布时间: 04-06 22:15 阅读次数: 0

MySQL详细的攻略和玩法,你值得拥有

文章目录增删改查增删改查
分类: 其他 发布时间: 04-06 22:15 阅读次数: 0