加群联系作者vx:xiaoda0423
仓库地址:webvueblog.github.io/JavaPlusDoc...
webvueblog.github.io/JavaPlusDoc...
mysql是什么
mysql是一种关系型数据库, 是一个关系型数据库管理系统, 由瑞典MySQL AB 公司开发, 目前属于 Oracle 公司.
mysql有哪些功能?
mysql有哪些功能?
mysql有以下功能:
- 关系型数据库
- 数据库管理系统
- 支持多种编程语言
- 支持多种操作系统
- 支持多种数据库客户端
- 支持多种数据库服务器
- 支持多种数据库协议
- 支持多种数据库引擎
- 支持多种数据库备份和恢复
- 支持多种数据库压缩
- 支持多种数据库加密
- 支持多种数据库解密
- 支持多种数据库索引
- 支持多种数据库视图
- 支持多种数据库触发器
- 支持多种数据库存储过程
- 支持多种数据库函数
- 支持多种数据库事件
- 支持多种数据库角色
- 支持多种数据库用户
- 支持多种数据库表
- 支持多种数据库列
mogodb是什么
mogodb是一个基于分布式文件存储的数据库。由C++语言编写。
什么是分布式文件存储?
分布式文件存储是指将文件存储在多个节点上,每个节点都可以存储一部分文件。这样可以提高文件存储的效率,也可以提高文件存储的可靠性。
什么是C++语言?
C++是一种高级编程语言,它是一种面向对象的编程语言。C++语言是一种通用的编程语言,它可以用来开发各种类型的应用程序。
什么是面向对象的编程语言?
面向对象的编程语言是指使用面向对象的思想来编写程序。面向对象的思想是将现实世界中的事物抽象为对象,然后使用对象来描述现实世界中的事物。
面向对象的编程语言有三个基本特征:封装、继承、多态。
封装是指将数据和操作数据的方法封装在一个对象中。这样可以隐藏对象的实现细节,只向外部暴露必要的方法。
继承是指一个对象可以继承另一个对象的属性和方法。这样可以避免重复编写代码,提高代码的复用性。
多态是指一个对象可以有多种形态。这意味着一个对象可以被视为它自己的类型,也可以被视为它的父类型。
什么是面向对象的数据库?
面向对象的数据库是指使用面向对象的思想来设计数据库。使用面向对象的思想来设计数据库,可以提高数据库的效率,也可以提高数据库的可维护性。
什么是mogodb?
mogodb是一个面向对象的数据库。它是一个分布式文件存储数据库。它是一个基于分布式文件存储的数据库。它是一个基于C++语言编写的数据库。
mogodb的优势
mogodb的优势有:
- 高性能:mogodb是一个高性能的数据库。它可以支持大量的数据读写操作。
- 高可扩展性:mogodb是一个高可扩展性的数据库。它可以通过添加节点来扩展数据库的容量和性能。
- 高可用性:mogodb是一个高可用性的数据库。它可以通过复制数据来保证数据库的可用性。
- 丰富的查询功能:mogodb是一个功能丰富的数据库。它支持丰富的查询功能,包括基本的查询、高级的查询、文本查询、地理空间查询等。
- 支持多种数据模型:mogodb是一个支持多种数据模型的数据库。它支持文档型数据模型、键值型数据模型、列存储型数据模型和图形型数据模型等。
mogodb的应用场景
mogodb的应用场景有:
- 内容管理系统:mogodb可以用来存储和管理内容数据。例如,博客、新闻、产品评论等。
- 实时数据分析:mogodb可以用来存储和分析实时产生的数据。例如,传感器数据、日志数据等。
- 社交网络:mogodb可以用来存储和管理用户生成的内容。例如,用户的好友列表、用户的动态等。
- 物联网(IoT):mogodb可以用来存储和管理物联网设备生成的数据。例如,传感器数据、设备状态等。
nacos是什么
Nacos是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
为什么大厂微服务都在用nacos?
Nacos架构解析:Nacos本质上是个双核引擎,既是配置中心,又是服务发现中心。它的架构核心是插件化设计,通过Core内核层支撑配置管理,Namespace和服务管理Cluster双模块,注意看这个Distro的协议,这是阿里自研的AP架构基石。
采用异步复制实现最终一致性,配合健康检查的Beat心跳机制,这就是它能支撑十万级节点吞吐的秘诀。
和 Eureka 最大的区别在数据一致性模型。Eureka纯AP架构采用自我保护模式,而Nacos可以动态切换AP/CP模式。 Raft协议保证强一致性。Distro协议保障高可用。看核心指标:Nacos 2.0 的gRPC长连接。 能把服务发现延迟压到毫秒级别。这是Eureka的HTTP轮询机制永远做不到的。
架构选型:
- 看是否需要统一配置中心。
- 看集群规模是否超过500节点。
- 看是否需要k8s集成。
Eureka已经停止维护。
配置中心+服务网格=Nacos
纯服务发现=Consul
Nacos重构电商大促系统,动态配置推送让秒杀库存切换实现了零停机。当你有跨地域多活需求时,Nacos的集群同步机制能自动识别机房拓扑,这就是为什么双十一每秒百万次,配置不蹦的关键。
注册中心选型:需要配置版本管理吗;能接受秒级服务上下线延迟吗;要不要无缝对接Sentinel流量管控
nginx是什么
nginx可以作为HTTP服务器,也可以作为反向代理服务器。
就是单Master多Worker架构,想象一个物流中心:Master进程是总指挥,读取nginx.conf配置管理worker, Worker进程是工人,数量对应CPU核数,每个Worker单线程却能处理上万个请求,背后是事件驱动模型,用异步非阻塞机制,让一个线程同时管理数千连接,让一个线程同时管理数千连接,彻底解决性能难题,Worker进程共享监听端口的设计,当你在浏览器输入URL时,操作系统通过SO_REUSEPORT参数,把请求随机分配给任意Worker,即使某个Worker崩溃,其他进程照常运转,这就是高可用的核心秘密。Master进程负责接收请求,Worker进程负责处理请求。
- 事件驱动模型
- 异步非阻塞IO
- 进程间共享监听端口
三大核心模块:
- 反向代理如同智能路由路,对外暴露统一域名,背后自动轮询10台服务器,实现负载均衡。负载均衡实现了请求分发,实现了高可用,实现了高并发。
- 负载均衡算法库自带加权轮询,IP哈希等七种策略,轻松应对秒杀场景
- Proxy Cache把热点数据缓存到磁盘,下次同样请求直接返回本地文件,响应速度提升10倍
共享内存机制解决了分布式限流难题:所有Woker共用计数内存,说好每秒限流1000次,就不会出现单个进程放行999次的漏洞
动静分离:把图片视频交给Nginx处理,把动态请求交给Tomcat处理,实现了动静分离,提高了响应速度。
动态请求才找后端,带宽成本立减70%。
当你更新配置时,Master会启动新Worker接管流量,旧Worker完成现有请求才退出,这叫优雅重启。
加上lua脚本的扩展能力,轻松实现鉴权,改写响应等自定义逻辑。
Nginx能扛住5万QPS,这是它的核心竞争力。
单节点宕机,只需要keep alived+VIP组成双机热备,实现了高可用。 服务器总在流量高峰崩溃,微服务接口分散难以管理,CDN费用居高不下,一定要想到Nginx。
CDN是什么
CDN即内容分发网络,本质上是个"内容快递网络",是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘",使用户可以就近取得所需的内容,提高用户访问网站的响应速度。
CDN,它把源站的数据提前缓存到离用户最近的节点,用空间换时间,用分布抗压力,文本数据用关系型数据库+Redis的组合拳,文件数据就要用对象存储+CDN的组合拳。就像select * from user where id = 1,我们可以用redis缓存,而不用每次去后端查询数据库。从而减少了源库的压力。
为什么redis不能存储图片呢?想象一下10GB的Redis实例存10万张图,光是维护key列表就能让内容爆炸,而CDN的边缘节点自带硬盘存储,专门为海量文件而设计,CDN架构:
- 第一层调度系统,像导航地图,用DNS解析+IP定位,把用户定位到离他最近的节点。
- 边缘节点,相当于遍历全国的快递网点,用SSD硬盘+内存缓存高频内容。最近用过的资源优先保留。
- 第三层回源机制,当本地也没存货时,用HTTP/2快速从源站拉数据,还能自动平衡多个源站压力
CDN实际解决问题:输入网址,首先电脑会根据访问的域名查看浏览器缓存;再看操作系统缓 名的解析,这时云厂商的DNS调度系统,根据你的IP+运营商+节点负载,动态分配"最近最优"的CDN服务器IP给你访问,这个IP其实就是个CDN边缘节点IP。只是这个节点离你最近,访问比较快而已。
当你第一次访问时,边缘节点会检查缓存版本,如果有存货且未过期,直接这个节点给你闪电响应;如果过期了,就秒回源站拿最新版本,同时更新本地库存。
预热办法:上线前,用curl命令去提前访问,并把热数据灌满CDN节点,避免大批流量访问。
场景使用:
- 全球用户访问的网站,跨境电商
- 突发流量场景(新品发布,抽奖活动)
- 大文件分发(游戏更新包,4K视频)
- 需要隐藏源站IP的敏感业务
因为redis的存储是基于内存的,内存是有限的,而图片是基于磁盘的,磁盘是无限的。所以redis不能存储图片。
安全组是什么
安全组本质上是个虚拟防火墙,用访问控制列表 ACL技术精准控制流量进出,它通过五元组规则--源IP、源端口、目的IP、目的端口、协议类型来控制流量。
像快递分拣系统一样,只放行盖着正确邮戳的数据包,状态检测,记住你主动发起的连接,像智能门卫自动给返回流量开绿灯。
这三种情况必须配置安全组,第一Web服务器只开放80和443端口,把SSH端口锁进保险柜,第二数据库实例限制内网访问,给数据戴上防毒面具,只开放3306端口,第三堡垒机设置严格源IP白名单,Redis只开放6379端口。
口诀:入站严出站宽,最小权限保平安。
tomcat是什么
tomcat 是一个 web 服务器,用于处理 http 请求。
tomcat的本质就是个"服务员",专业点说就是开源的java servlet容器。简单来说,当你用浏览器访问网站时,tomcat就像餐厅传菜员,把java代码做的"菜品",翻译成你能看懂的HTML页面,它内置的JSP引擎会把页面布局,魔法符合变成正经的Java代码,Coyote连接器负责和浏览器对暗号"处理HTTP协议。
tomcat最牛的是它的类加载机制,每个应用独立的ClassLoader,就像给不同包间装隔离墙,内存泄露,不存在的,配合NIO非阻塞IO模型,每秒处理上千请求跟玩似的。
在server.xml的maxConnections属性中可以设置最大连接数,默认是200。
配合springboot变成微服务大佬们,tomcat的配置都在application.yml中。把reloadable属性设置为true,就可以实现热部署,修改代码后,不用重启服务器,就能看到效果。
tomcat 是Java写前端的好帮手。为啥? 因为它是一个web服务器,它可以处理http请求,返回html页面。
Eureka是什么
Eureka, Eureka就是个服务通讯录,自动更新号码本的秘书。
场景:微服务,停更了,不用了解。