Seata Server与Nacos Server搭建(商城7)

在这里插入图片描述

一、Nacos简介

(一)Nacos是什么

1、Nacos是 Dynamic Naming and Configuration Service的首字母简称,相较之下,它更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
2、Nacos 帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
3、Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

(二)为什么需要Nacos

在软件发展初期,企业还是传统的单体应用架构,将所有的功能都打包成一个应用服务进行部署。随着业务体系的不断发展扩大,单体应用架构的弊端日益显现。
如果可以把一个大的应用服务按照不同的维度和领域拆分成若干个子服务,各个业务团队只需要专注于自身负责的服务,各自进行开发部署迭代,不相互影响,那该多好。因此,传统的单元应用架构开始朝着微服务架构方向演进。演进过程中首要问题就是微服务如何相互发现对方进行调用?我们将这种相互发现、相互调用的能力称之为微服务注册发现。Nacos就具备这种微服务注册发现能力。
作为当前主流的服务注册发现配置中心之一,Nacos已经成为了国内开发者的首选,有着广泛的群众基础。
CSE服务注册发现配置中心引擎service-center目前支持SpringCloud Huawei、ServiceComb微服务框架,而当前国内主流框架是基于SpringCloud Alibaba、Dubbo等,这些框架集成了Nacos作为注册发现配置中心。
为了拥抱开源体系的注册发现配置中心,提高CSE的竞争力,吸引更多的用户,CSE新增了支持托管Nacos集群的特性。

(三)CSE Nacos的关键特性

  1. 健康检查
    提供两种健康检查机制:临时实例的健康检查和永久实例的健康检查。临时实例是由客户端主动发送心跳服务端,告诉服务端“我还活着”,如果客户端和服务端“失联”,服务端主动下线客户端锁注册的微服务。永久实例则是服务端主动探测客户端是否“活着”,如果探测失败则下线该微服务。
  2. 服务管理
    支持基于Rest和基于gRPC的服务发现,具备长连接能力。
    支持对服务进行管理。根据服务名和分组名进行服务检索、查询服务详情、创建服务、删除服务。
    支持设置服务实例权重,权重越大,分配给该实例的流量越大。
    支持设置服务的保护阈值,实现微服务调用的流量控制,保证服务可用。作为服务注册发现中心,CSE Nacos正常情况下只会给服务消费者返回健康的服务提供者实例,当用户应用访问量激增,所有的调用都只会转发到健康实例,可能导致服务的崩溃,产生雪崩效应。通过设置保护阈值,CSE Nacos会在健康实例数/总实例数<=保护阈值时,触发保护机制,将部分请求转发至不健康服务提供者实例,达到限流的作用,虽然损失了部分流量,但是保证了服务的可用性。
    保护阈值的范围是0-1的浮点数,0表示无论如何不触发阈值保护,1表示无论如何都会触发阈值保护。
  3. 配置管理
    支持配置文件的创建、删除、导入导出,支持多种配置文件格式。当用户微服务应用系统复杂庞大时,可能具有大量的配置文件,甚至配置文件的格式多样,使用导入导出功能可以帮助用户便捷的设置配置项,快速搬迁应用至CSE。
    支持配置的监听查询,客户端可以主动发现配置文件的变更,重新读取配置文件内容,秒级生效,实现配置的热更新,无需重新部署应用和服务,让配置管理变得更加高效和敏捷。
    支持配置的版本管理,可以回退至历史版本。
  4. 订阅者查询
    支持查询服务的订阅者,帮助用户更好地维护管理服务的订阅关系。
  5. 命名空间管理
    支持命名空间的增删改查,用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。命名空间的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。
    CSE Nacos的规格

二、Nacos server配置

(一)下载nacos 版本1.4.1

(二)配置mysql

1、使用root登录到mysql
在这里插入图片描述

2、使用create database命令建立数据库, 把要创建的数据库命令写到记事本中

在这里插入图片描述

3、把记事本中的命令粘贴到mysql的命令窗口
在这里插入图片描述

4、show database;查看已有的数据库列表
在这里插入图片描述

5、执行mysql
在这里插入图片描述
在这里插入图片描述

