【1.1】Java微服务:初识微服务
✅作者简介:大家好,我是 Meteors., 向往着更加简洁高效的代码写法与编程方式,持续分享Java技术内容。
🍎个人主页:Meteors.的博客
💞当前专栏: 微服务
✨特色专栏: 知识分享
🥭本文内容:【1.1】Java微服务:初识微服务(该系列持续更新)
📚 **ps*** : 阅读这篇文章如果有问题或者疑惑,欢迎各位在评论区提出!
----------------------------------------------------- 目录 ----------------------------------------------------------
目录
一、传统单体架构/分布式架构/微服务架构概念/对比
1. 单体架构
2. 分布式架构
3. 微服务架构
二、一些常见微服务架构的实现方式
1. Dubbo
2. Spring Cloud
3. Spring Cloud Alibaba
三、微服务技术栈
1. 技术栈总览(图)
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、集群脑裂、聚合统计、自动补全、拼音分词、地理坐标 |
最后,
后续内容会陆续更新,希望文章对你有所帮助..!
相关文章:
【1.1】Java微服务:初识微服务
✅作者简介:大家好,我是 Meteors., 向往着更加简洁高效的代码写法与编程方式,持续分享Java技术内容。 🍎个人主页:Meteors.的博客 💞当前专栏: 微服务 ✨特色专栏: 知识分享 &#x…...
数据结构--串、数组、广义表
这里写目录标题 串定义案例引用串的类型定义以及存储结构抽象类型定义存储结构(顺序表较为常用)顺序存储结构链式存储结构 串的模式匹配算法(查找主串中是否有某个字串)BF算法KMP算法设计思想对字串的回溯进行了优化代码对next【j】进行优化 数组类型一维…...
白银挑战——链表高频面试算法题
算法通关村第一关–链表白银挑战笔记 开始时间:2023年7月18日14:39:36 链表 Java中定义一个链表 class ListNode {public int val;public ListNode next;ListNode(int x) {val x;next null;}}1、四种方法解决两个链表第一个公共子节点 解释一下什么是公共节点 如…...
海外腾讯云账号:腾讯云高性能计算平台 THPC
高性能计算平台(TencentCloud High Performance Computing,THPC)是一款腾讯云自研的高性能计算资源管理服务,集成腾讯云上的计算、存储、网络等产品资源,并整合 HPC 专用作业管理调度、集群管理等软件,向用…...
eclipse 最新版没有navigator视图如何解决
使用project exploere视图可以显示类似navigator视图 1.显示project exploere视图 window---->show view --->project exploere 2.project exploere视图转换为类似navigator视图 第一步:点击视图右上角三个点或者倒三角,点击fiters and custom…...
Zynq-Linux移植学习笔记之62- PL挂载复旦微flash
1、背景介绍 现在为了全国产化需要,之前所有的进口flash全部要换成国产flash 2、复旦微flash型号 其中EFM25QU256和EFM25QL256对标winbond的w25q256 nor flash 3、FPGA设置 复旦微flash只支持单线模式,当使用PL侧的IP核访问时,需要设置模式…...
SpringBoot复习:(2)Tomcat容器是怎么启动的?
SpringApplication的run方法包含如下代码: 其中调用的refreshContext代码如下: 其中调用的refresh方法片段如下: 其中调用的refresh方法代码如下: 其中调用的super.refresh方法代码如下: public void refresh() th…...
1 MobileHomeTopicApplication
目录 1 OrderApplication 1.1 引用文件 1.2 #region 字段 1.3 #region 属性 OrderApplication 引用文件using System; using...
mpi4py包安装报错
报错情况 #include <mpi.h>^~~~~~~compilation terminated.failure.removing: _configtest.c _configtest.oerror: Cannot compile MPI programs. Check your configuration!!![end of output]note: This error originates from a subprocess, and is likely not a probl…...
C语言进阶-1
1、数据类型 1.1、基本数据类型 数据类型分2类:基本数据类型复合类型 基本类型:char short int long float double 复合类型:数组 结构体 共用体 类(C语言没有类,C有) 1.1.1、内存占用与sizeof运算符 数据…...
Python如何正确解决爬虫过程中的Cookie失效问题?
前言 本文是该专栏的第54篇,后面会持续分享python爬虫干货知识,记得关注。 在python爬虫项目中,Cookie是一种用于在客户端和服务器之间传递信息的技术。在爬取某些网站的时候,可能会需要登录才能正常获取到数据,这个时候就需要用到cookie来解决。通常情况下,需要将cooki…...
维护自己电脑浅析
作为一名计算机用户,维护自己的电脑是非常重要的,这可以保证电脑的正常运行、数据的安全、提高电脑的性能等。在本文中,我将分享一些我个人维护电脑的经验和技巧。 定期清理电脑 电脑在使用过程中会产生大量的临时文件、垃圾文件、缓存文件等…...
svo2论文
论文题目 SVO: Semidirect Visual Odometry for Monocular and Multicamera Systems 内容 1) 具有最小特征漂移的长特征轨迹; 2) 图像平面中的大量均匀分布的特征; 3)新特征与旧地标的可靠关联(即环路闭…...
【GoLang】MAC安装Go语言环境
小试牛刀 首先安装VScode软件 或者pycharmmac安装brew软件 brew install go 报了一个错误 不提供这个支持 重新brew install go 之后又重新brew reinstall go 使用go version 可以看到go 的版本 使用go env 可以看到go安装后的配置 配置一个环境变量 vim ~/.zshrc, # bre…...
epoll服务器创建
驱动 #include <linux/init.h> #include <linux/module.h> #include <linux/fs.h> #include <linux/io.h> #include <linux/device.h> #include <linux/uaccess.h> #include <linux/poll.h> unsigned int major; char kbuf[128]{0}…...
jdk11环境 提示“因为 accessExternalDTD 属性设置的限制导致不允许 ‘http‘ 访问“bug
在运行mybatis源码的时候,提示一下错误: Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession. ### Cause: org.apache.ibatis.builder.BuilderException: Error creating docum…...
Android Studio 的版本控制Git
Android Studio 的版本控制Git。 Git 是最流行的版本控制工具,本文介绍其在安卓开发环境Android Studio下的使用。 本文参考链接是:https://learntodroid.com/how-to-use-git-and-github-in-android-studio/ 一:Android Studio 中设置Git …...
一个 SpringBoot 项目能处理多少请求
首先,这个问题有坑,因为 spring boot 不处理请求,只是把现有的开源组件打包后进行了版本适配、预定义了一些开源组件的配置通过代码的方式进行自动装配进行简化开发。这是 spring boot 的价值。 使用 spring boot 进行开发相对于之前写配置文…...
Python中的r字符串前缀及其用法详解
Python中的r字符串前缀及其用法详解 1. 介绍 1.1 什么是r字符串前缀 在Python中,r字符串前缀是一种特殊的字符串前缀,用于表示原始字符串。当一个字符串以r前缀开始时,它将被视为原始字符串,其中的转义字符将被忽略。 1.2 r字…...
LabVIEW实现三相异步电机磁通模型
LabVIEW实现三相异步电机磁通模型 三相异步电动机由于经济和出色的机电坚固性而广泛用于工业化应用。这台机器的设计和驱动非常简单,但在控制扭矩和速度方面,它隐藏了相当大的功能复杂性。通过数学建模,可以理解机器动力学。 基于微分方程的…...
如何快速集成gh_mirrors/ca/card到React/Vue/Angular:打造专业信用卡表单的完整指南
如何快速集成gh_mirrors/ca/card到React/Vue/Angular:打造专业信用卡表单的完整指南 【免费下载链接】card :credit_card: make your credit card form better in one line of code 项目地址: https://gitcode.com/gh_mirrors/ca/card gh_mirrors/ca/card是一…...
OpenClaw+Qwen3.5-9B:技术文档翻译与本地化自动化
OpenClawQwen3.5-9B:技术文档翻译与本地化自动化 1. 为什么选择这个技术组合? 去年参与一个开源项目时,我遇到了文档本地化的难题。项目文档有300多页Markdown文件,需要翻译成5种语言。传统翻译工具要么破坏格式,要么…...
仅用200行代码重构内存管理模块:某AI平台将GPU服务器月成本压至$1,840的独家策略(限时开源)
第一章:Python 智能体内存管理策略Python 的内存管理并非由开发者直接操控,而是由解释器内置的智能体协同完成——包括引用计数、循环垃圾回收器(GC)和内存池机制三者构成动态平衡系统。这一“智能体”在运行时持续感知对象生命周…...
抖音视频批量下载终极指南:5分钟掌握免费去水印技巧
抖音视频批量下载终极指南:5分钟掌握免费去水印技巧 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support…...
隐私优先方案:OpenClaw+Qwen3-14B镜像处理敏感数据的5层防护
隐私优先方案:OpenClawQwen3-14B镜像处理敏感数据的5层防护 1. 为什么需要本地化隐私方案 去年处理一批客户调研数据时,我犯过一个致命错误——把包含联系方式的原始表格上传到某公有云AI平台进行清洗。三天后,公司邮箱突然收到匿名勒索邮件…...
OpenClaw技能开发入门:为千问3.5-9B编写自定义文件处理器
OpenClaw技能开发入门:为千问3.5-9B编写自定义文件处理器 1. 为什么需要自定义文件处理器 上周我在整理项目文档时,发现一个重复性痛点:每次收到同事发来的Markdown文件,都需要手动执行"格式校验→重命名→按日期归档→生成…...
提示词合集【自用】
遇到什么问题 用什么方法解决的 为什么不用别的方法 还有没有更好的方法这是一个{简要描述},请根据以下方式,帮助我学习整个代码库: 项目结构 - 编译方式 - 入口 - 核心逻辑 - 时序图 - 各个步骤关键实现函数。 每次回复只聚焦其中一个部分&a…...
JSP 语法详解
JSP 语法详解 引言 JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在网页中嵌入Java代码,以实现与数据库的交互和动态内容生成。JSP语法简洁明了,易于学习和使用。本文将详细介绍JSP的语法结构,帮助读者更好地理解和应用JSP技术。 JSP基本语法 1. JSP页面结构…...
从GRACE gfc到可用数据:一个MATLAB脚本搞定CSR/GFZ/JPL三大机构数据预处理
GRACE数据处理实战:MATLAB自动化流水线构建指南 在气候变化和水文循环研究中,GRACE卫星数据已成为不可或缺的重要资源。面对CSR、GFZ和JPL三大机构发布的多样化数据格式,研究人员常常需要花费大量时间在数据预处理环节。本文将分享一套完整的…...
实在Agent适合什么规模的企业使用?深度解析企业级AI Agent适配逻辑与落地边界
随着2026年企业数字化转型进入深水区,AI Agent(人工智能体)已不再仅仅是实验室里的原型,而是演变为推动企业智能自动化的核心引擎。在当前“大模型落地”的浪潮下,许多企业管理者都在思考一个核心问题:像实…...
