[golang gin框架] 39.Gin商城项目-微服务实战之微服务架构

news2024/11/23 17:25:26

一.引入

单体架构在 中小企业内部用的是非常多的,当 业务不复杂团队规模不大的时候,单体架构比微服务架构具有 更高的生产率

单体架构

业务比较复杂, 并发量比较大, 团队规模扩大的时候, 就需要引入微服务架构了,它比单体架构具有 更高的生产率, 可以 节省成本 , 解决高并发 , 项目重启 等问题
比如说:
一个商城项目需要升级, 需要增加一个api接口,单体架构的话,就需要 修改框架routers文件, 然后 重新发布,部署 ,这个时候应用就需要 进行重启 ,重启之后才会进行服务,这时如果有一个用户正在进行付款操作,这时候项目却在重启,这个时候就会出现 丢单 的情况,给用户以及业务人员带来不必要的麻烦;
还有就是:
当并 发量比较大 的时候,需要 扩展服务器 ,实现 负载均衡, 这样的操作是对 整个网站进行优化 ,会 增加运维成本 ,这时候就 有必要 使用 微服务 ,当并发量比较大的时候,可以找出是哪个模块的并发量较大,就可以 针对 这个模块进行 优化 ,因为使用微服务的话,每个模块都是 独立的 .比如:前端 登录操作(验证码服务) 并发量比较大 ,就可以针对登录模块(验证码服务)微服务进行优化,多部署几个登录模块(验证码服务)微服务,还比如: 订单模块服务 并发量比较大,就可以多部署几台订单模块服务集群操作,这样可以很好的实现高并发,以及节约硬件成本
另外的一个好处就是:
当使用了微服务的时候,项目的升级也很好处理,单体架构的话,需要 修改框架routers文件, 然后 重新发布,部署 ,这个时候应用就需要 进行重启 ,重启之后才会进行服务,而微服务的话,只需新增一个微模块服务功能,项目现存的功能不受影响

二.方案

  1. 商城微服务架构的第一种方案

  1. 商城微服务架构的第二种方案

[上一节][golang gin框架] 38.Gin操作Elasticsearch创建索引、修改映射、数据CURD以及数据分页

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

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

相关文章

moven项目生成和运行

[TOC]moven学习笔记 生成maven项目 mkdir movenT cd movenT/ mvn -B archetype:generate -DgroupIdcom.mycompany.app -DartifactIdmy-app -DarchetypeArtifactIdmaven-archetype-quickstart -DarchetypeVersion1.4 tree 生成jar mvn package 运行 class cd /root/moven…

青岛大学_王卓老师【数据结构与算法】Week04_08_线性表的应用1_学习笔记

本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享,另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权,请留言作删文处理。 课程视频链接: 数据结构与算法基础–…

scratch 抓狐狸

scratch 抓狐狸 本程序的功能是通过键盘控制“男孩”角色移动(程序用的是旋转形式实现上下移动,后来才发现有直接改变y坐标的模块),“狐狸”角色连续在随机位置、随机方向生成,程序显示在场“狐狸”的数量,…

ChatGPT显示付费墙内容,OpenAI把联网功能关了

ChatGPT 学会上网不到两个月,OpenAI就不能忍了。 本周二,OpenAI 突然宣布停止 ChatGPT 的网络浏览功能「使用 Bing 浏览」。 果不其然,关闭的原因是这项功能遭到了滥用。在周一发布的一篇文章中,OpenAI 支持团队人员表示&#xf…

css基础知识十七:如何使用CSS完成视差滚动效果?

一、是什么 视差滚动(Parallax Scrolling)是指多层背景以不同的速度移动,形成立体的运动效果,带来非常出色的视觉体验 我们可以把网页解刨成:背景层、内容层、悬浮层 当滚动鼠标滑轮的时候,各个图层以不同…

机器学习22:机器学习工程落地注意事项-II(公平-Fairness)

负责任地评估机器学习模型需要做的不仅仅是计算损失指标。在将模型投入实际应用之前,审核训练数据并评估偏见(Bias)对预测至关重要。本文内容着眼于解读训练数据中可能存在的不同类型的人类偏见,同时提供了识别它们并评估其影响的…

Python爬虫与数据挖掘在外汇市场分析中的应用

