This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 1.正向代理与反向代理 | |
| 正向代理代理客户端,代理服务器收到客户端请求,根据客户端请求去真正的服务器获取所需要的资源。正向代理需要客户端设置某些东西(比如翻墙),并且真正的服务端是不知道 | |
| 请求者到底是谁的,因为请求是从代理服务器过来的。反向代理代理服务端,客户端发出请求之后,到达代理服务器,代理服务器内部根据客户端请求,将请求分发给其他的服务器, | |
| 并且把响应的结果返还给用户,代理服务器对用户屏蔽真正的处理请求的服务器。 | |
| 正向代理需要你主动设置代理服务器ip或者域名进行访问,由设置的服务器ip或者域名去获取访问内容并返回; | |
| 而反向代理不需要你做任何设置,直接访问服务器真实ip或者域名,但是服务器内部会自动根据访问内容进行跳转及内容返回,你不知道它最终访问的是哪些机器。 | |
| 正向代理是代理客户端,为客户端收发请求,使真实客户端对服务器不可见;而反向代理是代理服务器端,为服务器收发请求,使真实服务器对客户端不可见。 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| spring启动失败报创建bean异常,没有对应的bean,需要找到对应的接口的实现类看一下接口的实现类是否使用@Service注解修饰 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。即maven主要是用来管理项目的 | |
| Maven 提倡使用一个共同的标准目录结构,Maven 使用约定优于配置的原则 | |
| src/main/java:项目的源代码 src/main/resources:资源文件 src/test/java:测试类代码文件 src/test/resources:测试类资源文件 | |
| src/main/webapp/WEB-INF:web应用文件目录,web项目的信息,比如存放web.xml、本地图片、jsp视图页面 | |
| target:打包输出目录 target/classes:编译输出目录 | |
| POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。 | |
| pom.xml中包括了:项目依赖,插件,项目的版本,项目构建profile等 | |
| maven构建生命周期 | |
| 验证 validate-->编译 compile-->测试 Test-->包装 package-->检查 verify-->安装 install-->部署 deploy | |
| Maven命令列表 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 解决的问题:不同的开发环境需要进行不同的环境配置,在A机器所在的环境下可以跑起来但是在B机器所在的环境不一定可以跑起来。 | |
| Docker将应用程序以及应用程序依赖的环境打包在一个文件里面,称为image文件,直接运行这个文件就会生成一个虚拟容器,程序在容器里运行就好像在真实的物理机上运行一样。 | |
| Docker 的主要用途,目前有三大类。 | |
| (1)提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。 | |
| (2)提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容。 | |
| (3)组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。 | |
| Docker 是服务器----客户端架构。命令行运行docker命令的时候,需要本机有 Docker 服务。 | |
| 启动docker服务: systemctl start docker | |
| image 文件:Docker 把应用程序及其依赖,打包在 image 文件里面。只有通过这个文件,才能生成 Docker 容器。image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。 | |
| image是二进制文件,一个文件往往通过继承另一个文件并加上个性化配置而生成。 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 1.mysql是单进程多线程架构,配置文件my.cnf。 | |
| 2.mysql的特点之一是插件式的存储引擎结构,存储引擎基于表而非数据库。 | |
| 3.InnoDB存储引擎支持事务,行锁设计,支持外键,是mysql默认的存储引擎。InnoDB使用MVCC获得高并发性,并且实现了mysql四种隔离级别,默认为可重复读。使用next-key策略来避免幻读。同时还有插入缓冲(insert buffer),二次写(double write),自适应哈希索引,预读等高性能,高可用的功能。 | |
| 4.MyIsAM存储引擎不支持事务,表锁设计导致并发度不高,支持全文索引。MyISAM缓冲池只缓冲索引文件而不缓冲数据文件。MyISAM存储引擎表由MYD与MYI组成,其中MYD存放数据文件,MYI存放索引文件。 | |
| 5.memory存储引擎将表中数据存储在内存,如果数据库重启则表中数据全部消失,适合作为存放临时数据的临时表。默认使用哈希索引。MySQL数据库使用memory作为临时表来存放中间结果集。。 | |
| 6.MyISAM与Innodb的异同以及优劣? | |
| 事务支持:InnoDB支持,MyISAM不支持 | |
| 存储结构:InnoDB所有数据存储于独立的表文件,大小只受限于操作系统文件的大小,一般为2GB。每个MyISAM在磁盘上存储成三个文件,.frm存储表定义,.MYD存储数据文件,.MYI存储索引文件 | |
| 存储空间:MyISAM可被压缩,所用的存储空间较小,InnoDB需要更多的内存和存储,会在主内存中建立其专用的缓冲池用于高速缓冲数据和索引 | |
| 其它:InnoDB支持行锁,事务,外键。而MyISAM对这些均不支持,但是MyISAM保存有表的总行数,如果select count(*) from table;会直接取出出该值 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| https://www.cnblogs.com/bigmonkeys/p/7823268.html | |
| https://www.cnblogs.com/ygj0930/p/6542259.html |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| mysql四种隔离级别:read-uncommitted read-committed repeatable-read serializable | |
| mysql默认级别为可重复读(repeatalbe-read),但是通过MVCC(普通读)与next-key(当前读)解决了幻读的问题。 | |
| 在RR的隔离级别下,Innodb使用MVVC和next-key locks解决幻读,MVVC解决的是普通读(快照读)的幻读,next-key locks解决的是当前读情况下的幻读。 | |
| 快照读:简单的select操作,属于快照读,不加锁。 当前读:特殊的读操作,插入/更新/删除操作,属于当前读,需要加锁。 | |
| 实现隔离机制的方案主要有两种: | |
| 加锁与MVCC | |
| 对于读未提交的隔离级别,直接读取版本的最新记录就可以了(不管该事务是否已提交),对于序列化的隔离级别,通过加锁互斥来访问数据。 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 1:启动时检查 | |
| 开启的时候会检查依赖的服务是否可用,不可用就会阻止Spring初始化,服务也无法启动。 | |
| 通过<dubbo:reference interface="**" check="true"/> 对依赖的某个服务检查 | |
| 通过<dubbo:consumer check="false"> 关闭所有服务的启动时检查 | |
| 通过<dubbo:registry check="false"> 关闭注册中心启动时检查(注册或者订阅是否成功) | |
| 2:集群容错 | |
| 一般而言,通常一个服务对应一个集群,集群中的每个节点都可以对外承担请求的响应,集群容错即如果调用的服务节点出现故障了,是直接报错/不处理/调用集群中的另一个节点 | |
| 来提供服务。 | |
| 针对不同的场景有不同的情况。 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 分库分表就是按照一定的规则,对原有的数据库和表进行拆分,把原本存储于一个库的数据分块存储到多个库上,把原本存储于一个表的数据分块存储到多个表上。 | |
| 分库分表的方式:垂直于水平 | |
| 垂直划分数据库是根据业务进行划分,例如将shop库中涉及商品、订单、用户的表分别划分出成一个库,通过降低单库(表)的大小来提高性能,但这种方式并没有解决高数据量带来的性能损耗。同样的,分表的情况就是将一个大表根据业务功能拆分成一个个子表,例如用户表可根据业务分成基本信息表和详细信息表等。 | |
| 总之,垂直划分主要是根据业务来进行划分的 | |
| 垂直分库/分表的优缺点 | |
| 优点: | |
| 拆分后业务清晰,达到专库专用。 | |
| 可以实现热数据和冷数据的分离,将不经常变化的数据和变动较大的数据分散再不同的库/表中。 | |
| 便于维护 | |
| 缺点: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 目的:保证在并发情况下数据库数据的一致性。不会出现脏数据。 | |
| Mysql锁:表锁 行锁 | |
| MyISAM引擎支持表锁,而InnnoDB引擎支持表锁与行锁。 | |
| 表锁:锁住整张表,特点是加锁快,开销小,并发冲突小,发生并发冲突的概率大,但是锁粒度大带来的是并发度比较低。 | |
| 行锁:锁住表中的某一行,特点是加锁慢,开销小,并发冲突大,锁粒度小,发生并发冲突的概率相对低,并发度高 | |
| 显示加表锁的语法(针对MyISAM引擎与InnoDB引擎同样适用): | |
| LOCK TABLES tb_name READ; 加读锁,其他会话可读,但不能进行update/insert/delete操作。 | |
| LOCK TABLES tb_name WRITE; 加写锁,其他会话不可读,不可写。 | |
| UNLOCK TABLES; 释放锁 |
NewerOlder