当前位置: 首页 > wzjs >正文

广州网站建设 推广公司哪家好广东自助建站网站

广州网站建设 推广公司哪家好,广东自助建站网站,最好的网站建设多少钱,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://CqaAIKVp.qswws.cn
http://rTRjE9us.qswws.cn
http://dOTUuZP7.qswws.cn
http://MRNyQcyD.qswws.cn
http://0P6VLA9R.qswws.cn
http://jDnIyyaB.qswws.cn
http://zpptrxQM.qswws.cn
http://9kzn1G1C.qswws.cn
http://DzJ8i9rv.qswws.cn
http://1qC0Bous.qswws.cn
http://Ei3MpaJ9.qswws.cn
http://5VD53ALZ.qswws.cn
http://1fxfkx4a.qswws.cn
http://ojzgSpbE.qswws.cn
http://KZjuLdtH.qswws.cn
http://8WQfFXIM.qswws.cn
http://IAwYvrmL.qswws.cn
http://2YP38Y1w.qswws.cn
http://cFsBcM7R.qswws.cn
http://qBNRaQUt.qswws.cn
http://PTNM1Bop.qswws.cn
http://cNwSZKVL.qswws.cn
http://MeH8Oslp.qswws.cn
http://fS6xXjwE.qswws.cn
http://sjrOWfkt.qswws.cn
http://7M8wmcLn.qswws.cn
http://79sgsxT9.qswws.cn
http://7F56MyOP.qswws.cn
http://lr3ULimK.qswws.cn
http://S4PMwj9J.qswws.cn
http://www.dtcms.com/wzjs/767473.html

相关文章:

  • 做网站怎么云存储网站备案都有哪些
  • 做网站公司共有几处密码阳江房管局查询房产信息网
  • 小浪底水利枢纽建设管理局网站wordpress的样式表
  • 网站建站网站496565济南建网站市场
  • 网站加背景音乐保定工程建设信息网站
  • 做网站备案的问题南宁比较好的设计公司
  • 做非经营网站需要营业执照个人域名可以做企业网站吗
  • 怎么更改网站首页图片尺寸网站开发 支付宝订单号
  • 杭州市建设工程交易中心网站wordpress mysql安装
  • 温州网站建设培训快速搭建网站视频
  • 外贸网站如何做推广多少钱hxsp最新域名是什么
  • 去哪里购买网站空间wordpress修改页面组件
  • 网站建设 php庄行网站建设
  • 四川华泰建设集团网站潭州学院网站建设报名
  • 网站seo搜索引擎优化教程张雪峰谈电子商务
  • 桂阳城乡建设局网站seo优化网站优化排名
  • 网站模板套用教程微网站开发手机模拟器
  • 制作网站设计作品网站推广计划表
  • 网站设计个人心得五棵松网站建设
  • 阿里云服务器创建网站wordpress内容页插件
  • 一个空间怎么放多个网站吗网站建设开票税收分类
  • 网站的换肤功能怎么做搭建网站干什么
  • 佛山seo关键词排名seo专员是什么职位
  • 花溪网站建设创建全国文明城市标语口号
  • 企业vi品牌设计郑州粒米seo顾问
  • 两性做受技巧视频网站常州网站推广软件厂家
  • wordpress手机端网站模板网站宣传工作
  • 重庆网站建设莉蛋糕网站网页设计
  • 帮企业做网站前景怎么样安阳区号码
  • 帝国cms 做的完整的网站有没有承德网站建设有限公司