共计 32 篇文章

第15课:Spring Cloud 实例详解——基础框架搭建(二)

接着上一篇,我们继续来搭建基础框架,本文我们将搭建客户端基础模块,集成熔断器,集成持久层框架 Mybatis。 在上一篇我们已经构建好了配置中心,因此,此后搭建的所有工程都是将配置文件放到 Git 上(点击这里获取本课程配置文件的 Git 仓库地址),通过配置中心将配置文件从 Git 仓库上拉取下来。 客户端基础模块 为了便于应用的可读性,我们在顶级工程下,先创建一个 packaging 为 pom 的工程,命名为 ...

第14课:Spring Cloud 实例详解——基础框架搭建(一)

通过前面基础组件的学习,我们已经可以利用这些组件搭建一个比较完整的微服务架构,为了巩固我们前面学习的知识,从本文开始,将以一个实际的案例带领大家构建一个完整的微服务架构(本文代码已放在 Github 上)。 需求分析 本文要实现的一个产品是新闻门户网站,首先我们需要对其进行需求分析,本新闻门户网站包括的功能大概有以下几个: 注册登录 新闻列表 用户评论 产品设计 根据需求分析,就可以进行产品设计,主要是原型设计,我们先看看大致的原型设计图。 首页原型设计图 文章列表页原型设计图 文章详情页原型设计图 个人中心页原型设计图 用户注册页原型设计图 用户登录页原型设计图 ...

第13课:分布式事务

首先我们应知道,事务是为了保证数据的一致性而产生的。那么分布式事务,顾名思义,就是我们要保证分布在不同数据库、不同服务器、不同应用之间的数据一致性。 为什么需要分布式事务? 最传统的架构是单一架构,数据是存放在一个数据库上的,采用数据库的事务就能满足我们的要求。随着业务的不断扩张,数据的不断增加,单一数据库已经到达了一个瓶颈,因此我们需要对数据库进行分库分表。为了保证数据的一致性,可能需要不同的数据库之间的数据要么同时成功,要么同时失败,否则可能导致产生一些脏数据,也可能滋生 Bug。 在这种情况下,分布式事务思想应运而生。 应用场景 分布式事务的应用场景很广,我也无法一一举例, ...

第12课:分布式锁

本达人课讲述的是基于 Spring Cloud 的分布式架构,那么也带来了线程安全问题,比如一个商城系统,下单过程可能由不同的微服务协作完成,在高并发的情况下如果不加锁就会有问题,而传统的加锁方式只针对单一架构,对于分布式架构是不适合的,这时就需要用到分布式锁。 实现分布式锁的方式有很多,本文结合我的实际项目和目前的技术趋势,通过实例实现几种较为流行的分布式锁方案,最后会对不同的方案进行比较。 基于 Redis 的分布式锁 利用 SETNX 和 SETEX 基本命令主要有: SETNX(SET If ...

第11课:服务链路追踪

在前面的课程中,我们已经学习了使用 Actuator 监控微服务,使用 Hystrix 监控 Hystrix Command。本文,我们来研究微服务链路追踪。 我们知道,微服务之间通过网络进行通信。在我们提供服务的同时,我们不能保证网络一定是畅通的,相反,网络是很脆弱的,网络资源也有限。因此,我们有必要追踪每个网络请求,了解其经过了哪些微服务,延迟多少,每个请求所耗费的时间等。只有这样,我们才能更好的分析系统拼劲,解决系统问题。 ...