中间件的几个问题要理解

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
性能测试 PTS,5000VUM额度
简介: 面试

什么是MyCat?
MyCat是目前最流行的基于java语言编写的数据库中间件,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分库分表。配合数据库的主从模式还可实现读写分离。
MyCat是基于阿里开源的Cobar产品而研发,Cobar的稳定性、可靠性、优秀的架构和性能以及众多成熟的使用案例使得MyCat变得非常的强大。
MyCat发展到目前的版本,已经不是一个单纯的MySQL代理了,它的后端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL等主流数据库,也支持MongoDB这种新型NoSQL方式的存储,未来还会支持更多类型的存储。而在最终用户看来,无论是那种存储方式,在MyCat里,都是一个传统的数据库表,支持标准的SQL语句进行数据的操作,这样一来,对前端业务系统来说,可以大幅降低开发难度,提升开发速度。

什么是纵向切分/垂直切分?
就是把原本存储于一个库的数据存储到多个库上。
由于对数据库的读写都是对同一个库进行操作,所以单库并不能解决大规模并发写入的问题。
例如,我们会建立定义数据库workDB、商品数据库payDB、用户数据库userDB、日志数据库logDB等,分别用于存项目数据定义表、商品定义表、用户数据表、日志数据表等。
优点
1)减少增量数据写入时的锁对查询的影响。
2)由于单表数量下降,常见的查询操作由于减少了需要扫描的记录,使得单表单次查询所需的检索行数变少,减少了磁盘IO,时延变短。
缺点:
无法解决单表数据量太大的问题。
横向切分/水平切分
把原本存储于一个表的数据分块存储到多个表上。当一个表中的数据量过大时,我们可以把该表的数据按照某种规则,进行划分,然后存储到多个结构相同的表,和不同的库上。
例如,我们userDB中的userTable中数据量很大,那么可以把userDB切分为结构相同的多个userDB:part0DB、part1DB等,再将userDB上的userTable,切分为很多userTable:userTable0、userTable1等,然后将这些表按照一定的规则存储到多个userDB上。
优点:
1)单表的并发能力提高了,磁盘I/O性能也提高了。

2)如果出现高并发的话,总表可以根据不同的查询,将并发压力分到不同的小表里面。

缺点:无法实现表连接查询。

简述Tomcat,Apache,JBoss和WebLogic的区别和联系
答:Apache:全球应用最广泛的http服务器,免费,出自apache基金组织

Tomcat:应用也算非常广泛的web 服务器,支持部分j2ee,免费,出自 apache基金组织

JBoss:开源的应用服务器,比较受人喜爱,免费(文档要收费)

weblogic:应该说算是业界第一的app server,全部支持j2ee1.4(收费)

JBoss也支持j2ee

JBoss和WebLogic都含有Jsp和Servlet容器,也就可以做web容器,

JBoss和WebLogic也包含EJB容器,是完整的J2EE应用服务器

tomcat 只能做jsp和servlet的container

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
开发框架 JavaScript 中间件
配置中间件
【5月更文挑战第19天】
75 4
|
6月前
|
消息中间件 缓存 JavaScript
选择中间件
【5月更文挑战第19天】选择中间件
52 3
|
5月前
|
消息中间件 安全 中间件
中间件中与中间件集成
【6月更文挑战第12天】
76 5
|
5月前
|
消息中间件 缓存 监控
中间件中数据生成者
【6月更文挑战第12天】
43 3
|
6月前
|
缓存 中间件 API
中间件处理
【5月更文挑战第14天】
51 1
|
6月前
|
监控 JavaScript 中间件
中间件应用
中间件(Middleware)在软件开发中是一个非常重要的概念,特别是在构建Web应用程序时。中间件通常被定义为一组代码,这些代码在应用程序的请求和响应之间执行,用于处理或修改请求和响应,或者执行一些通用的任务,如身份验证、日志记录、路由等。
63 2
|
6月前
|
消息中间件 中间件 关系型数据库
阿里云中间件
阿里云中间件
197 1
|
分布式计算 算法 中间件
中间件的介绍
中间件的介绍
401 0
|
开发框架 缓存 前端开发
7.6中间件
ASP.NET Core只是完成了HTTP请求调度、报文解析等必要的工作,像检查用户身份、设置缓存报文头等操作都是在中间件中完成,中间件就是ASP.NET Core的一个组件,由前逻辑、next、后逻辑3部分组成,多个中间件组成一个管道,一个系统中可以有多个管道。ASP.NET Core执行的过程就是http请求和响应按照中间件组装的顺序在中间件之间流转的过程。
|
消息中间件 缓存 运维
聊聊中间件
聊聊中间件