【1.1】Java微服务:初识微服务

✅作者简介:大家好,我是 Meteors., 向往着更加简洁高效的代码写法与编程方式,持续分享Java技术内容。

🍎个人主页:Meteors.的博客

💞当前专栏: 微服务

✨特色专栏: 知识分享

🥭本文内容:【1.1】Java微服务:初识微服务(该系列持续更新)

📚 **ps*** : 阅读这篇文章如果有问题或者疑惑,欢迎各位在评论区提出!

----------------------------------------------------- 目录 ----------------------------------------------------------

目录

一、传统单体架构/分布式架构/微服务架构概念/对比

[1. 单体架构](#1. 单体架构)

[2. 分布式架构](#2. 分布式架构)

[3. 微服务架构](#3. 微服务架构)

二、一些常见微服务架构的实现方式

[1. Dubbo](#1. Dubbo)

[2. Spring Cloud](#2. Spring Cloud)

[3. Spring Cloud Alibaba](#3. Spring Cloud Alibaba)

三、微服务技术栈

[1. 技术栈总览(图)](#1. 技术栈总览(图))

[2. 具体技术拆分](#2. 具体技术拆分)


--------------------------------------------------------------------------------------------------------------------------------

一、传统单体架构/分布式架构/微服务架构概念/对比

1. 单体架构

概念:(传统架构)将业务的所有功能集中在一个项目中开发,打成一个包部署

优点:

  • 架构简单
  • 部署成本低

缺点

  • 耦合度高

2. 分布式架构

**概念:**根据业务功能对系统进行拆分,每个业务模块独立项目开发。称为一个服务

优点:

  • 降低服务耦合
  • 有利于服务升级拓展

缺点:

  • 难度大,适合大型互联网

3. 微服务架构

**概念:**一种良好的分布式架构方案

优点:

  • 拆分粒度更小
  • 服务更独立
  • 耦合度更低

缺点:

  • 架构非常复杂
  • 运维、监控、部署难度提高

二、一些常见微服务架构的实现方式

1. Dubbo

**注册中心:**Zookeeper、Redis、Multicast等

远程服务调用:基于RPC(Remote Procedure Call)实现远程服务调用
**配置中心:**支持通过配置中心(如Zookeeper)来管理服务的配置信息
**服务监控:**通过Dubbo Admin或第三方组件(如Prometheus、Grafana)进行可视化监控。
**服务保护:**Dubbo支持服务级别的容错和熔断机制,例如超时控制、重试、限流等,以增强服务的稳定性和可靠性。

2. Spring Cloud

**注册中心:**使用Eureka作为默认的注册中心,也支持Consul、Zookeeper等
**远程服务调用:**通过RestTemplate、Feign等实现了远程服务调用,支持多种HTTP协议和负载均衡策略(如Ribbon)。
**配置中心:**提供了集中式的配置管理,支持将应用的配置信息存储在Git、SVN等仓库中,并可动态刷新配置信息。
**服务网关:**Spring Cloud Gateway或Zuul可以作为服务网关
**服务监控:**Spring Boot Admin可以用于监控和管理Spring Boot应用,包括对应用的健康状况、性能指标的监控和管理。
**服务保护:**Hystrix、Resilience4j等组件

3. Spring Cloud Alibaba

**注册中心:**以Nacos作为默认的注册中心
**远程服务调用:**Spring Cloud Alibaba支持通过RestTemplate、Feign等方式进行远程服务调用,支持多种负载均衡策略(如Ribbon)。
**配置中心:**Spring Cloud Alibaba使用Nacos作为配置中心,支持集中管理和动态刷新应用的配置信息。
**服务网关:**Spring Cloud Alibaba提供了Gateway(类似于Spring Cloud Gateway)和Dubbo Gateway两种服务网关,用于流量控制、路由等功能。
**服务监控:**Spring Cloud Alibaba提供了Sentinel用于服务的实时监控、熔断降级、流量控制等,支持对服务的可视化监控和配置。
**服务保护:**基于Sentinel提供了服务保护的能力

三、微服务技术栈

1. 技术栈总览(图)

(由于重新仿制一张太麻烦,直接截取了黑马视频技术栈图)

2. 具体技术拆分

技术栈 包含内容
微服务治理 注册发现、远程调用、负载均衡、配置管理、网关路由、系统
异步通信技术 MQ消息模型、SpringAMQP、消息堆积问题、消息可靠性、仲裁问题、延迟队列、镜像集群、数据持久化
缓存技术 缓存穿透/雪崩、SpringDataRedis、Redis主从复制、OpenResty、缓存数据同步、Nginx本地缓存、Redis持久化、多几缓存分层、Redis分片集群、Lua脚本、Redis数据结构
DevOps Dockerfile、DockerCompose、GrayLog、Jenkins、SkyWalking、Docker使用、Kubernetes
搜索技术 DSL语句、ES集群、RestAPI、集群脑裂、聚合统计、自动补全、拼音分词、地理坐标
[具体技术栈拆分]

最后,

后续内容会陆续更新,希望文章对你有所帮助..!

相关推荐
前行的小黑炭7 分钟前
设计模式:为什么使用模板设计模式(不相同的步骤进行抽取,使用不同的子类实现)减少重复代码,让代码更好维护。
android·java·kotlin
Java技术小馆12 分钟前
如何设计一个本地缓存
java·面试·架构
XuanXu1 小时前
Java AQS原理以及应用
java
风象南4 小时前
SpringBoot中6种自定义starter开发方法
java·spring boot·后端
mghio13 小时前
Dubbo 中的集群容错
java·微服务·dubbo
咖啡教室18 小时前
java日常开发笔记和开发问题记录
java
咖啡教室18 小时前
java练习项目记录笔记
java
鱼樱前端18 小时前
maven的基础安装和使用--mac/window版本
java·后端
RainbowSea19 小时前
6. RabbitMQ 死信队列的详细操作编写
java·消息队列·rabbitmq