
从零开始学习微服务
文章平均质量分 92
讲解原则:先讲核心,快速入门,循环学习,深入原理
视频课程:https://space.bilibili.com/9003795
适合掌握了单机项目基础,想要快速学习微服务的同学
wu@55555
软考高级系统架构师、Elastic认证工程师、CSDN后端领域博客专家、阿里云专家博主、华为云·云享专家博主、51CTO专家博主、掘金社区认证优秀作者
——致力于家乡互联网技术建设
展开
-
springcloud:对象存储组件MinIO(十六)
MinIO是一个使用go语言开发的,开源的对象存储组件,能够提供高性能、高可用的数据存储能力,支持分布式部署,提供数据加密、访问控制、版本控制、生命周期管理和事件通知等功能。它还支持高级特性,如分片上传和分片下载,以提高大文件的处理效率。Object Browser: 对象管理页面,minio中所有的桶和桶中的文件都可以在这个页面查看,这里的桶 bucket,大家可以简单的理解为文件夹- Buckets: 桶管理页面,用于管理桶相关的配置,比如桶的访问权限、桶的生命周期(桶中文件保留几天)原创 2023-08-05 23:26:00 · 1054 阅读 · 0 评论 -
springcloud:xxl-job的任务触发机制及调度过期策略
我们都会用xxl-job,但很少有人能够说清楚xxl-job的任务触发机制,面临任务阻塞、服务重启如何处理任务,本期我们就来一起看看xxl-job的任务触发机制。原创 2023-04-05 22:59:15 · 5455 阅读 · 0 评论 -
springcloud:快速上手定时任务框架xxl-job(十五)
xxl-job是分布式的任务调度平台,以作者名字命名,以其轻量、可视、易上手迅速在微服务框架下站稳脚跟。xxl-job分为服务端和客户端,客户端也就是我们的定时任务方法实现,也称为执行器,而服务端用来管理定时任务配置以及记录执行情况,也称为调度器至此,咱们针对定时任务框架xxl-job的讲解就结束了,自己搭建起来试下吧。原创 2023-04-01 23:59:41 · 3728 阅读 · 0 评论 -
dubbo:从零理解及搭建dubbo微服务框架(一)【附带源码】
首先大家要了解到底什么是dubbo,他是一个组件,还是一门语言?实际上dubbo一个服务框架,一开始是用java编写,后续产生了go语言版本。因为dubbo本身自带了RPC调用功能,也就是组间调用。所以也称dubbo为RPC服务框架dubbo官方文档Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。原创 2022-11-19 22:04:38 · 8754 阅读 · 11 评论 -
企业级GIT分支管控方案
GIT如今被广泛应用于企业开发项目托管,随着我们项目规模的扩大, 开发人员的数量也逐渐扩增,呈现出不同的开发等级,而不同的等级,也需要不同的权限管控。所以今天,我们来聊一聊,企业git的管控首先我们需要明确项目开发中需要涉及的权限等级:企业内部开发中,我们一般分成以下几种分支:根据以上描述,企业开发时,实际上长期存在的分支只有master和dev分支,其他分支都是多个且临时的以下操作基于gitee演示,其他git服务端类似,大家可自行摸索1、点击,进入分支管理页面2、点击3、选择基于哪个分支创建,输入分支名原创 2022-08-07 11:50:54 · 3540 阅读 · 0 评论 -
springcloud:RabbitMQ死信队列与延迟交换机实现(四)
死信队列是消息队列中非常重要的概念,同时我们需要业务场景中都需要延迟发送的概念,比如12306中的30分钟后未支付订单取消。那么本期,我们就来讲解死信队列,以及如何通过延迟交换机来实现延迟发送的需求。原创 2022-05-14 20:09:16 · 1010 阅读 · 0 评论 -
springcloud:springboot整合RabbitMQ|RabbitMQ保证消息可靠性(三)
2. RabbitMQ使用2.1 RabbitMQ的安装2.2 springboot整合RabbitMQ2.3 RabbitMQ保证消息可靠性2.4 RabbitMQ死信队列&延迟交换机原创 2022-05-14 16:27:03 · 955 阅读 · 2 评论 -
springcloud:RabbitMQ快速上手(二)
0. 引言上一章咱们讲解了什么是消息队列,已经为什么使用消息队列。并且阐述了我们入门选用RabbitMQ的原因。同时为了践行我们“先讲核心,快速入门,循环学习,深入原理”的原则,我们先将RabbitMQ核心操作讲解,让大家能够快速上手RabbitMQ,能够在工作中直接应用上,后续我们再来补讲其中的原理和常见面试题1. RabbitMQ介绍rabbitmq是实现了高级消息队列协议(AMQP)的开源消息代理软件,使用erlang语言编写。erlang语言是一种面向并发的编程语言,所以其并发量远远大于ja原创 2022-05-13 01:36:10 · 735 阅读 · 0 评论 -
RabbitMQ:什么是消息队列MQ?为什么使用消息队列MQ?入门MQ先学哪种?(一)
MQ(Message Queue):消息队列,如今在各类业务场景中已经被广泛使用,特别在并发量日益增涨的业务和微服务架构中,消息队列能够帮助我们解决很多传统方式所不能解决的问题。原创 2022-05-10 01:43:31 · 1818 阅读 · 0 评论 -
springcloud:微服务多模块的pom管理规范(十四)
在单机架构下,我们只需要将我们的依赖在pom中引入。但是过渡到微服务架构后,会涉及到多模块引用相同的依赖,多模版之间依赖的版本太过分散难以管理的问题。这就需要我们利用maven中依赖传递的特性,结合dependencyManagement标签来做好依赖的版本管理。下面我们就通过具体的案例来向大家演示如何在微服务架构中做好pom的管理规范。原创 2022-05-06 01:19:47 · 4386 阅读 · 0 评论 -
springcloud:maven快速上手 | maven常用标签(十三)
特出一章针对maven的入门简介,后续再讲讲微服务项目中如何对pom进行优雅的依赖管理。原创 2022-05-05 01:08:17 · 1917 阅读 · 0 评论 -
springcloud:gateway聚合swagger 下篇(十二)
0. 引言1.原创 2022-04-22 13:53:25 · 5391 阅读 · 2 评论 -
springcloud:接口文档自动生成器swagger详解 上篇(十一)
0. 引言在微服务的开发工作中,前后端的协同开发是必不可少的,随着服务数与接口数的增加,手写接口文档成为了一个苦活累活,很多程序员对此也很抵触。同时我们也需要有一个地方来统一管理这些接口。一群比较懒的程序员会想能不能有一个工具自动生成这个接口文档呢,那么另外一群更懒的程序员就开发出了接口文档自动生成工具swagger1. swagger介绍swagger本质是一个web服务,用于生成、描述、调用REST风格的接口。除了接口文档,swagger还支持在线测试。直接在界面上输入参数值即可测试现在实际生原创 2022-04-17 21:42:52 · 2826 阅读 · 1 评论 -
springcloud: 使用dynamic-datasource组件配置多数据源、一主多从、读写分离(十)
0. 引言原创 2022-04-14 00:42:18 · 5588 阅读 · 0 评论 -
springcloud:分布式事务组件seata详解(九)
0. 引言我们知道在springboot单机架构中,可以使用@Transactional注解来快速的部署事务但是在分布式架构下,@Transactional就无法发挥作用了。于是我们就需要一个能够支持分布式事务的组件来帮忙。于是乎,就引入了seata1. 什么是分布式事务在真正开始讲解seata之前,还是要给大家讲解清楚分布式事务。这样才能让大家真正体会到这个组件的作用。如果你已经掌握了这些概念,可以直接跳过这章。1.1 什么是事务?事务原本是用于单机架构,单数据库中的概念。表示要执行的一组操作原创 2022-04-11 01:47:02 · 3503 阅读 · 2 评论 -
springcloud:这么多个微服务,nacos配置文件只用写一遍(八)
0. 引言我们在前几期演示了如何从零搭建微服务项目,但是随着我们微服务的增加,一个麻烦的问题就会凸显出来:配置文件的管理。我们之前已经讲了可以利用nacos作为配置中心来管理微服务的配置文件。但是nacos本身的配置项如何管理呢?如果我们nacos的地址做了修改,就会导致我们需要到每个服务的配置文件中去修改nacos的地址,无疑这很不方便,也不利于管理。于是我们需要一个更加方便的管理方式。1. 思路首先要解决这个问题,我们要先了解到,springboot中的配置项实际上都是加载到Propertie原创 2022-04-10 18:12:29 · 3038 阅读 · 0 评论 -
springcloud:token生成组件JWT详解(七)
0. 引言无论是C端还是B端系统, 用户登陆都是基础必要的功能,我们需要记住其登陆状态,这样在登陆之后再次操作其他功能时就能直接操作。否则在未登陆或者长期未操作后访问其他页面或者功能,应该跳转到登陆页面要求用户登陆那么我们就需要记住用户的登陆状态,并且在用户每次访问功能时校验其登陆状态是否过期。在单机架构下,我们可以使用session来实现存储用户登陆信息,而在分布式系统中时,session就不能再满足我们的需求了。有可能我们第一次登陆时session存储在server1上,用户再发起第二个请求时,原创 2022-04-10 01:14:50 · 1670 阅读 · 5 评论 -
springcloud:微服务如何通信?组件通信组件:feign详解(六)
Feign是声明式的web service客户端,它让服务间的调用更加简单。使得整个调用变得像本地调用一样简单。Feign中包含了Hystrix和ribbon。所以feign支持接口负载均衡,以及接口的熔断、降级、限流等处理。并且支持Http请求和响应的压缩。好了,本期我们针对feign组件的讲解就到这里了,针对限流的配置我们并不推荐使用feign来实现,如果要做也是在fallback做处理,后续会详细讲解微服务中的限流措施。文中的测试代码也已经放到了git项目中,欢迎大家下载体验。原创 2022-04-04 03:42:17 · 3164 阅读 · 0 评论 -
springcloud:保姆式教程-从零搭建微服务(五)
0. 引言上一期我们介绍了nacos作为注册中心、配置中心的使用方法,如果对于gateway、nacos组件还不了解的可以看看往期文章:springcloud:什么是分布式微服务,如何学习微服务(一)springcloud:微服务涉及哪些技术、有哪些核心组件(二)springcloud:网关组件gateway详解(三)springcloud:注册中心、配置中心组件nacos详解(四)本期我们将手把手搭建一个微服务项目,来加深大家对于微服务框架的理解1. 项目简介项目开始搭建之前,我们先要明确原创 2022-04-03 23:24:18 · 4118 阅读 · 0 评论 -
springcloud:注册中心、配置中心组件nacos详解(四)
0. 引言前几期我们讲解了微服务的基本概念,并且详解了网关组件,还没看过前几期的可以先去学习前几期内容:springcloud:什么是分布式微服务,如何学习微服务(一)springcloud:微服务涉及哪些技术、有哪些核心组件(二)springcloud:网关组件gateway详解(三)而要想将网关组件完整使用起来,还需要一个注册中心来配合网关。那么本期我们就来学习一下注册中心组件nacos1. nacos简介nacos是阿里巴巴开源的动态服务发现、配置和服务管理组件。nacos的核心功能主要原创 2022-04-03 02:09:32 · 4520 阅读 · 3 评论 -
springcloud:网关组件gateway详解(三)
0. 引言前两期我们针对微服务的概念和基本情况做了介绍,那么本期我们就针对其中最重要的网关组件来进行详细讲解。如果还不清楚这些基础概念的,可以查看前两期文章:什么是分布式微服务,如何学习微服务(一)微服务涉及哪些技术、有哪些核心组件(二)1. Spring Cloud Gateway简介Spring Cloud Gateway是Spring Cloud推出的用来替代Zuul的网关产品,如同zuul综合了ribbon、hystrix的负载均衡、熔断、降级、限流能力,Spring Cloud Gate原创 2022-04-02 16:18:54 · 3788 阅读 · 1 评论 -
springcloud:微服务涉及哪些技术、有哪些核心组件(二)
0. 引言上一期我们介绍了什么是微服务,微服务的基础概念,那么本期我们来介绍一下微服务涉及的技术点以及所需要的组件1. 微服务涉及哪些技术1.1、基础技术首先每个微服务都可以看作是单机架构,所以最基础的就要要求你掌握单机架构的知识,单机架构最少量要求掌握的知识包括:javamysqlspringbootmybatis,mybatis-pluslinux如果你对于以上知识还没有掌握,那么可以参考我之前的学习路线文章:初级java学习路线1.2、部分中间件redisMQ(Roc原创 2022-04-02 01:16:27 · 10681 阅读 · 0 评论 -
springcloud:什么是分布式微服务,如何学习微服务(一)
0. 引言随着网络建设的丰富和技术发展的增强,传统的单机架构已经不能满足日益递增的用户需求。学习微服务开发也成了当今java后端开发必须掌握的技术。接下来的日子我们一起来学习微服务开发。在真正开始学习之前,我们要先理解几个基础概念1. 基础概念1.1 分布式想象一下,如果一台单机的服务最多只能支持400的访问量,但是因为用户量但,同时有600的访问量打进来那么,服务肯定支撑不住。但是如果我们的服务拓展到3个,那么600的访问量均匀的拓展到3个服务中,那么每个服务只用承担200访问量,对于一个服务来原创 2022-04-01 01:37:09 · 4311 阅读 · 0 评论