外汇市场是全球最大的金融市场之一,每天的交易量可以达到几万亿美元。深入了解外汇市场的趋势和变化对于投资者来说至关重要,因为即使是微小的价格波动也可能导致巨额利润或损失。从过去的历史数据中抽取经验教训,并使用数据挖掘算法来预测未…

xDS协议

xDS xDS协议是"X Discovery Service",这里的X表示它不是指具体的某个协议,是一组基于不同数据源的服务发现协议的总称,包括CDS,LDS,EDS,RDS和SDS等。客户端可以用噶多种方式获取数据资源&#x…

【SAP UI5 控件学习】DAY01 Input组Part I

UI5常用控件 1.Input组 1.1 Feed Input控件 这个控件通常是用来显示发布评论的。它可以显示用户头像,并且在内容输入方面,可以设置PlaceHolder,自增扩展大小,限制行数,以及限制字数等诸多设置。 1.1.1 没有头像的输…

电压放大器的应用领域有哪些

电压放大器是一种电子器件,其主要作用是将输入信号的电压放大到输出端。在现代电子技术中,电压放大器被广泛应用于各种领域,包括通信、医疗、工业控制、汽车电子等。下面安泰电子就来详细了解一下电压放大器的应用领域。 通信领域&#xff1a…

软考:中级软件设计师:系统总线,系统可靠性,串联和并联可靠度

软考:中级软件设计师:系统总线, 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心…

4.39ue4:ue4表格设置、读取

1.创建表格,内容浏览器,右键,其他,数据表格,下拉选择一个数据结构类型的起始项。 2.被选择的数据结构将以表格的形式列出数据。 3.使用方式: i: 输出一行数据(text) ii&#xff…

Stable Diffusion 图片生成AI模型 Windows Mac部署指南

Stable Diffusion是2022年发布的深度学习文本到图像生成模型。它主要用于根据文本的描述产生详细图像,它也可以应用于其他任务,如内补绘制、外补绘制,以及在提示词​(英语)指导下产生图生图的翻译。 DreamStudio 现已…

一条MYSQL记录是如何储存的

主要还是看MYSQL默认的储存引擎 InnoDB 每个创建一个数据库 就会在/var/lib/mysql/ 目录里面创建一个以 database 为名的目录 目录里面包含以下三个文件 db.opt,用来存储当前数据库的默认字符集和字符校验规则。(数据库的数据)t_order.frm ,t_order 的…

html---链接跳转案例

目录 一、要求:设置一个网页如下图所示,可实现首页、列表页、详情页、登录页链接 二、实现:实现代码及截图如下 三、寄语 一、要求:设置一个网页如下图所示,可实现首页、列表页、详情页、登录页链接 二、实现&…

飞书深诺、恒生面试(部分)(未完全解析)

飞书深诺 说一下你对SaaS项目的理解?数据隔离是怎么处理的?Answer: 我们采用的是SAAS服务多租户数据隔离架构中的1.3共享数据库,通过租户ID来隔离,成本最低,隔离级别最低。Q:有没有开发隔离的中间件&#x…

shopee,lazada卖家如何提高店铺权重,带来更多销量

1、优化标题关键词 标题关键词可以在很大程度上影响产品的显示,如果商店自然流量低,必须检查标题是否选择合适的关键词,如果关键词不合适需要优化并进行更换,可以选择一些准确的长尾关键词获得准确的流量,如果收集产品…

在Linux中查找用户帐户信息和登录详细信息的11种方法

在Linux系统中,用户帐户和登录详细信息对于系统管理和安全非常重要。本文将介绍 11 种在 Linux 系统查找用户相关信息的有用方法。这里,我们会讲解在系统中获取一个用户账户详细信息、展示登录详细信息以及用户行为数据的命令。 首先,我们会…

【ARM7.5作业】

作业1 作业2 代码实现: head.h #ifndef __UART4_H__ #define __UART4_H__#include "stm32mp1xx_rcc.h" #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_uart.h"//初始化相关操作 void hal_uart4_init();//发送一个字符 void h…

Mockito的使用案例

流水线的单元测试 代码没有覆盖到,使用的是Mockito测试框架,原来是Mockito没有正确使用 package com.hmdp;import com.hmdp.controller.BlogController; import com.hmdp.entity.Blog; import com.hmdp.service.IBlogService; import com.hmdp.service.…