3.部署篇(工具部署)
本文介绍EDAS在Kubernetes上围绕SpringCloud应用部署的完整工具体系,涵盖IDE、Maven插件、CI/CD、Terraform和CLI等多种部署方式,覆盖开发、运维与DevOps场景,助力高效安全交付。
MongoDB应用场景
MongoDB适用于社交、游戏、物流、物联网及视频直播等场景,擅长处理数据量大、读写频繁、事务性要求不高的应用。其灵活的文档模型和高效查询能力,支持用户信息、日志、订单状态等复杂数据的存储与访问。
2.持久化FileTxnLog
本文深入分析Zookeeper持久化机制的源码实现,重点解析`TxnLog`与`FileTxnLog`类。涵盖事务日志结构、文件格式、核心方法如append、commit、truncate及日志迭代器实现,揭示数据如何通过日志追加、校验、刷盘与截断保障持久化可靠性,为理解Zookeeper数据存储奠定基础。(238字)
MongoDB的特点
MongoDB具备高性能、高可用、高扩展特性,支持丰富查询语言。其嵌入式数据模型减少I/O,多存储引擎适应多样场景,副本集保障数据冗余与自动故障转移,分片实现水平扩展,满足海量数据存储与高效访问需求。
微服务原理篇(Canal-Redis)
本课程讲解ES索引同步方案,重点掌握Canal+MQ实现MySQL到ES的数据同步机制。学习内容包括:Canal伪装为MySQL slave原理、基于binlog的日志解析、数据同步流程测试、Redis双写一致性、分布式锁应用、缓存三剑客问题及解决方案、Redis持久化与集群模式、过期淘汰策略等核心知识点,全面提升数据同步与缓存架构能力。(238字)
MongoDB什么时候用
适用于无需复杂事务、需快速迭代、高并发读写、海量数据存储(TB至PB级)、易扩展、高可用(99.999%)、支持地理与文本查询的应用场景。满足1项即可考虑MongoDB,2项以上强烈推荐。
SpringCloud工程部署启动
提供两种工程搭建方式:一键导入完整项目或从零创建。包含user-service与order-service模块,涵盖Maven配置、YAML文件、MyBatis映射及业务代码结构,助力快速部署微服务项目。
SpringCloud概述
Spring Cloud应微服务整合需求而生,提供一站式解决方案。其特点为约定大于配置、组件丰富、开箱即用,支持云原生架构。版本以地铁站命名,避免与子项目冲突。Spring Cloud Alibaba融合阿里优秀中间件如Nacos、Sentinel、Seata等,弥补Netflix停更短板,成为主流选择。本节介绍其演进、生态及选型依据,为后续实战奠基。(238字)
Eureka服务注册与发现
本章介绍SpringCloud中Eureka注册中心的搭建与使用,完成eureka-server、user-service、order-service的集成部署,实现服务注册与发现。虽Eureka已被逐步替代,但其功能实现为后续Nacos替换奠定基础。
Ribbon负载均衡
本文深入解析Spring Cloud中Ribbon实现客户端负载均衡的原理,详解@LoadBalanced注解的作用机制,涵盖负载均衡分类、常见算法、Ribbon源码流程及自定义策略配置,并对比服务端方案,引导读者全面理解微服务负载均衡技术选型与实践。
认识SpringSecurity
SpringSecurity是Java领域主流的权限框架,核心功能包括认证、鉴权与安全防护。支持表单、OAuth2、JWT等多种认证方式,提供URL级、方法级鉴权及RBAC模型,集成CSRF等攻击防御机制,基于过滤器链实现灵活的安全控制。
ES分布式搜索引擎入门
本课程介绍Elasticsearch快速入门,涵盖倒排索引原理、IK分词器使用与词典扩展,以及Java Client实现文档增删改查、批量导入、查询、排序分页和布尔查询等核心操作,帮助学员掌握高性能全文搜索技术。
容器引擎Docker
Docker解决开发、测试、生产环境不一致及依赖冲突问题,通过镜像打包应用与依赖,实现跨环境无缝迁移。容器隔离运行,秒级启动,体积小,性能高,支持多环境统一部署,提升交付效率与系统稳定性。
【Redis进阶】不止是缓存!Redis的5种核心数据结构与实战场景全解析
本文深入浅出地解析了Redis五大核心数据结构:String、Hash、List、Set和ZSet,结合图解与实战场景,涵盖缓存、计数器、分布式锁、购物车、消息队列、排行榜等典型应用,助你摆脱“只会SET/GET”的困境,真正发挥Redis的高性能潜力。
初始化Map大小并非用多少指定多少
初始化HashMap时,指定容量并非直接生效,而是会调整为最近的2的幂次(如1变2,7变8)。为避免扩容开销,建议使用Guava工具Maps.newHashMapWithExpectedSize(),或手动按公式:容量 = 预期元素数 / 0.75 + 1 设置。
FilterChainProxy
`FilterChainProxy` 是 Spring Security 的核心过滤器链代理,通过 `SecurityFilterChain` 管理多个安全过滤器。请求到来时,先经防火墙封装,再匹配适用的过滤器链,最终由虚拟链依次执行。十五个安全过滤器由此协同工作,保障应用安全。
浏览器的正常请求和回应
预检通过后,浏览器每次CORS请求自动携带Origin头,服务器响应则必含Access-Control-Allow-Origin字段,表明允许的源,实现跨域资源共享,确保通信安全。
OAuth2.0使用场景
A网站需打印用户存于B网站的照片时,传统方式需共享账号密码,而OAuth2只需获取临时通行令牌,按需授权资源访问权限,更安全灵活。注意:OAuth2侧重服务间资源授权,不同于单点登录。Spring Security集成OAuth2可实现资源共享与单点登录。
盲注和二阶 SQL 注入
SQL盲注利用延迟等间接方式探测数据库操作,即使无直接数据回显。攻击者通过sleep()或耗时子查询引发响应延迟,判断语句执行情况,进而窃取或篡改数据。二阶SQL注入则利用存储后二次使用的恶意数据,隐蔽性强,需结合参数化查询与严格输入验证防范。
成功的 SQL 注入攻击的后果
SQL注入可导致多种安全威胁:绕过身份验证、窃取敏感信息、篡改或删除数据、破坏网页内容,甚至执行远程系统命令。利用如xp_cmdshell等存储过程,攻击者还能控制数据库服务器操作系统,造成严重危害。
MyBatis常见配置
MyBatis配置优先级:方法参数 > resource/url > properties体内。支持多环境配置,通过environments指定,默认使用development。事务管理支持JDBC和MANAGED,结合Spring时由容器管理。常用属性包括缓存、延迟加载、执行器类型等,灵活适配不同场景。
SpringCloud概述
Spring Cloud是微服务架构的综合解决方案,由Spring团队推出,具备约定大于配置、组件丰富、开箱即用等特点。为解决Netflix组件停更问题,阿里推出Spring Cloud Alibaba,集成Nacos、Sentinel、Seata等高性能中间件,成为主流技术栈选择。
RabbitMQ集群部署
本文介绍RabbitMQ集群的部署与高可用方案,涵盖普通模式、镜像模式及仲裁队列。通过Docker搭建三节点集群,配置Erlang Cookie与节点发现机制,实现队列数据共享。针对单点故障问题,引入镜像队列(exactly、all、nodes模式)实现主从复制,并验证高可用性。最后重点介绍RabbitMQ 3.8+推荐的仲裁队列,具备自动故障转移、更强一致性等优势,是生产环境首选方案。(239字)
MongoDB相关概念
MongoDB是一款高性能、无模式的文档型NoSQL数据库,适用于高并发、海量数据、高扩展性场景。支持BSON格式,灵活存储复杂数据,广泛应用于社交、游戏、物联网等领域,尤其适合无需事务、频繁读写、快速迭代的应用。
MongoDB单机部署
本文介绍MongoDB在Windows和Linux系统的安装启动方法,包括下载地址、版本选择(稳定版/开发版)、解压配置、命令行与配置文件启动方式,以及常见问题解决。同时涵盖Shell连接、图形化工具Compass的使用,并提供环境变量设置、日志与数据目录配置等详细步骤,确保单机部署顺利进行。
领域模型图(数据架构/ER图)
数据架构的核心输出是ER图,通过四色原型法进行领域建模:红色MI表示时标事件,绿色PPT为业务实体,黄色Role为参与角色,蓝色DESC提供描述属性。以风控系统为例,从业务流程中提炼MI,构建PPT实体,补充Role与DESC,最终提取出实体、关系及约束,形成简洁清晰的ER图,支撑数据模型设计。
容器化部署引擎Docker
Docker简介:解决项目依赖复杂、环境不一致等问题,通过镜像打包应用及依赖,实现跨平台运行;利用容器隔离运行,秒级启动,资源占用少。相比虚拟机更轻量,支持高密度部署,提升开发、测试、生产环境一致性与交付效率。(238字)
开发环境搭建
工欲善其事,必先利其器。学习前请确保电脑内存16G以上(建议32G),推荐使用便携显示器分屏开发以提升效率。下载并配置虚拟机(IP:192.168.101.68)、安装VMware、FinalShell远程连接,导入CentOS7虚拟机并启动Docker、MySQL等服务。IDEA中配置JDK11、Maven(3.8.6)及本地仓库,设置编码与自动导包。安装Git并配置账号信息。通过Gitee Fork黑马商城项目,克隆到本地,创建hmall数据库并导入SQL脚本。前端使用nginx部署,启动后访问http://localhost:18080登录测试。
2.部署篇(开发部署)
本文介绍如何将SpringCloud应用部署至云端Kubernetes集群。通过EDAS导入ACK集群,初始化应用环境,利用IDE插件快速上传war/jar包部署,提升开发效率。后续将讲解运维视角下的自动化发布流程。(236字)
安装ES、Kibana、IK
本文介绍如何通过Docker部署单节点Elasticsearch与Kibana,并配置IK分词器。涵盖网络创建、镜像加载、容器运行、数据卷挂载等步骤,实现ES与Kibana互联;通过Kibana的DevTools操作ES;离线安装IK分词器并配置扩展词典与停用词典,提升中文分词效果;最后处理常见启动报错问题,确保服务正常运行。(238字)
数据库
数据库领域前沿技术分享与交流