【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数据结构
DevOpsDockerfile、DockerCompose、GrayLog、Jenkins、SkyWalking、Docker使用、Kubernetes
搜索技术DSL语句、ES集群、RestAPI、集群脑裂、聚合统计、自动补全、拼音分词、地理坐标

最后,

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/14945.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

维护自己电脑浅析

作为一名计算机用户,维护自己的电脑是非常重要的,这可以保证电脑的正常运行、数据的安全、提高电脑的性能等。在本文中,我将分享一些我个人维护电脑的经验和技巧。 定期清理电脑 电脑在使用过程中会产生大量的临时文件、垃圾文件、缓存文件等…

Mycat分片函数详解

Mycat新一代Mysql分布式集群,大数据处理中间件,中国第一开源软件 Checkout项目 可以用eclipse的svn插件来进行项目检出,也可以用Tortoise SVN等工具检出,由于maven(M2)中的buildnumber-maven-plugin 中的SVNkit最高支持1.7的SVN仓库,因此当你用Tortoise SVN 1.8的工具或版…

c# 函数中可选参数太多,想设置最后一个参数,又不想修改前面默认参数

C#中,你可以使用命名参数来指定你想要设置的可选参数,而保留其他参数的默认值不变。通过使用命名参数,你可以根据需要选择要为哪些参数提供值,而无需按照它们在函数签名中的顺序提供参数值。 以下是一个示例,演示如何…

LinuxC语言-网络通信tcp/ip errno获取错误描述字符串

目录 服务端代码&#xff1a; 获取errno错误码&#xff1a; 客户端代码&#xff1a; 运行结果: 服务端代码&#xff1a; #include <stdio.h> #include<sys/types.h> #include<sys/socket.h> #include<string.h> #include<netinet/in.h> #in…

刷题 21-25

二十一、数组中两元素最大乘积 给你一个整数数组 nums&#xff0c;请你选择数组的两个不同下标 i 和 j&#xff0c;使 (nums[i]-1)*(nums[j]-1) 取得最大值。 请你计算并返回该式的最大值。 示例 1&#xff1a; 输入&#xff1a;nums [3,4,5,2] 输出&#xff1a;12 解释&…

Arcis中三维面转二维面

1、如何查看面是三维面 打开面属性表&#xff0c;查看SHAPE字段&#xff0c;是带“ZM”的就是三维面 不带”ZM“的就是二维面 2、三维面转二维面 在转换的过程中&#xff0c;通过设置环境下的参数&#xff0c;可以转换

MySQL数据库——DML基本操作

MySQL数据库——DML基本操作 1. 引言 MySQL是一种开源的关系型数据库管理系统&#xff0c;被广泛应用于Web开发、企业应用和数据分析等领域。DML&#xff08;Data Manipulation Language&#xff09;是MySQL中用于查询、插入、更新和删除数据的一组基本操作。 2. DML基本操作…

Ansible部署MariaDB galera集群(多主)

文章目录 Ansible部署MariaDB galera集群(多主)介绍节点规划基础环境准备编写剧本文件执行剧本文件查看集群状态测试 Ansible部署MariaDB galera集群(多主) 介绍 MariaDB Galera集群是一套基于同步复制的、多主的MySQL集群解决方案&#xff0c;使用节点没有单点故障&#xff…

react native web RN webpack nginx 部署

# nginx配置 location /app {root html;index index.html;# url 切换时始终返回index.htmltry_files $uri /app/index.html; } # 图片样式缓存1年 location ~* /app.*\.(js|css|png|jpg)$ {access_log off;expires 365d; } # html/xml/json 文件不缓存 location ~* /app.…

ChatGPT 实现前一天

提出需求 个人输入需求&#xff1a; Java实现键盘输入日期 输出前一天&#xff0c;需要考虑润年和非润年&#xff0c;2月是否有29号&#xff0c;大月小月的区分等细节处理&#xff0c;不符合的有对应提示&#xff0c;不使用java包里的封装好的类 ChatGPT4分析出的语义&#xff…

QGIS3.28的二次开发一:编译工程

环境&#xff1a;VS2019OSGeo4WCMake_3.26Cygwin64QGIS_3.28 注意&#xff1a;一定要按照步骤顺序来&#xff01; 一、配置环境 &#xff08;一&#xff09;VS2019 VS2019下载链接https://my.visualstudio.com/Downloads?qvisual%20studio%202019&wt.mc_ido~msft~vsco…

elasticsearch批量导入问题

Testvoid bulkIndex() throws IOException{List<Product> products new ArrayList<Product>();products.add(new Product("香烟",135,1)); // products.add(new Product("瓜子",154,2)); // products.add(new Product("矿…

github前端开源json2html

软件介绍 前端低代码工具包&#xff0c;通过 JSON 配置就能生成各种页面。 应用场景 json解析超大数据动态渲染&#xff0c;渲染速度、性能解决问题 包引用列表 vue3 (cdn模式开发)element plusnodehttp-serveraxios 操作步骤 1.环境准备下载node&#xff1a;https://no…

【实战】 九、深入React 状态管理与Redux机制(一) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(十六)

文章目录 一、项目起航&#xff1a;项目初始化与配置二、React 与 Hook 应用&#xff1a;实现项目列表三、TS 应用&#xff1a;JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理七、Hook&…

jenkinsfile小试牛刀

序 本文主要演示一下如何用jenkinsfile来编译java服务 安装jenkins 这里使用docker来安装jenkins docker run --name jenkins-docker \ --volume $HOME/jenkins_home:/var/jenkins_home \ -p 8080:8080 jenkins/jenkins:2.416之后访问http://${yourip}:8080&#xff0c;然后…

华为OD机试真题 Java 实现【报文回路】【2023 B卷 100分】,俗称“礼尚往来”

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路1、报文回路2、异常情况&#xff1a;3、解题思路 五、Java算法源码六、效果展示1、输入2、输出 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&…

FPGA学习——FPGA利用状态机实现电子锁模拟

文章目录 一、本次实验简介二、源码及分析三、总结 一、本次实验简介 本次是实验是为了利用状态机模拟电子锁&#xff0c;相关要求如下&#xff1a; 顺序输入4位密码&#xff0c;密码为1234&#xff0c;用按键来键入密码用led灯指示键入第几位密码&#xff0c;&#xff08;博…

C++模拟实现反向迭代器

1.代码实现 1.有了解正向迭代器的应该知道&#xff0c;比如list的正向迭代器其实本质是一个类&#xff0c;而有些人想模拟实现反向迭代器&#xff0c;依旧想再创建一个类&#xff0c;但是库里面想要的是&#xff0c;你给我一个迭代器&#xff0c;我就能给你反馈一个反向迭代器…

word显示书签并给书签添加颜色

CTRg 定位书签 在 Word 的用户界面中&#xff0c;没有直接的选项可以批量为所有书签设置颜色。但你可以使用 VBA 宏或者编写自定义的功能来实现这个需求。这里给出一个简单的 VBA 宏&#xff0c;它可以设置当前文档中所有书签内文本的颜色&#xff1a;vba Sub ColorAllBookmark…

Gromacs-plumed元动力学

标准的meta动力学模拟需要设定如下标准参数 metad: ARG__FILL__ PACE__FILL__ HEIGHT__FILL__ BIASFACTOR__FILL__ SIGMA__FILL__ FILE__FILL__ GRID_MIN__FILL__ GRID_MAX__FILL__ GRID_BIN__FILL__ TEMP__FILL__ARG: 需要添加高斯偏置势的集合变量CV (e.g. distance, angle,…