黑马头条项目结构

news2024/12/23 15:01:08

微服务架构具有许多优点,其中一些主要优点包括:

  1. 松耦合性:每个微服务都是独立的,可以独立部署、独立扩展和独立更新,这种松耦合性使得系统更加灵活,易于维护和演化。

  2. 技术多样性:由于每个微服务都是独立的,因此可以使用不同的编程语言、框架和技术栈来构建不同的微服务,从而选择最适合特定任务的技术。

  3. 容错性:由于微服务之间是独立的,因此一个微服务的故障不会影响整个系统,系统可以通过断路器等机制对故障进行隔离和处理,提高系统的容错性和稳定性。

  4. 快速交付:微服务架构使得团队可以独立开发、测试和部署微服务,从而缩短了开发周期,实现更快速的产品交付和迭代。

  5. 易于理解和维护:每个微服务都相对较小且职责单一,因此易于理解和维护,开发者可以更专注于每个微服务的实现细节。

综上所述,微服务架构通过提高灵活性、可扩展性和可维护性等方面的优势,使得开发和运维团队能够更好地应对复杂的业务需求和变化。

微服务结构:

一个请求要经过网关才能路由到各个微服务:授权、限流、登入、日志。

项目中一共要创建三个网关:admin平台管理网关、自媒体网关、app网关 ;

网关校验JWT:

 

通过反向代理找到后端,静态资源访问前端;

 MinIO分布式文件系统:性能高,部署自带管理界面,提供了所有开发语言的SDK;

在nacos配置中心配置过后微服务才可以访问数据库资源 :

Nginx是一个高性能的Web服务器和反向代理服务器,主要用于处理HTTP请求、负载均衡、反向代理、HTTP缓存等功能,适用于构建Web应用和服务的基础设施。 

  • Web服务器:Nginx可以作为静态内容的Web服务器,能够快速、高效地提供静态资源(如HTML、CSS、JavaScript文件)的访问。

  • 反向代理:Nginx可以作为反向代理服务器,将客户端的请求转发给后端的多个服务器,从而隐藏后端服务器的真实IP地址和域名,提高系统的安全性和可靠性。

Nacos是一个用于实现动态服务发现、服务配置和服务管理的开源平台,主要用于微服务架构中的服务注册与发现、配置管理、流量控制等功能,适用于构建基于微服务架构的分布式系统和云原生应用。 

  • 服务发现与注册:Nacos允许微服务应用注册自己的实例,并发现其他微服务应用的实例,从而实现微服务架构中的服务发现功能。

  • 配置管理:Nacos提供了统一的配置管理平台,允许微服务应用动态地获取配置信息,支持配置的实时更新和版本管理,从而实现微服务架构中的配置中心功能。

 

Nginx和Nacos是两个完全不同的软件,它们的作用和功能也有很大的差异。

  1. 作用与功能

    • Nginx是一个高性能的Web服务器和反向代理服务器,主要用于处理HTTP请求、负载均衡、反向代理、HTTP缓存等功能,适用于构建Web应用和服务的基础设施。
    • Nacos是一个用于实现动态服务发现、服务配置和服务管理的开源平台,主要用于微服务架构中的服务注册与发现、配置管理、流量控制等功能,适用于构建基于微服务架构的分布式系统和云原生应用。
  2. 应用场景

    • Nginx适用于构建Web应用和服务的基础设施,可以用于搭建静态内容的Web服务器、反向代理服务器、负载均衡器等,主要用于处理HTTP请求和提供静态资源访问。
    • Nacos适用于构建基于微服务架构的分布式系统和云原生应用,主要用于实现微服务架构中的服务注册与发现、配置管理、流量控制等功能,帮助开发人员更好地管理和维护微服务应用。
  3. 功能重点

    • Nginx的重点是在网络层面上提供高性能的HTTP服务和代理功能,主要关注于处理HTTP请求、负载均衡和缓存等。
    • Nacos的重点是在微服务架构中提供服务注册与发现、配置管理和服务治理等功能,主要关注于微服务应用的注册、配置和管理。

综上所述,Nginx和Nacos是两个不同领域的软件,各自解决不同层次的问题,适用于不同的应用场景和需求。

消息中间件对比:

选择建议:

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

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

相关文章

鸿蒙开发 @ohos/hypium找不到问题

用的是最新的 开发工具 DevEco Studio 3.1.1 新建的空项目 报错 ohpm ERROR: Install failed ENOENT: no such file or directory, stat ‘E:\win\Project\MyApplication1\oh_modulesohos\hypium’ 解决方式 当前项目中 \oh_modules.ohpmohoshypium1.0.6\oh_modules 这里面有o…

算法练习第19天|222.完全二叉树的节点个数

222.完全二叉树的节点个数 222. 完全二叉树的节点个数 - 力扣(LeetCode)https://leetcode.cn/problems/count-complete-tree-nodes/description/ 题目描述: 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。题目数据保…

SpringBoot版本配置问题与端口占用

前言 ​ 今天在配置springboot项目时遇到了一些问题,jdk版本与springboot版本不一致,在使用idea的脚手架创建项目时,idea的下载地址是spring的官方网站,这导致所下载的版本都是比较高的,而我们使用最多的jdk版本是jdk…

淘宝API接口开发系列:采集商品视频,属性,sku价格,详情图等

淘宝API接口开发是一个复杂的过程,涉及到与淘宝开放平台的对接,以及理解和使用其提供的API。如果你想采集商品视频、属性、SKU价格、详情图等信息,你需要遵循淘宝开放平台的开发者文档,并确保你的应用已经获得了适当的权限。 1.请…

关于C#程序(Windows窗体应用)的退出询问

