湖北省建设厅官方网站证书查询/武汉电脑培训学校有哪些

湖北省建设厅官方网站证书查询,武汉电脑培训学校有哪些,wordpress 更改标题,安徽建设人才网官网目录 一,什么是单体架构 二,什么是集群和分布式架构 三,什么是微服务架构 四,解决微服务难题的方案Spring-cloud Spring Cloud Alibaba是阿里巴实现的方案,基于SpringCloud的规范。如果说Spring Cloud Netflix 是…

目录

一,什么是单体架构

二,什么是集群和分布式架构

三,什么是微服务架构

四,解决微服务难题的方案Spring-cloud

Spring Cloud Alibaba是阿里巴实现的方案,基于SpringCloud的规范。如果说Spring Cloud Netflix 是 Spring Cloud 的第⼀代实现, 那么Spring Cloud Alibaba 也可以看做是  Spring Cloud 的第⼆代实现, 主要由 Nacos、Sentinel、Seata等组件组成.

五,创建一个微服务项目


单体架构,集群和分布式架构,微服务架构

一,什么是单体架构

在java初学阶段,当自己独立做完一个项目,这个项目的业务功能 控制层 配置层 中间件等等所有的功能集中在一个jar包中,那么这个项目就是单体架构的。

二,什么是集群和分布式架构

1.当一个单体架构的项目的流量和需求逐渐增多时,这个时候单体架构就容易崩溃,为解决这个问题。就可以将个别涉及流量大的功能部署在多个服务器上,多个服务器共同完成这个功能。每个服务器的负载按照负载均衡来调度完成任务。这共同完成一个功能的多个服务器共称为集群。

2.将一个系统拆分为多个小子系统,并且部署在多个服务,不同的服务器承担的任务不同。这个就是分布式

集群和分布式区别与联系?

1.概念上:集群是多个计算机做同样的事情,分布式是多个计算机做不同的事情。

2.功能上:集群的每个节点的功能是相同的,并且有一个节点挂了其他节点可以分担它的工作,整个业务依然可以访问。分布式每个节点的功能不同,一个挂了整个业务将不可访问。

3.关系上:分布式的节点可以是一个集群组成,集群与分布式相互搭配使用。一般不会将两者单独区分。而是统称:分布式架构

三,什么是微服务架构

在一个电商系统中有很多业务代码是重复的。调用的关系也有很多重复的。可以把一些通用的功能封装起来形成独立的基础服务供别人调用,组成一个微小的服务,这就是微服务。

更加通俗地说,把一个微小的服务封装起来独立部署起来。

微服务和分布式架构?

分布式讲究流量压力拆分,流量大的拆开。

微服务讲究功能的拆分,拆成一个个独立功能的整体。

微服务通常是分布式架构,选择微服务就意味着要解决分布式架构的难题。

四,解决微服务难题的方案Spring-cloud

Spring-cloud是分布式微服务架构的一站式解决方案。微服务架构落地的多种技术集合。

虽然SpringCloud包含微服务架构的多种技术,但这些技术大多不是SpringCloud团队开发的,SpringCloud像管家一样把多种技术以SpringCloud规范和SpringBoot风格进行整合起来。但这些技术还是由各个公司维护。

SpringCloud的实现方案主要有以下两种

1.Spring Cloud Netflix

2.Spring Cloud Alibaba

Netflix一直是SpringCloud的默认实现方案,但是在2018年以后Netflix公司宣布停止维护。SpringCloud也给出了替代技术。

Spring Cloud Alibaba是阿里巴实现的方案,基于SpringCloud的规范。如果说Spring Cloud Netflix 是 Spring Cloud 的第⼀代实现, 那么Spring Cloud Alibaba 也可以看做是  Spring Cloud 的第⼆代实现, 主要由 Nacos、Sentinel、Seata等组件组成.
五,创建一个微服务项目

1.服务拆分原则:明确一个服务的最小不可拆分的功能。以便于我们在做一个项目的时不会迷惑到底要拆分哪些服务独立部署。

2.服务自治:每个拆分出来的独立服务都可以独立的开发,测试,运行,部署。

以一个电商系统为例,对于商品的服务应该如何拆分呢,我们平时使用的网购软件关于商品的功能有很多,在订单中,首页中,推荐中等等。这里为演示如何使用SpringCloud解决微服务架构问题,我们不是要做出来一个电商系统为例而是建立项目的架构去模拟项目之间的关系。

