中间件的几个问题要理解

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 面试

什么是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

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
15天前
|
分布式计算 中间件 API
中间件应用集成的介绍
中间件应用集成在系统集成中扮演关键角色,通过中间件层连接和协调异构系统,促进通信与数据共享。它提供标准接口,简化集成过程,提升效率,实现业务流程统一。中间件类型多样,如集成、交易、工作量、门户中间件等,可根据需求定制,增强系统可用性、可扩展性,降低成本,助力企业提高效率和竞争力。
15 2
|
13天前
|
消息中间件 中间件 关系型数据库
阿里云中间件
阿里云中间件
10 1
|
12天前
|
安全 中间件 数据处理
中间件在应用集成
中间件是应用集成的关键,它连接不同系统、平台和应用,解决兼容性问题,实现数据交换和功能互操作。主要应用包括数据集成、服务集成、消息传递、安全与权限管理。选择中间件需考虑兼容性、性能、可扩展性和安全性。中间件简化通信,提高系统性能和可靠性,助力企业实现应用高效协同和商业价值。
15 2
|
7月前
|
分布式计算 算法 中间件
中间件的介绍
中间件的介绍
340 0
|
8月前
|
监控 JavaScript 前端开发
说说你对redux中间件的理解?常用的中间件有哪些?实现原理?
说说你对redux中间件的理解?常用的中间件有哪些?实现原理?
|
8月前
|
JavaScript 前端开发 中间件
对Redux中间件的理解?常用的中间件有哪些?实现原理?
对Redux中间件的理解?常用的中间件有哪些?实现原理?
58 0
|
12月前
|
消息中间件 缓存 运维
聊聊中间件
聊聊中间件
|
开发框架 缓存 前端开发
7.6中间件
ASP.NET Core只是完成了HTTP请求调度、报文解析等必要的工作,像检查用户身份、设置缓存报文头等操作都是在中间件中完成,中间件就是ASP.NET Core的一个组件,由前逻辑、next、后逻辑3部分组成,多个中间件组成一个管道,一个系统中可以有多个管道。ASP.NET Core执行的过程就是http请求和响应按照中间件组装的顺序在中间件之间流转的过程。
|
中间件 Java Spring
从-1开始实现一个中间件
别人都写从0开始实现xxx,我先从-1开始就显得更牛逼一些。 今天,先开个头,来教大家怎么实现一个中间件。
从-1开始实现一个中间件
|
消息中间件 人工智能 Cloud Native