从0到1的互联网系统架构设计
走上正传架构师之路
共15篇 | Snakevil
¥51.00 179人订阅
新人大礼包
小程序订阅 省¥12
专栏介绍
适用人群
从事 Java开发对微服务架构 、Spring Boot 、数据治理感兴趣的开发人员。 该专栏重点讲述在微服务架构中如何解决数据的问题。让你具备使用 Spring Boot 开发微服务项目的能力。
订阅说明
1.本专栏为图文专栏,共计18篇,现已更新完毕
2.专栏定期更新,更新频次为每周一篇
3.专栏一经订阅永久阅读,可与作者留言互动
4.本专栏为虚拟产品,一经订阅,概不退款,请慎重订购
5.专栏阅读过程中,如有任何问题请联系51CTO小助手(微信:cto51boke/QQ:3591348659)
学习本专栏您能收获什么
1.使用Spring Boot开发微服务架构
2.MongoDB数据库的搭建
3.微服务架构下的数据治理,数据同步、实时变更
4.微服务架构实践的经验和教训
专栏目录
微服务架构微服务的诞生并非偶然,它是在互联网高速发展,技术日新月异的变化以及传统架构无法适应快速变化等多重因素的推动下诞生的产物。
这篇文章我们就来了解下在微服务架构下如何进行技术选型
在我们开发的项目中,几乎每个项目都需要对外提供接口交互,也就意味着我们开发过的项目中,绝大多数都是 Web 相关项目,Spring Boot 对 Web 开发支持度非常完善,几乎涉及 Web 开发的方方面面。
Spring Boot 更推荐使用 Jpa 的形式去操作数据库,其中 Spring Boot 依赖 Hibernate 实现了 Spring Data JPA ;而 Mybatis 官网主动对 Spring Boot 进行了集成,因此使用 Spring Boot 非常容易、简单操作关系数据库。
1-4 Spring Boot 和 Nosql 数据库的使用
NoSQL 最常见的解释是 “non-relational”,“Not Only SQL” 也被很多人接受。 是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL 的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。
微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行业巨头、开源社区等都开始了微服务的实践。系统微服务化后,一个看似简单的功能,内部可能需要调用多个服务并操作多个数据库实现,服务调用的分布式事务问题变得非常突出,所以在采用微服务架构时需要考虑分布式事务的解决方案。
Spring Boot Starters 是一个依赖描述符的集合,你可以将它包含进项目中,这样添加依赖就非常方便。你可以获取所有 Spring 及相关技术的一站式服务,而不需要翻阅示例代码,拷贝粘贴大量的依赖描述符。例如,如果你想使用 Spring 和 JPA 进行数据库访问,只需要在项目中包含`spring-boot-starter-data-jpa`依赖,然后你就可以开始了。所以我们可以看出 Spring Boot 通过不同的 Starter 来支持各种中间件的使用。
MongoDB特点、搭建方案介绍MongoDB如今是最流行的Nosql数据库,被广泛应用于各行各业中,很多创业公司数据库选型就直接使用了MongoDB,但对于大部分公司,使用MongoDB的场景是做大规模数据查询和离线分析。MongoDB一经推出就受到广大社区的热爱,可以说是对程序员最友好的一种数据库,今天我们来了解它的特性。MongoDB简介MongoDB(来自于英文单词“Humongous”,
Spring Boot 操作数据库的各种 Starters 都继承于 Spring Data, Spring Data 是 Spring 为了简化数据库操作而封装的一个组件包,提供了操作多种数据库的支持,其api简洁,调用方便。
2-3 Spring Boot 和 MongoDB 多数据源,混合数据源的使用
多数据源的使用思路,先封装不同的数据源,然后再将不同的数据注入到对应的 Repository 层中,业务想使用哪个数据源的操作,就把对应的 Repository 层注入到业务中使用即可,我们先来看 MongoDB 多数据源的使用情况。
在互联网企业中往往数据量庞大。分页展示就成为了一种非常好的技术方案,一方面可以减少系统压力,一方面也方便用户去浏览信息。Spirng Boot 结合 MongoDB 有多种分页实现方案,下面我们来分别介绍。
2-5 MongoDB 分布式计算 Aggregate VS Mapreduce
MapReduce 架构是用来解决大数据量的分布式计算问题,然后把计算后的结果放入文件系统或者数据库中。
在介绍数据分析之前,我们先详解了解下什么是联机事务处理 OLTP 和 联机分析处理 OLAP,以及它们之间的区别。
对比主流的数据同步方案我们得知,canal 在性能、稳定性、灵活度等方面表现突出,经过大厂的验证并开源可控,是我们的首选。同时 canal 只负责对 Binlog 监听、传输和解析,数据解析后的操作需要我们自己写程序来完成。本节内容给大家介绍 canal 的使用。
3-3 使用 Canal 将业务数据从 Mysql 同步到 MongoDB
今天我们分为两部分来学习 canal 的数据同步,第一部分是通过监听 canal 服务端,实时获取被改动后的数据;第二部分,对变更后的数据进行存储到数据库。
在实际的使用中,我们推荐准实时的方式对数据进行清洗和处理,结合上一节内容我们可以借用反射的原理来解决这个问题,当数据同步后,同步去检查是否有根据此表进行数据清洗的流程,如果有在数据同步完成之后直接对数据进行清洗整理。
大部分企业都有大量遗留的应用系统,因此对需要更快更好地满足业务需求成为迫切任务时,大部分情况下企业不会全新构建一个完整的应用,通常情况下是企业对已有应用进行重构或希望能尽量重用已有代码。
采用微服务架构意味着以更复杂的运维环境为代价,微服务架构组建复杂度远超传统项目,架构体系会对微服务的部署、监控有了更高的要求。就微服务应用平台本身来说,并不依赖 DevOps 和容器云,开发好的部署包可以运行在物理机、虚拟机或者是容器中。
使用传统的整体式架构(Monolithic Architecture)应用开发系统,如 CRM、ERP 等大型应用,随着新需求的不断增加,企业更新和修复大型整体式应用变得越来越困难;随着移动互联网的发展,企业被迫将其应用迁移至现代化 UI 界面架构以便能兼容移动设备,这要求企业能实现应用功能的快速上线。
支付成功
加入作者互动群
和作者近距离提问 &交流 &互动
扫描二维码 回复 ZL004 + 昵称 入群