mycat

java web轻量级开发面试教程

白昼怎懂夜的黑 提交于 2020-11-01 19:16:17
最近面试java后端开发的感受:如果就以平时项目经验来面试,通过估计很难——再论面试前的准备 在上周,我密集面试了若干位Java后端的候选人,工作经验在3到5年间。我的标准其实不复杂:第一能干活,第二Java基础要好,第三最好熟悉些分布式框架,我相信其它公司招初级开发时,应该也照着这个标准来面的。 我也知道,不少候选人能力其实不差,但面试时没准备或不会说,这样的人可能在进团队干活后确实能达到期望,但可能就无法通过面试,但面试官总是只根据面试情况来判断。 但现实情况是,大多数人可能面试前没准备,或准备方法不得当。要知道,我们平时干活更偏重于业务,不可能大量接触到算法,数据结构,底层代码这类面试必问的问题点,换句话说,面试准备点和平时工作要点匹配度很小。 作为面试官,我只能根据候选人的回答来决定面试结果。不过,与人方便自己方便,所以我在本文里,将通过一些常用的问题来介绍面试的准备技巧。大家在看后一定会感叹:只要方法得当,准备面试第一不难,第二用的时间也不会太多。 而且在本人的两本书里, Java Web轻量级开发面试教程 和 Java核心技术及面试指南 , 详细地给出了其它相关面试技巧。 1 框架是重点,但别让人感觉你只会山寨别人的代码 在面试前,我会阅读简历以查看候选人在框架方面的项目经验,在候选人的项目介绍的环节,我也会着重关注候选人最近的框架经验,目前比较热门的是SSM。 不过

模式4的mycat分布式升级