(三)修改配置文件,连接数据库

1、查看网卡ip地址
在这里插入图片描述

2、把当前目录改到nacos下
在这里插入图片描述

3、找到目录中的文件application-properties
在这里插入图片描述

4、vi application-properties,找到mysql对应的服务器地址,修改为本地配置好的mysq地址
在这里插入图片描述

5、修改后的结果,如下图:
在这里插入图片描述

(四)Liunx 启动

1、查看bin目录下的文件,找到startup.sh
在这里插入图片描述

2、执行下面命令前 看startup.sh是否可执行,如果不是执行chmod +x startup.sh
(1)执行startup.sh
在这里插入图片描述

(2)使用命令chmod +7 *.sh 配置权限
在这里插入图片描述

3、进入 nacos\nacos-server-1.4.1\nacos\bin,后台执行启动nacos
nohup bash startup.sh -m standalone &
在这里插入图片描述

4、查看nacos服务器上的防火墙是否开启了8848端口,
(1)连接失败说明未开启端口
在这里插入图片描述

(2)使用netstat –ano命令查看已经开启的端口号有哪些,如下图:
在这里插入图片描述

5、使用命令开启8848端口号
Sudo firewall-cmd –add-port=8848/tcp --permanent
在这里插入图片描述

6、访问地址http://X.X.X.X:8848/nacos 默认账号密码 nacos yuanfeng021
(1)访问出现登录框,如下图:
在这里插入图片描述

(2)输入用户名和密码nacos yuanfeng021,登录后,如下图:
在这里插入图片描述

上图中,已经创建了配置pro,并加入了.xml的配置文件。至此,Nacos服务器搭建完成。

二、Seata 配置

(一)什么是Seata

Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。
1、 分布式事务
一次业务操作需要跨多个数据源或者需要跨多个系统进行远程调用,就会产生分布式事务问题。
分布式系统环境下由不同的服务之间通过网络远程协作完成事务称之为分布式事务。如创建订单减库存事务,银行转账事务等都是分布式事务
案例:用户下订单操作,设计订单库新增订单数据,库存库减库存信息;账户库减金额操作,涉及3张数据库,2次远程调用,具有很明显的分布式事务问题。
2、seata的作用以及组件
seata是一款解决分布式事务的解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。
在这里插入图片描述

(二)Seata工作模式

1、AT 模式
前提
(1)基于支持本地 ACID 事务的关系型数据库。
(2)Java 应用,通过 JDBC 访问数据库
2、TCC 模式
回顾总览中的描述:一个分布式的全局事务,整体是两阶段提交的模型。全局事务是由若干分支事务组成的,分支事务要满足两阶段提交的模型要求,即需要每个分支事务都具备自己的:
(1)一阶段 prepare 行为
(2)二阶段 commit 或 rollback 行为
3、Saga 模式
Saga模式是SEATA提供的长事务解决方案,在Saga模式中,业务流程中每个参与者都提交本地事务,当出现某一个参与者失败则补偿前面已经成功的参与者,一阶段正向服务和二阶段补偿服务都由业务开发实现。

(三)适用场景:

业务流程长、业务流程多。参与者包含其它公司或遗留系统服务,无法提供 TCC 模式要求的三个接口

(四)优势:

一阶段提交本地事务,无锁,高性能。事件驱动架构,参与者可异步执行,高吞吐。补偿服务易于实现

(五)缺点:

不保证隔离性

(六)配置seata server

1、找到配置目标conf
在这里插入图片描述

2、把当前目录改到conf下,如下图:
在这里插入图片描述

3、file.conf 修改成mysql所在的数据链接,如下图:
在这里插入图片描述

主要修改所在行:
url =”jdbc:mysql://192.168.0.131:3306”
user=”root”
password=”root”
registry.conf 修改 nacos 访问地址
4、修改registry.conf注册配置文件,改为nacos的用户名和密码。
在这里插入图片描述

5、seata服务器启动
(1)执行下面命令前 看seata-server.sh是否可执行,如下图:
在这里插入图片描述