在一般的软件中我们常常会发现当我们退出系统的时候,总会有提示 那我们来看看这个是怎么实现的: 首先单击退出按钮,进入到我们的退出按钮属性,点击闪电标志: 找到FormClosing,双击进入 进行代码写入&…

Learn SRP 02

3.Editor Rendering 3.1Drawing Legacy Shaders 因为我们的管线只支持无光照的着色过程,使用其他不同的着色过程的对象是不能被渲染的,他们被标记为不可见。尽管这是正确的,但是它还是隐藏了场景中一些使用错误着色器的对象。所以让我们来渲…

【Golang】并发编程之三大问题:原子性、有序性、可见性

目录 一、前言二、概念理解2.1 有序性2.2 原子性后果1:其它线程会读到中间态结果:后果2:修改结果被覆盖 2.3 可见性1)store buffer(FIFO)引起的类似store-load乱序现象2)store buffer(非FIFO)引起的类似store-store乱序…

代理模式(结构型模式)

目录 1、概述 2、结构 2.1、角色分类 2.2、类图 3、静态代理 3.1、案例类图 3.2、案例代码 4、JDK 动态代理 4.1、案例代码 4.2、底层原理 4.3、执行流程说明 5、CGLib 动态代理 5.1、案例代码 6、三种代理的对比 6.1、JDK代理和CGLib代理 6.2、动态代理和静态…

【Latex排版小记录】latex设置两端对齐

Latex排版的时候遇到了公式/英文过长超出来的情况 解决办法:在\begin{document}里面增加\begin{sloppypar} \begin{document} \begin{sloppypar}\end{sloppypar} \end{document}

Spring Boot - 利用MDC(Mapped Diagnostic Context)实现轻量级同步/异步日志追踪

文章目录 Pre什么是MDC(Mapped Diagnostic Context)Slf4j 和 MDC基础工程工程结构POMlogback-spring.xmlapplication.yml同步方式方式一: 拦截器自定义日志拦截器添加拦截器 方式二: 自定义注解 AOP自定义注解 TraceLog切面 测试…

Java实现优先级队列(堆)

前言 在学习完二叉树的相关知识后,我们对数据结构有了更多的认识,本文将介绍到优先级队列(堆) 1.优先级队列 1.1概念 前面介绍过队列,队列是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能…

【机器学习】探究Q-Learning通过学习最优策略来解决AI序列决策问题

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

学会 Python 后可以做什么副业?

近年来,Python凭借其简洁易入门的特点受到越来越多人群的青睐。 当然这不仅仅是针对程序员来说,对于一些学生、职场人士也是如此。 Python为什么会大受欢迎呢?因为Python还被大家称为“胶水语言,它适用于网站、桌面应用开发、[自…

蓝牙耳机哪个牌子好用?力荐五款实力超群机型,快收藏!

​随着蓝牙耳机的普及,越来越多的年轻人开始追求这种无线的便利。市场上品牌众多,款式多样,选择起来确实让人眼花缭乱。我整理了一份蓝牙耳机品牌排行榜前十名,希望能为你提供一些参考,帮助你找到心仪的耳机。 一、如何…

C语言堆区内存管理

一、C语言编译的内存分配 二、堆区空间的分配 1、malloc函数 功能&#xff1a;从堆区分配内存 #include <stdlib.h> void *malloc(unsigned int size)//size 分配内存的字节数2、free函数 功能&#xff1a;释放内存 #include <stdlib.h> void free(void *ptr)…

L2-045 堆宝塔 - java

L2-045 堆宝塔 Java (javac) 时间限制 500 ms 内存限制 256 MB 其他编译器 时间限制 400 ms 内存限制 64 MB 栈限制 8192 KB 题目描述&#xff1a; 堆宝塔游戏是让小朋友根据抓到的彩虹圈的直径大小&#xff0c;按照从大到小的顺序堆起宝塔。但彩虹圈不一定是按照直径的大小顺…

Java NIO,高效操作I/O流的必备技能

Java IO在工作中其实不常用到&#xff0c;更别提NIO了。但NIO却是高效操作I/O流的必备技能&#xff0c;如顶级开源项目Kafka、Netty、RocketMQ等都采用了NIO技术&#xff0c;NIO也是大多数面试官必考的体系知识。虽然骨头有点难啃&#xff0c;但还是要慢慢消耗知识、学以致用哈…

Spring核心容器总结

2.2 核心容器总结 2.2.1 容器相关 BeanFactory是IoC容器的顶层接口&#xff0c;初始化BeanFactory对象时&#xff0c;加载的bean延迟加载 ApplicationContext接口是Spring容器的核心接口&#xff0c;初始化时bean立即加载 ApplicationContext接口提供基础的bean操作相关方法…

CTFHUB-技能树-Web前置技能-文件上传(无验证,JS前端验证,前端验证)

CTFHUB-技能树-Web前置技能-文件上传&#xff08;无验证&#xff0c;JS前端验证&#xff0c;前端验证—.htaccess&#xff09; 文章目录 CTFHUB-技能树-Web前置技能-文件上传&#xff08;无验证&#xff0c;JS前端验证&#xff0c;前端验证—.htaccess&#xff09;文件上传无验…

基于 LSTM 模型的古诗词自动生成算法实现及系统实现

近年来&#xff0c;研究者在利用循环神经网络&#xff08;Recurrent Neural Network&#xff0c;RNN&#xff09;进行古诗自动生成方面取得了显著的效果。但 RNN 存在梯度问题&#xff0c;导致处理时间跨度较长的序列时 RNN 并不具备长期记忆存储功能。随后&#xff0c;出现的基…