【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、集群脑裂、聚合统计、自动补全、拼音分词、地理坐标
[具体技术栈拆分]

最后,

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

相关推荐
激流丶13 分钟前
【Kafka 实战】如何解决Kafka Topic数量过多带来的性能问题?
java·大数据·kafka·topic
Themberfue16 分钟前
Java多线程详解⑤(全程干货!!!)线程安全问题 || 锁 || synchronized
java·开发语言·线程·多线程·synchronized·
让学习成为一种生活方式33 分钟前
R包下载太慢安装中止的解决策略-R语言003
java·数据库·r语言
晨曦_子画39 分钟前
编程语言之战:AI 之后的 Kotlin 与 Java
android·java·开发语言·人工智能·kotlin
南宫生1 小时前
贪心算法习题其三【力扣】【算法学习day.20】
java·数据结构·学习·算法·leetcode·贪心算法
Heavydrink1 小时前
HTTP动词与状态码
java
ktkiko111 小时前
Java中的远程方法调用——RPC详解
java·开发语言·rpc
计算机-秋大田2 小时前
基于Spring Boot的船舶监造系统的设计与实现,LW+源码+讲解
java·论文阅读·spring boot·后端·vue
神里大人2 小时前
idea、pycharm等软件的文件名红色怎么变绿色
java·pycharm·intellij-idea
小冉在学习2 小时前
day53 图论章节刷题Part05(并查集理论基础、寻找存在的路径)
java·算法·图论