一个商品可以出现在订单上,也可以出现在商品的例表上。并且这个业务的功能是独立且可以通过商品的ID联系起来,那么这两个业务就可以使用微服务架构独立部署起来。

3.首先准备模拟数据建立订单表和产品表。

-- 建库
CREATE DATABASE IF NOT EXISTS cloud_order DEFAULT CHARACTER SET utf8mb4;
CREATE DATABASE IF NOT EXISTS cloud_product DEFAULT CHARACTER SET utf8mb4;-- 订单表
DROP TABLE IF EXISTS order_detail;
CREATE TABLE order_detail (`id` INT NOT NULL AUTO_INCREMENT COMMENT '订单id',`user_id` BIGINT(20) NOT NULL COMMENT '用户ID',`product_id` BIGINT(20) NULL COMMENT '产品id',`num` INT(10) NULL DEFAULT 0 COMMENT '下单数量',`price` BIGINT(20) NOT NULL COMMENT '实付款',`delete_flag` TINYINT(4) NULL DEFAULT 0,`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (id)
) ENGINE = INNODB DEFAULT CHARACTER SET = utf8mb4 COMMENT = '订单表';-- 数据初始化
INSERT INTO order_detail (user_id, product_id, num, price)
VALUES
(2001, 1001, 1, 99), (2002, 1002, 1, 30), (2001, 1003, 1, 40),
(2003, 1004, 3, 58), (2004, 1005, 7, 85), (2005, 1006, 7, 94);-- 产品表
DROP TABLE IF EXISTS product_detail;
CREATE TABLE product_detail (`id` INT NOT NULL AUTO_INCREMENT COMMENT '产品id',`product_name` VARCHAR(128) NULL COMMENT '产品名称',`product_price` BIGINT(20) NOT NULL COMMENT '产品价格',`state` TINYINT(4) NULL DEFAULT 0 COMMENT '产品状态 0-有效 1-下架',`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (id)
) ENGINE = INNODB DEFAULT CHARACTER SET = utf8mb4 COMMENT = '产品表';-- 数据初始化
INSERT INTO product_detail (id, product_name, product_price, state)
VALUES
(1001, "T恤", 101, 0), (1002, "短袖", 30, 0), (1003, "短裤", 44, 0),
(1004, "卫衣", 58, 0), (1005, "马甲", 98, 0), (1006, "羽绒服", 101, 0),
(1007, "冲锋衣", 30, 0), (1008, "袜子", 44, 0), (1009, "鞋子", 58, 0),
(10010, "毛衣", 98, 0);

4.创建一个父项目Spring-cloud-demo

红框里的parent标签内指定SpringBoot的版本为3.1.6,代表这个项目的父项目的版本,切记不能随便使用SpringBoot版本,因为SpringBoot版本和SpringCloud版本是严格对应的。SpringBoot父项目可以让当前项目继承父项目的默认配置以方便管理。

以下是SpringBoot版本和SpringCloud版本对应关系:

Spring Cloud 版本Spring Boot 版本范围备注
2023.0.x (Eureka SRx)Spring Boot 3.2.x最新的 Spring Cloud 版本,适配 Spring Boot 3.2。
2022.0.x (Gateway SRx)Spring Boot 3.1.x适配 Spring Boot 3.1。
2021.0.x (Jubilee)Spring Boot 2.6.x ~ 2.7.x支持 JDK 17,适配 Spring Boot 2.x。
2020.0.x (Ilford)Spring Boot 2.4.x ~ 2.5.x开始支持 JDK 15。
HoxtonSpring Boot 2.2.x经典稳定版本,支持 JDK 8 和 11。
GreenwichSpring Boot 2.1.x与 Spring Boot 2.1 完美搭配。
FinchleySpring Boot 2.0.xSpring Boot 2.0 的标准配置。
DalstonSpring Boot 1.5.x

适配较老的 Spring Boot 版本。

在properties中加入可能会用到的各个依赖的版本,方便以后统一管理父项目和子项目中的依赖版本。

<dependencyManagement>这个标签是声明可能会用到的依赖,这里的依赖不会直接引入到项目中而是以后再<dependency>中声明后才会真正的引用。如果子项目中引用的依赖没有指定版本号则会从父项目中读取<version> 

红框里的标签制定了打包方式是pom不是jar这需要手动调节。