走远了吗. 提交于 2020-10-31 09:48:36
1.在目前的基础上,需要将 my.conf 及另四个/alidata/server/mysql/conf/*.conf进行增加innodb_file_per_table=1,解决mycat进行修改大表时遇到的表名大小写问题;然后再执行 mycat.offline.bin 的4. 2. mycat/conf/rule.xml schema.xml需要手动增加rule,及schema,又不能像mycattype=2那样直接替换,rule里的最先的规则,与最新的分库规则,及日期都不同;schema.xml里的ip也都不一样。 3.遇到的很多漏掉的update要自己补上去。 large upate也是。修改一轮后,在187上测试后,应该没有问题了。 4.普通的mycattype=1,2可以直接升级。但1可能要做; 但仙居的4模式,却是要前面1,2,3这种顺序处理。 来源: oschina 链接: https://my.oschina.net/u/4353702/blog/4696837

太绝了!晋级必备MyCat性能调优笔记,图文并茂,细节好评

眉间皱痕 提交于 2020-10-30 15:59:16
什么是mycat 它是阿里开源的一个数据库中间件,专门为大数据量的项目做分库分表用的。有如下特点: 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品 一个新颖的数据库中间件产品 mycat展望 MyCat 发展到目前的版本,已经不是一个单纯的 MySQL 代理了,它的后端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL 等主流数据库,也支持 MongoDB 这种新型NoSQL 方式的存储,未来还会支持更多类型的存储。 mycat笔记 给大家着重收集并整理了这份关于开源数据库中间件MyCat使用及原理的源码+笔记+项目实战的资料。本资料文将全面的从MyCat基础,高级,集群,监控,架构剖析来讲解MyCat,并通过一个案例来演示在实际开发中,应该如何来实现MyCat进行数据库的分片操作。通过本资料的学习,我们能够全面的掌握MyCat的使用及原理。 以上就是资料包含的内容,下面小编会展示目录和详细内容截图,有需要完整版源码+笔记的朋友, 点击获取 !! 彻底开源技术MyCat入门到开发

我整理的java开源项目

半腔热情 提交于 2020-10-28 06:39:40
1. 整理出一些使用比较广或者个人觉得比较好的 java 开源项目和资料供参考。 2. 如果你觉得好但是我没有列出的开源项目请告诉我,方便我添加到列表里。 3. 如果你发现信息描述有误请联系我,我会及时修改或删除。 4. 文章里面的内容会不断进行变更和补充,后续除了会新增开源项目,与其相关的学习资料也会添加到项目链接下。 5. 项目排名不分先后。 6. 希望你有收获。 下面提供一些跟开源相关的文章链接: 1. Apache的开源软件列表 http://www.oschina.net/project/apache 2. Java开源Apache项目 http://www.open-open.com/56.htm 3. 阿里巴巴的开源软件列表 http://www.oschina.net/project/alibaba 4. 百度的开源软件列表 http://www.oschina.net/project/baidu 5. 腾讯的开源软件列表 http://www.oschina.net/project/tencent 6. 华为的开源软件列表 http://www.oschina.net/project/huawei 7. Netflix的开源软件列表 http://www.oschina.net/project/netflix 8. 大公司都有哪些开源项目 http://www

Mysql跨机房同步方案

流过昼夜 提交于 2020-10-28 04:40:49
Mysql跨机房同步方案 原 尚浩宇 发布于 2016/05/19 17:01 字数 424 阅读 3298 收藏 20 点赞 2 评论 0 撸了今年阿里、网易和美团的面试,我有一个重要发现.......>>> 假设现有两个机房,需要做到数据同步。 以下是架构图(实际架构图根据现有机房架构和实际会比下图复杂,但整体思路不变): Mycat、Canal、Otter是关键的三项技术: Mycat:数据库分库分表中间件,可以管理一个mysql集群,屏蔽了mysql集群,对外伪装成mysql server,用户无感知mysql集群。 Canal:阿里巴巴开源产品,可以读取mysql二进制日志文件,并解析成想要的数据。 Otter:阿里巴巴开源产品,配合Canal可以做到读取二进制文件,解析出增量数据sql,然后执行sql到指定连接。 流程: 1、用户插入一条数据到mycat 2、mycat解析sql,分配sql到指定mysql数据库 3、mysql(假设M1接收到数据)数据库接收数据,根据主从配置,写出二进制日志。 4、mysql(M2)读取二进制日志同步数据,mysql(S)读取二进制日志同步数据,并写出二进制日志 5、Canal读取二进制日志,解析成sql 6、Otter接到sql,获取连接,在机房B的mycat上执行sql 7、Otter收到sql执行回执,执行完毕。 注:

【MySQL】分库分表

[亡魂溺海] 提交于 2020-10-27 19:52:12
一、常见问题 1、为什么要分库分表(设计 高并发 系统的时候, 数据库层面 该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们是如何对数据库进行垂直拆分或水平拆分。 2、如何设计可以动态扩容的分库分表方案? 3、分库分表之后,ID如何处理。 二、为啥要分库分表 其实,这块肯定是扯到高并发了,因为分库分表一定是为了支撑高并发、数据量大两个问题。而且现在说实话,尤其是互联网公司类的公司面试,基本上都会来这么一下。分库分表如何普通的技术问题,不问实在不行,而如果你不知道那也实在说不过去。 说白了,分库分表是两回事,大家可别搞混了,可能光分库不分表,也可能光分表不分库。都有可能,先给大家抛出一个问题。 随着用户量的增长,每天活跃用户数上千万。每天单表新增数据,多个50万。目前1个表的总容量都已经达到两三千万啦!数据库磁盘容量不断消耗掉,高峰期并打达到了5000-8000。单机系统支撑不到现在。公司业务发展越好,用户就越多,数据量越大,请求量越大。那单个数据库一定扛不住。 假设把MySQL从单机变成了三机。 ① MySQL从单机变成了三机,现在可以承受的并发增加了3倍。 ② 将原来3千万数据从1个库分到了3个库,每个库就1/3的数据量,数据库服务器的磁盘使用率大大降低。 ③ 原来1个单表是3千万数据,一个SQL要花3秒去跑,拆分之后,每个库的每个表就1千万数据

主从 分库 MySQL

Deadly 提交于 2020-10-24 16:54:04
数据库热备份 说明: 可以实现数据库实时的备份,保证数据尽可能不丢失. 备份原理: 数据库备份原理: 1.当数据库主库执行更新操作时,会将更新的内容写入到二进制日志文件中. 并且写入二进制文件的过程是一个异步的过程. 2.从库会开启IO线程去读取主库的二进制日志文件,之后写入中继(临时存储)日志中. 3.从库会开启SQL线程去读取中继日志中的信息.之后将数据同步到从库中. 上述的操作是由从库向主库获取数据, 所以从库理论上可以配置无数个(一般2-3台即可); 安装从库mysql 根据安装主库的顺序安装从库,之后将主库信息备份到从库 1.数据库主从配置 1.1 数据库挂载原理 1.1.1 检查主库的状态 1.1.2 开启数据库二进制文件 修改主库核心配置文件 my.cnf vim /etc/my.cnf 1.1.3 重启mysql数据库 说明:当修改好my.cnf文件之后,需要重启数据库,检查二进制日志文件是否存在. 1.1.4 检查主库状态 1.1.5 修改从库二进制文件 修改之后重启mysql数据库 命令: 检查从库状态: 1.2 实现主从的挂载 1.2.1 挂载分析 说明: 从库挂载主库 主库IP地址/主库端口号/登录用户名/登录的密码/二进制日志文件/读取位置. 1.2.2 实现主从挂载 /*我是从库信息 130*/ SHOW MASTER STATUS; /*实现主从的挂载

Kubernetes集群部署有状态主从容器mysql5.7集群

那年仲夏 提交于 2020-10-23 11:23:05
0 前言 本文主要的工作是解决容器集群的有状态化的问题以及进行验证相关技术。 1 相关环境 名称 版本 Kubernetes v1.18.6 RKE 1.1.4 网络插件 calico 2.拓扑图 3.创建测试ns apiVersion: v1 kind: Namespace metadata: name: mysql labels: app: mysql 4.创建Storgeclass apiVersion: v1 kind: PersistentVolume metadata: name: example-mysql-pv spec: capacity: storage: 3Gi volumeMode: Filesystem accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Delete storageClassName: local-storage local: path: /data/mysql/ nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: - node(name) #此处务必是节点名称,也就是kubectl get

兴奋了!阿里技术官手写“MySQL笔记”,传授你年薪百万级干货

落花浮王杯 提交于 2020-10-01 05:03:27
前言 MySQL重要吗?重要!为什么重要?因为它在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展。阿里巴巴数据库系统也大量用到了 MySQL,因此它的稳定性是有保障的。MySQL是开放源代码的,现在面试中,MySQL也成为了必问知识要点,但是MySQL要达到精通的程度,却并非那么容易,所以深度学习M有SQL真的非常重要。 本次分享阿里技术官手写的“MySQL笔记”一共分为上下两册: 上册主要是以大纲脑图为主,清晰的划分了知识点,每个细节都有涉及到,比较全面。 下册则更注重SQL优化问题,在使用上讲述了很多方法和技巧。 因此拥有完整的上下两侧,搞定MySQL,吊打面试官是没什么问题了,这套百万年薪级的技能交给你,不信你还不想要。 一、阿里MySQL笔记(上册) 1.添加数据 2.删除数据 3.修改数据 4.查询语句 单标查询 多表查询 条件查询 like模糊查询 排序查询 聚合函数 分组查询 分页查询 5.约束 (1)概述 (2)分类 主键约束 非空约束 唯一约束 外键约束 6.数据库的设计 多表之间的关系 数据库设计的范式 7.事务 事务的基本介绍 事务四大特征 事务的隔离级别 二、阿里MySQL笔记(下册) 1.MySQL数据库 - SQL优化 结构图 MySQL数据库引擎简介 存储引擎管理 MySQL中的索引(简介+种类+管理+优化)

一文快速入门分库分表(必修课)

℡╲_俬逩灬. 提交于 2020-10-01 02:44:47
大家好,我是小富~ 之前有不少刚入坑 Java 的粉丝留言,想系统的学习一下分库分表相关技术,可我一直没下定决心搞,眼下赶上公司项目在使用 sharding-jdbc 对现有 MySQL 架构做分库分表的改造,所以借此机会出一系分库分表落地实践的文章,也算是自己对架构学习的一个总结。 我在网上陆陆续续的也看了一些有关于分库分表的文章,可发现网上同质化的资料有点多,而且知识点又都比较零碎,还没有详细的实战案例。为了更深入的学习下,我在某些平台买了点付费课程,看了几节课发现有点经验的人看还可以,但对于新手入门来说,其实学习难度还是蛮大的。 为了让新手也能看得懂,有些知识点我可能会用更多的篇幅加以描述,希望大家不要嫌我啰嗦,等这分库分表系列文章完结后,我会把它做成 PDF 文档开源出去,能帮一个算一个吧!如果发现文中有哪些错误或不严谨之处,欢迎大家交流指正。 具体实践分库分表之前在啰嗦几句,回头复习下分库分表的基础概念。 什么是分库分表 其实 分库 和 分表 是两个概念,只不过通常分库与分表的操作会同时进行,以至于我们习惯性的将它们合在一起叫做分库分表。 分库分表是为了解决由于库、表数据量过大,而导致数据库性能持续下降的问题。按照一定的规则,将原本数据量大的数据库拆分成多个单独的数据库,将原本数据量大的表拆分成若干个数据表,使得单一的库、表性能达到最优的效果(响应速度快)