05 2019 档案

摘要:一.SpringMVC表单标签He处理静态资源 1.Spring的表单标签 通过SpringMVC的表单标签可以实现将模型数据中的属性和HTML表单元素相绑定,以实现表单数据更便捷编辑和表单值的回显。 1.form标签 一般情况下,通过GET请求获取表单页面,而通过POST请求提交表单页面,因此获取 阅读全文
posted @ 2019-05-31 22:19 一条路上的咸鱼 阅读(314) 评论(0) 推荐(0) 编辑
摘要:一.SpringMVC概述 SpringMVC为展现层提供的基于MVC设计理念的优秀的Web框架,是目前最主流的MVC框架之一。 SpringMVC通过一套MVC注解,让POJO成为处理请求的控制器,而无需实现任何接口。 支持RESTFUL风格的URL。 采用了松散耦合可插拔组件结构,更具灵活性和扩 阅读全文
posted @ 2019-05-31 15:59 一条路上的咸鱼 阅读(628) 评论(0) 推荐(0) 编辑
摘要:1.Spring中的事务管理 作为企业级应用程序框架,Spring在不同的事务管理API之上定义了一个抽象层。而应用程序开发人员不必了解底层的事务管理API,就可以使用Spring的事务管理机制。 Spring既支持编程式事务管理,也支持声明式的事务管理。 编程事务管理:将事务管理代码嵌入到业务方法 阅读全文
posted @ 2019-05-31 02:07 一条路上的咸鱼 阅读(224) 评论(0) 推荐(0) 编辑
摘要:0.AOP简介 AOP(Aspect Oriented Programming,面向切面编程):是一种新的方法论,是穿透OOP的补充。 AOP的主要编程对象是切面(aspect),而切面模块化横切关注点。 在使用AOP编程时,仍然需要定义功能功能,但可以明确的定义这个功能在哪里,以什么方式应用,并且 阅读全文
posted @ 2019-05-31 00:25 一条路上的咸鱼 阅读(555) 评论(0) 推荐(0) 编辑
摘要:一.IOC和DI 1.IOC(Inversion of Control) 其思想是反转资源获取的方向。传统的资源查找方式要求组件向容器发起请求查找资源,作为回应,容器适时的返回资源;而应用了IOC之后,则是容器主动的将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接收资源。这种行为也 阅读全文
posted @ 2019-05-30 18:53 一条路上的咸鱼 阅读(1326) 评论(0) 推荐(0) 编辑
摘要:零.MyISAM和InnoDB关于锁的区别 ①MyISAM默认用的是表级锁,不支持行级锁。 ②InnoDB默认用的是行级锁,也支持表级锁。 ③共享锁和排它锁的兼容性 |X|排它锁|共享锁| | | 排它锁|冲突|冲突 共享锁|冲突|兼容 ④使用场景 MyISAM A: 频繁执行全部count语句。 阅读全文
posted @ 2019-05-30 01:25 一条路上的咸鱼 阅读(709) 评论(0) 推荐(0) 编辑
摘要:零.索引简介 1. 索引是什么 ①MySQL官方对索引的定义是:索引(Index)是帮助MySQL高效获取数据的数据结构。 ②可以简单的理解为“排好序的快速查找数据结构”。 ③除了数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这种数据结构以某种方式指向数据,这样就可以在这些数据结构的基 阅读全文
posted @ 2019-05-29 20:48 一条路上的咸鱼 阅读(1174) 评论(1) 推荐(1) 编辑
摘要:1.为什么进行读写分离 这个,高并发这个阶段,那肯定是需要做读写分离的,啥意思?因为实际上大部分的互联网公司,一些网站,或者是app,其实都是读多写少。所以针对这个情况,就是写一个主库,但是主库挂多个从库,然后从多个从库来读,那不就可以支撑更高的读并发压力了吗? 2.如何实现mysql读写分离 其实 阅读全文
posted @ 2019-05-26 01:09 一条路上的咸鱼 阅读(368) 评论(0) 推荐(0) 编辑
摘要:1.问题 其实这是分库分表之后你必然要面对的一个问题,就是id咋生成?因为要是分成多个表之后,每个表都是从1开始累加,那肯定不对啊,需要一个全局唯一的id来支持。所以这都是你实际生产环境中必须考虑的问题。 2.生成方案 (1)数据库自增id方案 原理 :这个就是说你的系统里每次得到一个id,都是往一 阅读全文
posted @ 2019-05-26 00:29 一条路上的咸鱼 阅读(613) 评论(0) 推荐(0) 编辑
摘要:1.扩容与缩容 这个是你必须面对的一个事儿,就是你已经弄好分库分表方案了,然后一堆库和表都建好了,基于分库分表中间件的代码开发啥的都好了,测试都ok了,数据能均匀分布到各个库和各个表里去,而且接着你还通过双写的方案咔嚓一下上了系统,已经直接基于分库分表方案在搞了。 那么现在问题来了,你现在这些库和表 阅读全文
posted @ 2019-05-25 23:49 一条路上的咸鱼 阅读(1018) 评论(0) 推荐(0) 编辑
摘要:1.停机迁移方案 这是最简单的也是最low的迁移方案了,如果系统就算短期停机也没有关系或者造不成多大的影响,可以选用此方案。 首先停掉机器,将系统全都停掉,不要再有新的数据进来,然后使用之前写好的程序,连接旧的数据库,将旧数据库里面的数据读出来,然后通过数据分发中间件写到分库分好的数据里面去。然后修 阅读全文
posted @ 2019-05-25 23:22 一条路上的咸鱼 阅读(2868) 评论(0) 推荐(1) 编辑
摘要:1.为什么要分库分表 ①分库分表说白了,就是因为数据量太大了,如果你的单表数据量都到了千万级别,那么你的数据库就无法承受高并发的要求,数据库操作性能就会出现极大的下降。 ②数据库并发量太大了,一般而言,一个数据库最多支撑并发到2000,这时候一定要进行扩容,不然性能会出现严重下降。而且一个健康的单库 阅读全文
posted @ 2019-05-25 23:06 一条路上的咸鱼 阅读(660) 评论(0) 推荐(0) 编辑
摘要:1.两阶段提交方案/XA方案。 原理 这个就是所谓的XA事务,两阶段提交,有一个事务管理器的概念,负责协调多个数据库(资源管理器)的事务,事务管理器先问问各个数据库你准备好了吗?如果每个数据库都回复ok,那么就正式提交事务,在各个数据库上执行操作;如果任何一个数据库回答不ok,那么就回滚事务。 适用 阅读全文
posted @ 2019-05-25 16:19 一条路上的咸鱼 阅读(260) 评论(0) 推荐(0) 编辑
摘要:1.分布式会话是什么? 首先,我们知道浏览器有个cookie,在一段时间内这个cookie都存在,然后每次发请求过来都带上一个特殊的jsessionid cookie,就根据这个东西,在服务端可以维护一个对应的session域,里面可以放点儿数据。 其次,单系统的时候session是不存在问题的。 阅读全文
posted @ 2019-05-25 15:14 一条路上的咸鱼 阅读(315) 评论(0) 推荐(0) 编辑
摘要:1.什么是分布式锁 分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在 "分布式系统" 中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证 "一致性" ,在这种情况下,便需要使用到分布式锁。 在 阅读全文
posted @ 2019-05-25 14:38 一条路上的咸鱼 阅读(337) 评论(0) 推荐(0) 编辑
摘要:1.zookeeper介绍 ZooKeeper是一个 "分布式" 的,开放源码的 "分布式应用程序" 协调服务,是 "Google" 的Chubby一个 "开源" 的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、 阅读全文
posted @ 2019-05-25 12:55 一条路上的咸鱼 阅读(306) 评论(0) 推荐(0) 编辑
摘要:1.调用顺序 其实分布式系统接口的调用顺序,也是个问题,一般来说是不用保证顺序的。但是有的时候可能确实是需要严格的顺序保证。给大家举个例子,你服务A调用服务B,先插入再删除。好,结果俩请求过去了,落在不同机器上,可能插入请求因为某些原因执行慢了一些,导致删除请求先执行了,此时因为没数据所以啥效果也没 阅读全文
posted @ 2019-05-25 12:33 一条路上的咸鱼 阅读(1419) 评论(0) 推荐(0) 编辑
摘要:1.幂等性 所谓幂等性,就是说一个接口,多次发起同一个请求,你这个接口得保证结果是准确的,比如不能多扣款,不能多插入一条数据,不能将统计值多加了1。这就是幂等性。 2.如何保证幂等性 ①对于每个请求必须有一个唯一的标志,比如订单支付请求,必须要包含订单的id,一个id只能支付一次。 ②每次处理完请求 阅读全文
posted @ 2019-05-25 12:21 一条路上的咸鱼 阅读(999) 评论(0) 推荐(0) 编辑
摘要:1.服务治理 服务治理主要作用是改变运行时服务的行为和选址逻辑,达到限流,权重配置等目的。 ①调用链路自动生成 一个大型的分布式系统,会由大量的服务组成,那么这些服务之间的依赖关系和调用链路会很复杂,这就需要dubbo对多个服务之间的调用自动记录下来,生成一张图,显示出来。 ②服务反复问压力以及时长 阅读全文
posted @ 2019-05-25 11:53 一条路上的咸鱼 阅读(664) 评论(0) 推荐(0) 编辑
摘要:1.什么是SPI机制 SPI 全称为 Service Provider Interface,是一种服务发现机制。 SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。 正因此特性,我们可以很容易的通过 SPI 机制为我们 阅读全文
posted @ 2019-05-25 02:21 一条路上的咸鱼 阅读(377) 评论(0) 推荐(0) 编辑
摘要:1.dubbo负载均衡策略 ① random loadbalance 策略 默认情况下,dubbo是random loadbalance 随机调用实现负载均衡,可以对provider不同实例设置不同的权重,会按照权重来进行负载均衡,权重越大分配的流量越高,一般就用这个默认的就可以了。 ② round 阅读全文
posted @ 2019-05-25 01:58 一条路上的咸鱼 阅读(386) 评论(0) 推荐(0) 编辑
摘要:1.dubbo的通信协议 ①dubbo协议 Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。 特点 : dubbo缺省协议,使用的是基于netty+hessian的tbremoting交互。 连接个数:单连接。 连接 阅读全文
posted @ 2019-05-25 01:36 一条路上的咸鱼 阅读(857) 评论(0) 推荐(0) 编辑
摘要:1.dubbo的工作原理 ①整体设计 图例说明: 图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口,位于中轴线上的为双方都用到的接口。 图中从下至上分为十层,各层均为单向依赖,右边的黑色箭头代表层之间的依赖关系,每一层都可以剥离上层被复用,其中,Service 和 C 阅读全文
posted @ 2019-05-25 00:46 一条路上的咸鱼 阅读(392) 评论(0) 推荐(0) 编辑
摘要:1.为什么进行拆分 ①项目过于庞大维护困难。 如果系统过去庞大,那么代码会有很多,达到几十万行上百行,这样就需要很多人一起来维护一份代码,这样就很容易造成各种冲突,这样光合并代码就会浪费大量的时间在上面。 ②项目发布复杂。 一个小bug的修改发布需要整个系统全部进行重新发布,这样就很麻烦,不但发布后 阅读全文
posted @ 2019-05-24 23:40 一条路上的咸鱼 阅读(865) 评论(0) 推荐(0) 编辑
摘要:redis cluster是redis提供的集群模式。 1.redis cluster的架构 ①可以有多个master node,每个master node 都可以挂载多个slave node。 ②读写分离的架构,对应每个master node来说,写就写到master node,读就从master 阅读全文
posted @ 2019-05-24 02:46 一条路上的咸鱼 阅读(2975) 评论(0) 推荐(0) 编辑
摘要:1.什么是并发竞争 就是多客户端同时并发写一个key,可能本来应该先到的数据后到了,导致数据版本错了。或者是多客户端同时获取一个key,修改值之后再写回去,只要顺序错了,数据就错了。 2.怎么解决 采用分布式锁+数据修改的时间戳 方案来解决。 ①想要向缓存中写入数据时,必须要获得分布式锁,只有获得锁 阅读全文
posted @ 2019-05-23 23:48 一条路上的咸鱼 阅读(513) 评论(0) 推荐(0) 编辑
摘要:1.Cache aside pattern 这是最经典的 缓存+数据库 读写模式,操作如下: ①读的时候,先读缓存,缓存没有就读数据库,然后将取出的数据放到缓存,同时返回请求响应。 ②更新的时候,先删除缓存,然后更新数据库。 2.为什么是删除缓存,而不是更新缓存呢? ①因为很多时候,缓存中放的并不是 阅读全文
posted @ 2019-05-23 23:20 一条路上的咸鱼 阅读(482) 评论(0) 推荐(0) 编辑
摘要:1.缓存雪崩 (1)什么是缓存雪崩 缓存雪崩指的是在同一时刻,缓存大量失效,导致大量的请求直接到了数据库,数据库压力剧增,引起系统崩溃。可能出现的情况有: ①大量的key设置了相同的过期时间,导致在缓存在同一时刻全部失效,造成瞬时DB请求量大、压力骤增,引起雪崩。 ②缓存系统出现故障,造成缓存系统无 阅读全文
posted @ 2019-05-23 22:45 一条路上的咸鱼 阅读(391) 评论(0) 推荐(0) 编辑
摘要:1.redis持久化的意义 redis持久化的意义,在于 故障恢复 。 如果没有对数据进行持久化,那么如果redis遇到灾难性的故障,就会丢失所有的数据。 如果通过redis的持久化机制将数据持久化到硬盘上面去,然后在定期将磁盘上的文件备份到一起其他的服务器上面(比如:云服务器),这样就可以保证即使 阅读全文
posted @ 2019-05-23 22:14 一条路上的咸鱼 阅读(349) 评论(0) 推荐(0) 编辑
摘要:如果你用redis缓存技术的话,肯定要考虑如何用redis来加多台机器,保证redis是高并发的,还有就是如何让Redis保证自己不是挂掉以后就直接死掉了,redis高可用 redis高并发:主从架构,一主多从,一般来说,很多项目其实就足够了,单主用来写入数据,单机几万QPS,多从用来查询数据,多个 阅读全文
posted @ 2019-05-23 19:44 一条路上的咸鱼 阅读(3984) 评论(0) 推荐(0) 编辑
摘要:1.数据为什么会过期? 首先,要明白redis是用来做数据缓存的,不是用来做数据存储的(当然也可以当数据库用),所以数据时候过期的,过期的数据就不见了,过期主要有两种情况, ①在设置缓存数据时制定了过期时间,这样到了过期时间数据就不见了。 ②redis的数据是存放在内存中的,而内存是有限的,是不可能 阅读全文
posted @ 2019-05-23 15:39 一条路上的咸鱼 阅读(720) 评论(0) 推荐(0) 编辑
摘要:1.string 这是最基本的类型了,就是普通的set和get,做简单的kv缓存。 2.hash 这个是类似map的一种结构,这个一般就是可以将结构化的数据,比如一个对象(前提是这个对象没嵌套其他的对象)给缓存在redis里,然后每次读写缓存的时候,可以就操作hash里的某个字段。 hash类的数据 阅读全文
posted @ 2019-05-23 14:29 一条路上的咸鱼 阅读(375) 评论(0) 推荐(0) 编辑
摘要:1.memcached和redis有什么区别? (1)Redis支持服务器端的数据操作 redis和memcached相比,redis拥有更多的 数据结构并且支持更丰富的数据操作 ,通常在memcached里面,你需要将数据拿到客户端来进行类型的修改然后在set回去,这样就严重增加了网络IO的次数和 阅读全文
posted @ 2019-05-23 14:00 一条路上的咸鱼 阅读(602) 评论(0) 推荐(0) 编辑
摘要:1.redis是用来干嘛的? Redis is an open source (BSD licensed), in memory data structure store, used as a database, cache and message broker. It supports data 阅读全文
posted @ 2019-05-23 12:12 一条路上的咸鱼 阅读(473) 评论(0) 推荐(0) 编辑
摘要:其实回答这类问题,说白了,起码不求你看过那技术的源码,起码你大概知道那个技术的基本原理,核心组成部分,基本架构构成,然后参照一些开源的技术把一个系统设计出来的思路说一下就好 比如说这个消息队列系统,我们来从以下几个角度来考虑一下 (1)首先这个mq得支持可伸缩性吧,就是需要的时候快速扩容,就可以增加 阅读全文
posted @ 2019-05-22 21:58 一条路上的咸鱼 阅读(1950) 评论(1) 推荐(2) 编辑
摘要:1.大量消息在mq里积压了几个小时了还没解决 场景: 几千万条数据在MQ里积压了七八个小时,从下午4点多,积压到了晚上很晚,10点多,11点多。线上故障了,这个时候要不然就是修复consumer的问题,让他恢复消费速度,然后傻傻的等待几个小时消费完毕。这个肯定不行。一个消费者一秒是1000条,一秒3 阅读全文
posted @ 2019-05-22 21:57 一条路上的咸鱼 阅读(16277) 评论(0) 推荐(2) 编辑
摘要:1.为什么要保证顺序 消息队列中的若干消息如果是对同一个数据进行操作,这些操作具有前后的关系,必须要按前后的顺序执行,否则就会造成数据异常。举例: 比如通过mysql binlog进行两个数据库的数据同步,由于对数据库的数据操作是具有顺序性的,如果操作顺序搞反,就会造成不可估量的错误。比如数据库对一 阅读全文
posted @ 2019-05-22 21:56 一条路上的咸鱼 阅读(10098) 评论(0) 推荐(1) 编辑
摘要:1.幂等性 幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。 在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些 "函数" 不会影响系统状态,也 阅读全文
posted @ 2019-05-22 21:55 一条路上的咸鱼 阅读(13983) 评论(0) 推荐(3) 编辑
摘要:1.mq原则 数据不能多,也不能少,不能多是说消息不能重复消费,这个我们上一节已解决;不能少,就是说不能丢失数据。如果mq传递的是非常核心的消息,支撑核心的业务,那么这种场景是一定不能丢失数据的。 2.丢失数据场景 丢数据一般分为两种,一种是mq把消息丢了,一种就是消费时将消息丢了。下面从rabbi 阅读全文
posted @ 2019-05-22 21:55 一条路上的咸鱼 阅读(6697) 评论(0) 推荐(0) 编辑
摘要:1.RabbitMQ的高可用 RabbitMQ基于主从模式实现高可用。RabbitMQ有三种模式:单机模式,普通集群模式,镜像集群模式。 (1)单机模式: 单机模式就是demo级别的,生产中不会有人使用。 (2)普通集群模式 普通集群模式就是在多台机器上启动多个rabbitmq实例,每个机器启动一个 阅读全文
posted @ 2019-05-22 21:54 一条路上的咸鱼 阅读(2497) 评论(1) 推荐(1) 编辑
摘要:1.为什么使用消息队列? (1)解耦:可以在多个系统之间进行解耦,将原本通过网络之间的调用的方式改为使用MQ进行消息的异步通讯,只要该操作不是需要同步的,就可以改为使用MQ进行不同系统之间的联系,这样项目之间不会存在耦合,系统之间不会产生太大的影响,就算一个系统挂了,也只是消息挤压在MQ里面没人进行 阅读全文
posted @ 2019-05-22 21:53 一条路上的咸鱼 阅读(2289) 评论(1) 推荐(1) 编辑

点击右上角即可分享
微信分享提示