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

最后,

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

相关推荐
litGrey10 分钟前
Maven国内镜像(四种)
java·数据库·maven
丶白泽36 分钟前
重修设计模式-结构型-桥接模式
java·设计模式·桥接模式
o独酌o42 分钟前
递归的‘浅’理解
java·开发语言
无问8171 小时前
数据结构-排序(冒泡,选择,插入,希尔,快排,归并,堆排)
java·数据结构·排序算法
customer081 小时前
【开源免费】基于SpringBoot+Vue.JS在线文档管理系统(JAVA毕业设计)
java·vue.js·spring boot·后端·开源
Flying_Fish_roe2 小时前
Spring Boot-版本兼容性问题
java·spring boot·后端
程序猿进阶2 小时前
如何在 Visual Studio Code 中反编译具有正确行号的 Java 类?
java·ide·vscode·算法·面试·职场和发展·架构
slandarer2 小时前
MATLAB | R2024b更新了哪些好玩的东西?
java·数据结构·matlab
Dola_Pan2 小时前
Linux文件IO(一)-open使用详解
java·linux·dubbo
摇滚侠2 小时前
spring cxf 常用注解
java·后端·spring