import作用域是一个特殊的范围,它只与pom类型的依赖一起使用。当使用import范围时,Maven会将依赖的POM文件中定义的所有依赖、插件和其他配置导入到当前项目的POM文件中,就像这些配置是直接在当前项目的POM文件中定义的一样

<type>pom</type>:在Maven默认依赖类型是jar,pom表示这是一个父pom文件,需要时,Maven会将父项目依赖和配置导入到子项目中。

5.创建子项目product-service 和 order-service

在这个子项目中引入这些依赖,由于这些依赖在父项目的<dependencyManagement>中都存在,所有子项目会自动导入<dependencyManagement>的依赖,如果已经制定版本号则用子项目自己导入的具体版本号的依赖。

	<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId></dependency><!--mybatis--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency></dependencies>

创建product-sevice项目

关于pom.xml文件的配置与order-service一样。

6.配置yml文件

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

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

相关文章

C/C++跳动的爱心

系列文章 序号直达链接1C/C李峋同款跳动的爱心2C/C跳动的爱心3C/C经典爱心4C/C满屏飘字5C/C大雪纷飞6C/C炫酷烟花7C/C黑客帝国同款字母雨8C/C樱花树9C/C奥特曼10C/C精美圣诞树11C/C俄罗斯方块小游戏12C/C贪吃蛇小游戏13C/C孤单又灿烂的神14C/C闪烁的爱心15C/C哆啦A梦16C/C简单…

量子计算的威胁,以及企业可以采取的措施

当谷歌、IBM、Honeywell和微软等科技巨头纷纷投身量子计算领域时&#xff0c;一场技术军备竞赛已然拉开帷幕。 量子计算虽能为全球数字经济带来巨大价值&#xff0c;但也有可能对相互关联的系统、设备和数据造成损害。这一潜在影响在全球网络安全领域引起了强烈关注。也正因如…

Unity制作游戏——前期准备:Unity2023和VS2022下载和安装配置——附安装包

1.Unity2023的下载和安装配置 &#xff08;1&#xff09;Unity官网下载地址&#xff08;国际如果进不去&#xff0c;进国内的官网&#xff0c;下面以国内官网流程为例子&#xff09; unity中国官网&#xff1a;Unity中国官网 - 实时内容开发平台 | 3D、2D、VR & AR可视化 …

Android 串口通信

引言 在iot项目中&#xff0c;Android 端总会有和硬件通信。 通信这里&#xff1a;串口通信&#xff0c;蓝牙通信或者局域网通信。 这里讲一下串口通信。 什么是串口&#xff1f; “串口”&#xff08;Serial Port&#xff09;通常是指一种用于与外部设备进行串行通信的接口。…

从人机环境系统智能角度看传统IP的全球化二次创作法则

从人机环境系统智能的视角看&#xff0c;传统IP的全球化二次创作法则需结合技术、文化、伦理与环境的复杂协同。这一过程不仅是内容的本土化改编&#xff0c;更是人、机器与环境在动态交互中实现价值共创的体现。 一、人机环境系统智能的底层逻辑与IP二次创作的融合 1、感知层&…

实现 INFINI Console 与 GitHub 的单点登录集成:一站式身份验证解决方案

本文将为您详细解析如何通过 GitHub OAuth 2.0 协议&#xff0c;为 INFINI Console 实现高效、安全的单点登录&#xff08;Single Sign-On, SSO&#xff09;集成。通过此方案&#xff0c;用户可直接使用 GitHub 账户无缝登录 INFINI Console&#xff0c;简化身份验证流程&#…

记一次复杂分页查询的优化历程:从临时表到普通表的架构演进

1. 问题背景 在项目开发中&#xff0c;我们需要实现一个复杂的分页查询功能&#xff0c;涉及大量 IP 地址数据的处理和多表关联。在我接手这个项目的时候,代码是这样的 要知道代码里面的 ipsList 数据可能几万条甚至更多,这样拼接的sql,必然是要内存溢出的,一味地扩大jvm参数不…

Error [ERR_REQUIRE_ESM]: require() of ES Module

报错信息&#xff1a; 【报错】Message.js 导入方式不对&#xff0c;用的是 ES Moudle 的语法&#xff0c;提示使用 import 引入文件 项目开发没有用到 js-message 依赖&#xff0c;是 node-ipc 依赖中用到的 js-message 依赖&#xff0c; node-ipc 中限制 js-message 版本&a…