(2)上图说明JAVA_HOME的定义不正确,需要检查JAVA_HOME的设置以JDK的安装路径。
(3)、如果不能执行,赋予seata-server.sh权限,如下图:
chmod +7 seata-server.sh
在这里插入图片描述

6、使seata服务器以后台运行的方式启动
(1)nohup ./bin/seata-server.sh -p 8091 -h XXX.XXX.XXX -m file >nohup.out 2>1 &
注:XXX.XXX.XXX修改为自己服务器 ip ,执行如下图:
在这里插入图片描述

(2)执行完成后无错误提示,如下图:
在这里插入图片描述

7、查看seata 日志能显示出日志信息,如下图:
在这里插入图片描述

至此,seata服务启动完成。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【seata】 seata整合nacos + springcloud alibaba 真保姆级教程 解决各种坑点

前言&#xff1a; 坑点太多了&#xff0c;以至于需要单独写篇博客记录一下。 网上教程五花八门且不声明版本&#xff0c;文档不对应以及seata本身的bug&#xff0c;就造成了部署时各种踩坑&#xff0c;如果你和博主一样&#xff0c;已经又恰好很久没碰过nacos了&#xff0c;那可…

pandas读取Excel表指定数值 计算总和

题目要求&#xff1a;在一个文件夹里面有424个Excel表格&#xff0c;每个表格中都是统一的&#xff0c;如下图。要求计算所有表格中金额的总和。 上代码&#xff1a; import os import glob import pandas as pd# 指定文件夹路径 folder_path C:\\Users\\Administrator\\Desk…

Java—基于SpringBootWeb的综合小案例(智能学习辅助系统)

简介&#xff1a;这篇帖子是小编在看哔哩哔哩网课是的一个小案例&#xff0c;来自于黑马程序员&#xff0c;我觉得他们的课讲的很好&#xff0c;而且这个案例很有实用性&#xff0c;就在看视频的基础上&#xff0c;边温故知新&#xff0c;边实现了这个代码&#xff0c;在一些重…

Three.js中文网1-12入门案例

Three.js中文网 <template><div id"webgl"></div> </template><script setup> import * as THREE from three; import { OrbitControls } from three/addons/controls/OrbitControls.js;// 创建3D场景对象Scene const scene new THR…

【Axure RP9】动态面板使用------案例:包括轮播图和多方式登入及左侧菜单栏案例

目录 一 动态面板简介 1.1 动态面板是什么 二 轮播图 2.1 轮播图是什么 2.2 轮播图应用场景 2.3 制作实播图 三 多方式登入 3.1多方式登入是什么 3.3 多方式登入实现 四 左侧菜单栏 4.1左侧菜单栏是什么 4.2 左侧菜单栏实现 一 动态面板简介 1.1 动态面板是什么…

配置VRRP负载分担示例

一、组网需求&#xff1a; HostA和HostC通过Switch双归属到SwitchA和SwitchB。为减轻SwitchA上数据流量的承载压力&#xff0c;HostA以SwitchA为默认网关接入Internet&#xff0c;SwitchB作为备份网关&#xff1b;HostC以SwitchB为默认网关接入Internet&#xff0c;SwitchA作为…

【教程】从零开始的ORB-SLAM3的安装与配置

引言 最近项目需求需要接触vslam&#xff0c;博主选择从ORB-SLAM3下手并且记录下安装的基本流程。不得不说&#xff0c;这安装流程就像二大娘的裹脚布。 大致环境前提&#xff1a;Ubuntu20.04 一、ORB-SLAM3的源码下载 1、首先&#xff0c;为了方便管理文件&#xff0c;我们…

【infiniband】ibdump抓包

ibdump用于捕获和转储InfiniBand网络的流量。 这种工具通常用于调试和分析InfiniBand网络问题&#xff0c;包括性能瓶颈和配置错误。ibdump工具在Mellanox InfiniBand环境中较为常用&#xff0c;现由NVIDIA提供支持。 使用ibdump的基本步骤 请注意&#xff0c;您需要在安装了…

MATLAB六轴机械臂机器人的动力学分析

1、概述 动力学以牛顿第二定律为核心&#xff0c;这个定律指出了力、加速度、质量三者间的关系。 质点动力学有两类基本问题&#xff1a; 一是已知作用于质点上的力&#xff0c;求质点的运动&#xff0c;这个就是正动力学。 二是已知质点的运动&#xff0c;求作用于质点上的力…

