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

最后,

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

相关推荐
nice_lcj5201 小时前
ThreadLocal 入门:它是怎么隔离数据的、为什么会导致内存泄漏
java·开发语言·后端·面试·并发编程·内存泄漏·threadlocal
秋天的怀念_David2 小时前
算法一千零一夜 · 第二十六夜 协议的母语
java·spring boot·算法
灿飞2 小时前
Kotlin与Java虚拟机八:控制流与 when:卫语句、上下文相关解析与穷尽性
java·kotlin
文丑颜不良啊2 小时前
LeetCode2021~2040题目解析
java·leetcode
bksczm3 小时前
InnoDB 行格式详解:DYNAMIC / COMPACT / COMPRESSED / REDUNDANT
java·开发语言·数据库
程序员吕洞宾3 小时前
开源多维表格SmartTable v1.6.10 —— 用户名登录、数据评论及@人、表单分享二维码、性能优化、部署及升级优化
spring·性能优化·开源
liangbo73 小时前
Spring系列03:Bean 的三种注册方式
java·spring
余槐i3 小时前
MySQL 8.0 联合索引走错:为什么加了索引查询反而从 200ms 变成 8s
java·spring boot·mysql·docker·性能优化
SL_staff3 小时前
制造业订单交付总在最后一刻爆雷?用结构化计划模板打通跨系统协同断点
java·开源·全栈
做科研的周师兄3 小时前
【R语言实战】MixSIAR 氢氧同位素水源解析全流程:从混合空间校验到贝叶斯 MCMC 收敛诊断(后附完整代码)
java·大数据·开发语言