给小米/红米手机root(工具基本为官方工具)——KernelSU篇

目录 前言准备工作下载刷机包xiaomirom下载刷机包【适用于MIUI和hyperOS】“hyper更新”微信小程序【只适用于hyperOS】 下载KernelSU刷机所需程序和驱动文件 开始刷机设置手机第一种刷机方式【KMI】推荐提取boot或init_boot分区 第二种刷机方式【GKI】不推荐 结语 前言 刷机需…

CSS通过webkit-scrollbar设置滚动条样式

查看::-webkit-scrollbar-*各项关系 以下图为例&#xff0c;可以分别定义滚动条背景、滚动轨道、滚动滑块的样式。 需要先给外部容器设置高度&#xff0c;再设置overflow: auto&#xff0c;最后设置三个webkit属性。 <!DOCTYPE html> <html lang"en">…

自制操作系统前置知识汇编学习

今天要做什么&#xff1f; 为了更好的理解书中内容&#xff0c;需要学习下进制分析和汇编。 汇编语言其实应该叫叫机器指令符号化语言&#xff0c;目前的汇编语言是学习操作系统的基础。 一&#xff1a;触发器 电路触发器的锁存命令默认是断开的&#xff0c;是控制电路触发器…

【Android】ViewPager的使用

AndroidManifest.xml <?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"><applicationandroid:allowBac…

京东广告基于 Apache Doris 的冷热数据分层实践

一、背景介绍 京东广告围绕Apache Doris建设广告数据存储服务&#xff0c;为广告主提供实时广告效果报表和多维数据分析服务。历经多年发展&#xff0c;积累了海量的广告数据&#xff0c;目前系统总数据容量接近1PB&#xff0c;数据行数达到18万亿行&#xff0c;日查询请求量8…

Windows PyCharm的python项目移动存储位置后需要做的变更

项目使用的venv虚拟环境&#xff0c;因此项目移动存储位置后需要重新配置python解释器的位置&#xff0c;否则无法识别&#xff0c;若非虚拟环境中运行&#xff0c;则直接移动后打开即可&#xff0c;无需任何配置。 PyCharm版本为2021.3.3 (Professional Edition)&#xff0c;其…

tailwindcss 前端 css 框架 无需写css 快速构建页面

版本&#xff1a;VUE3 TS 框架 vite 文章中使用tailwindcss 版本&#xff1a; ^3.4.17 简介&#xff1a; Tailwind CSS 一个CSS 框架&#xff0c;提供组件化的样式&#xff0c;直接在HTML 中编写样式&#xff0c;无需额外自定义CSS &#xff0c;快速&#xff01; 简洁&#…

MFC开发:如何创建第一个MFC应用程序

文章目录 一、概述二、MFC 的主要组件三、创建一个MFC窗口四、控件绑定消息函数 一、概述 MFC 是微软提供的一个 C 类库&#xff0c;用于简化 Windows 应用程序的开发。它封装了 Windows API&#xff0c;提供面向对象的接口&#xff0c;帮助开发者更高效地创建图形用户界面&am…

【Git版本控制器】第四弹——分支管理,合并冲突,--no-ff,git stash

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;Linux网络编程 &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 ​ 相关笔记&#xff1a; https://blog.csdn.net/djd…

SpringBoot+Vue+微信小程序的猫咖小程序平台(程序+论文+讲解+安装+调试+售后)

感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;我会一一回复&#xff0c;希望帮助更多的人。 系统介绍 在当下这个高速发展的时代&#xff0c;网络科技正以令人惊叹的速度不断迭代更新。从 5G …

智慧教室与无纸化同屏技术方案探讨与实现探究

引言 随着教育信息化的不断发展&#xff0c;智慧教室和无纸化同屏技术逐渐成为提升教学效率和质量的重要手段。大牛直播SDK凭借其强大的音视频处理能力和丰富的功能特性&#xff0c;在智慧教室和无纸化同屏领域积累了众多成功案例。本文将深入探讨基于大牛直播SDK的智慧教室、…

Linux MySQL 8.0.29 忽略表名大小写配置

Linux MySQL 8.0.29 忽略表名大小写配置 问题背景解决方案遇到的问题&#xff1a; 问题背景 突然发现有个大写的表报不存在。 在Windows上&#xff0c;MySQL是默认支持忽略大小写的。 这个时候你要查询一下是不是没有配置&#xff1a; SHOW VARIABLES LIKE lower_case_table…