SpringMVC-02

SpringMVC-02 SSM 框架集成与测试环境配置添加源代码 SSM 框架集成与测试 环境配置 IDEA 下创建项⽬ 创建Maven对应的Web项⽬ 配置 pom.xml 2.1. 修改 JDK 版本 <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><mav…

【Matlab】如何使用MATLAB可视化二重积分(附完整MATLAB代码)

可视化二重积分 前言正文完整代码代码实现可视化结果 前言 二重积分是指在二维空间中对函数进行积分。二重积分的公式如下&#xff1a; ∫ a b ∫ c d f ( x , y ) d x d y ∫_a^b ∫_c^d f(x, y) dx dy ∫ab​∫cd​f(x,y)dxdy 其中&#xff0c; a a a 和 b b b 是 x x x…

maven打包插件maven-jar-plugin与spring-boot-maven-plugin

maven几种打包插件介绍 文章目录 &#x1f50a;1.spring-boot-maven-plugin打包后效果 &#x1f4d5;2.maven-jar-plugin打包后效果&#x1f58a;️最后总结 &#x1f50a;1.spring-boot-maven-plugin <plugins><plugin><groupId>org.springframework.boot&…

每日一题SQL

以下题目来源微信公众号【SQL数据库开发】 1、编写一个 SQL 查询来实现分数排名。如果两个分数相同&#xff0c;则两个分数排名&#xff08;Rank&#xff09;相同。请注意&#xff0c;平分后的下一个名次应该是下一个连续的整数值。换句话说&#xff0c;名次之间不应该有“间隔…

HTML5+CSS3+JS小实例:自适应瀑布流布局

实例:自适应瀑布流布局 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" content=&quo…

九、 SpringBoot项目部署、项目打包、运行

5.5.1 项目打包 步骤1&#xff1a; 添加项目的pom.xml插件&#xff1b;在pom.xml要显式的加入插件spring-boot-maven-plugin&#xff0c;否则无法产生 jar 清单文件&#xff0c;导致打出来的 jar 无法使用命令运行&#xff1b; <build> <plugins> <!-- 打j…

2023 re:Invent使用 PartyRock 和 Amazon Bedrock 安全高效构建 AI 应用程序

前言 本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 亚马逊云科技开发者社区, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道 “Your Data, Your AI, Your Future.&#xff08;你的数据&#xff0c;你的AI&…

接口自动化测试框架搭建

一、原理及特点 参数放在XML文件中进行管理用httpClient简单封装一个httpUtils工具类测试用例管理使用了testNg管理&#xff0c;使用了TestNG参数化测试&#xff0c;通过xml文件来执行case。测试报告这里用到第三方的包ReportNG 项目组织用Maven 二、准备 使用工具&#xff1…

2023-12-14 使用Qt画一条曲线(AI辅助)

点击 <C 语言编程核心突破> 快速C语言入门 使用Qt画一条曲线 前言一、Qchart简介二、代码总结 前言 要解决问题: 有一个函数, 生成一些点, 想画一条曲线. 想到的思路: 这个用Qchart比较简单. 其它的补充: 需要稍许配置 一、Qchart简介 QChart是Qt中的一个图表控件&a…

小白菜QQ云端机器人源码-去除解密授权

小白菜QQ云端机器人源码分享&#xff1a;解密授权学习版已去除 这款源码是专为群机器人爱好者设计的&#xff0c;它基于挂机宝机器人框架构建的网页站点。 用户可以通过网页登录QQ账号至挂机宝框架中&#xff0c;无需通过机器人实现登录。 而且&#xff0c;该源码解决了一个…

力扣 | 437. 路径总和 III

437. 路径总和 III mport java.util.ArrayList; import java.util.List;/*** int的取值范围&#xff1a;* -2^31 ~ 2^31-1* <p>* -2147483648 ~ 2147483647&#xff08;约等于10的9次方&#xff09;* <p>* long long的取值范围&#xff1a;* -2^63 ~ (2^63-1&…