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

广东品牌网站建设平台服装购物网站策划书

广东品牌网站建设平台,服装购物网站策划书,开发网站的意义,vs 网站开发教程文章目录 一、部署Nacos二、部署Mysql三、Seata准备工作1. 记住nacos、mysql、宿主机的ip2. 建立数据库3. Nacos远程配置文件 四、部署Seata五、初步检验Seata部署情况六、微服务使用Seata1.引入依赖2. application.yml配置 七、遇到的坑1. Nacos显示Seata服务的ip为容器内网ip… 文章目录 一、部署Nacos二、部署Mysql三、Seata准备工作1. 记住nacos、mysql、宿主机的ip2. 建立数据库3. Nacos远程配置文件 四、部署Seata五、初步检验Seata部署情况六、微服务使用Seata1.引入依赖2. application.yml配置 七、遇到的坑1. Nacos显示Seata服务的ip为容器内网ip导致微服务无法访问2. 使用host宿主机网络3. seata The distribute lock table is not config, please create the target table and config it 系统环境 docker desktop for windows v4.23.0 nacos、mysql、seata三者都在bridge网络中 一、部署Nacos docker run -itd \-e MODEstandalone -e NACOS_SERVER_PORT8848 -p 8848:8848 --namenacos_standalone nacos/nacos-server:v2.3.0二、部署Mysql docker run -itd \-e MYSQL_ROOT_PASSWORD1009-p 3306:3306--namemysql_itcastmysql:5.7三、Seata准备工作 1. 记住nacos、mysql、宿主机的ip $ docker network inspect bridge假设这里nacos是172.17.0.3mysql是172.17.0.2 ipconfig /all这里假设宿主机ip为192.168.1.102 之后遇到上述三个ip记得写成自己的 2. 建立数据库 在mysql_itcast中新建seata数据库然后导入以下脚本 -- -------------------------------- The script used when storeMode is db -------------------------------- -- the table to store GlobalSession data CREATE TABLE IF NOT EXISTS global_table (xid VARCHAR(128) NOT NULL,transaction_id BIGINT,status TINYINT NOT NULL,application_id VARCHAR(32),transaction_service_group VARCHAR(32),transaction_name VARCHAR(128),timeout INT,begin_time BIGINT,application_data VARCHAR(2000),gmt_create DATETIME,gmt_modified DATETIME,PRIMARY KEY (xid),KEY idx_status_gmt_modified (status , gmt_modified),KEY idx_transaction_id (transaction_id) ) ENGINE InnoDBDEFAULT CHARSET utf8mb4;-- the table to store BranchSession data CREATE TABLE IF NOT EXISTS branch_table (branch_id BIGINT NOT NULL,xid VARCHAR(128) NOT NULL,transaction_id BIGINT,resource_group_id VARCHAR(32),resource_id VARCHAR(256),branch_type VARCHAR(8),status TINYINT,client_id VARCHAR(64),application_data VARCHAR(2000),gmt_create DATETIME(6),gmt_modified DATETIME(6),PRIMARY KEY (branch_id),KEY idx_xid (xid) ) ENGINE InnoDBDEFAULT CHARSET utf8mb4;-- the table to store lock data CREATE TABLE IF NOT EXISTS lock_table (row_key VARCHAR(128) NOT NULL,xid VARCHAR(128),transaction_id BIGINT,branch_id BIGINT NOT NULL,resource_id VARCHAR(256),table_name VARCHAR(32),pk VARCHAR(36),status TINYINT NOT NULL DEFAULT 0 COMMENT 0:locked ,1:rollbacking,gmt_create DATETIME,gmt_modified DATETIME,PRIMARY KEY (row_key),KEY idx_status (status),KEY idx_branch_id (branch_id),KEY idx_xid (xid) ) ENGINE InnoDBDEFAULT CHARSET utf8mb4;CREATE TABLE IF NOT EXISTS distributed_lock (lock_key CHAR(20) NOT NULL,lock_value VARCHAR(20) NOT NULL,expire BIGINT,primary key (lock_key) ) ENGINE InnoDBDEFAULT CHARSET utf8mb4;INSERT INTO distributed_lock (lock_key, lock_value, expire) VALUES (AsyncCommitting, , 0); INSERT INTO distributed_lock (lock_key, lock_value, expire) VALUES (RetryCommitting, , 0); INSERT INTO distributed_lock (lock_key, lock_value, expire) VALUES (RetryRollbacking, , 0); INSERT INTO distributed_lock (lock_key, lock_value, expire) VALUES (TxTimeoutCheck, , 0);3. Nacos远程配置文件 访问Nacos网页一般是http://localhost:8848/nacos/新建一个配置seataServer.properties 具体内容如下 store.modedb #-----db----- store.db.datasourcedruid store.db.dbTypemysql # 需要根据mysql的版本调整driverClassName # mysql8及以上版本对应的drivercom.mysql.cj.jdbc.Driver # mysql8以下版本的drivercom.mysql.jdbc.Driver store.db.driverClassNamecom.mysql.jdbc.Driver store.db.urljdbc:mysql://172.17.0.2:3306/seata?useUnicodetruecharacterEncodingutf8connectTimeout1000socketTimeout3000autoReconnecttrueuseSSLfalse store.db.user root store.db.password1009 # 数据库初始连接数 store.db.minConn1 # 数据库最大连接数 store.db.maxConn20 # 获取连接时最大等待时间 默认5000单位毫秒 store.db.maxWait5000 # 全局事务表名 默认global_table store.db.globalTableglobal_table # 分支事务表名 默认branch_table store.db.branchTablebranch_table # 全局锁表名 默认lock_table store.db.lockTablelock_table store.db.distributedLockTabledistributed_lock # 查询全局事务一次的最大条数 默认100 store.db.queryLimit100# undo保留天数 默认7天,log_status1附录3和未正常清理的undo server.undo.logSaveDays7 # undo清理线程间隔时间 默认86400000单位毫秒 server.undo.logDeletePeriod86400000 # 二阶段提交重试超时时长 单位ms,s,m,h,d,对应毫秒,秒,分,小时,天,默认毫秒。默认值-1表示无限重试 # 公式: timeoutnow-globalTransactionBeginTime,true表示超时则不再重试 # 注: 达到超时时间后将不会做任何重试,有数据不一致风险,除非业务自行可校准数据,否者慎用 server.maxCommitRetryTimeout-1 # 二阶段回滚重试超时时长 server.maxRollbackRetryTimeout-1 # 二阶段提交未完成状态全局事务重试提交线程间隔时间 默认1000单位毫秒 server.recovery.committingRetryPeriod1000 # 二阶段异步提交状态重试提交线程间隔时间 默认1000单位毫秒 server.recovery.asynCommittingRetryPeriod1000 # 二阶段回滚状态重试回滚线程间隔时间 默认1000单位毫秒 server.recovery.rollbackingRetryPeriod1000 # 超时状态检测重试线程间隔时间 默认1000单位毫秒检测出超时将全局事务置入回滚会话管理器 server.recovery.timeoutRetryPeriod1000四、部署Seata 宿主机新建一个application.yml文件内容如下 server:port: 7091spring:application:name: seata-serverlogging:config: classpath:logback-spring.xmlfile:path: ${user.home}/logs/seataextend:logstash-appender:destination: 127.0.0.1:4560kafka-appender:bootstrap-servers: 127.0.0.1:9092topic: logback_to_logstashconsole:user:username: seatapassword: seataseata:config:# support: nacos, consul, apollo, zk, etcd3type: nacosnacos:server-addr: 172.17.0.3:8848namespace:group: DEFAULT_GROUPusername: nacospassword: nacosdata-id: seataServer.propertiesregistry:# support: nacos, eureka, redis, zk, consul, etcd3, sofatype: nacosnacos:application: seata-tc-serverserver-addr: 172.17.0.3:8848group: DEFAULT_GROUPnamespace:# tc集群名称cluster: SHusername: nacospassword: nacos# server:# service-port: 8091 #If not configured, the default is ${server.port} 1000security:secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017tokenValidityInMilliseconds: 1800000ignore:urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/api/v1/auth/login然后用以下命令运行seata容器 docker run --name seata-server \-itd \-p 8091:8091 \-p 7091:7091 \-e STORE_MODEdb \-e SEATA_IP192.168.1.102 \-e SEATA_PORT8091 \-v path/to/application.yml:/seata-server/resources/application.yml \seataio/seata-server:2.0.0五、初步检验Seata部署情况 访问Seata网页这里是http://192.168.1.102:7091/输入两个seata后进入系统。 Nacos网页上查看Seata服务详情ip为宿主机ip不要是docker容器内网ip就行。 六、微服务使用Seata 1.引入依赖 !--seata--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-seata/artifactIdexclusions!--版本较低1.3.0因此排除--exclusionartifactIdseata-spring-boot-starter/artifactIdgroupIdio.seata/groupId/exclusion/exclusions/dependency!--seata starter 采用2.0.0版本--dependencygroupIdio.seata/groupIdartifactIdseata-spring-boot-starter/artifactIdversion2.0.0/version/dependency2. application.yml配置 seata:registry:type: nacosnacos: # tcserver-addr: localhost:8848namespace: group: DEFAULT_GROUPapplication: seata-tc-server # tc服务在nacos中的服务名称cluster: SHusername: nacospassword: nacostx-service-group: seata-demo # 事务组根据这个获取tc服务的cluster名称service:vgroup-mapping: # 事务组与TC服务cluster的映射关系seata-demo: SH启动微服务后除了可以看微服务的日志外还可以看Seata容器日志出现类似以下日志即为正常 2023-12-30 21:37:35 digestseata-demo,192.168.222.1,1703943453643 2023-12-30 21:37:35 timestamp1703943453643 2023-12-30 21:37:35 authVersionV4 2023-12-30 21:37:35 vgroupseata-demo 2023-12-30 21:37:35 ip192.168.222.1 2023-12-30 21:37:35 },channel:[id: 0x7f82356a, L:/172.17.0.4:8091 - R:/172.17.0.1:35092],client version:2.0.0 2023-12-30 21:37:36 21:37:36.389 INFO --- [rverHandlerThread_1_6_500] [rocessor.server.RegRmProcessor] [ onRegRmMessage] [] : RM register success,message:RegisterRMRequest{resourceIdsjdbc:mysql://localhost:3306/seata_demo, version2.0.0, applicationIdorder-service, transactionServiceGroupseata-demo, extraDatanull},channel:[id: 0x3a9f4e29, L:/172.17.0.4:8091 - R:/172.17.0.1:35096],client version:2.0.0七、遇到的坑 1. Nacos显示Seata服务的ip为容器内网ip导致微服务无法访问 网上看到以下各种方法均无效 使用host网络application.yml指定spring.cloud.nacos.discovery.ip 以下方法有效 容器创建时使用 -e SEATA_IP宿主机ip 2. 使用host宿主机网络 一开始为了图方便给Nacos用过host网络结果容器程序运行正常打不开网页玄学的一批。 也给Seata使用host网络为了配置文件里面不用自己手动查询nacos和mysql的ip结果然并卵。 3. seata The distribute lock table is not config, please create the target table and config it 这个是因为很多文档都只有3张表少了一张。 官方文档说store.db.distributedLockTable是 1.5.1版本新增的参数。 https://seata.io/zh-cn/docs/user/configurations 但是很多文档和博客都只有3张表第4张在哪里呢 在这里 https://seata.io/zh-cn/docs/ops/deploy-by-docker-compose.html 里面写到nacos注册中心db存储时会提供 [建表脚本] 以及最后最重要的是要在Nacos配置中心配置seataServer.properties时要多加一行 store.db.distributedLockTabledistributed_lock这点在官网文档都没有提及。
http://www.pierceye.com/news/731568/

相关文章:

  • 校园文化建设图片网站浅析图书馆门户网站建设
  • 网站开发与应用案例教程哈尔滨自助建站系统
  • 网站关键词排名seo百度网址链接是多少
  • 电子商务网站的建设收益直播软件的app
  • 遵义在百度做个网站多少钱如何建立企业网站
  • 我想做个网站手机网站建设优势
  • 网站制作毕业设计滁州市建设局网站
  • saas建站和开源建站的区别比较高端的网页
  • 新公司董事长致辞做网站wordpress二次开发手册chm
  • 网站显示建设中大型企业网站制作
  • 长沙自动化网站建设wordpress 自定义栏目 调用
  • 吉大建设工程学院官方网站wordpress 文章图片插件
  • 赤峰中国建设招标网站网页设计素材网站推荐
  • 天津网站建设电焊机wordpress主题jenney
  • 个人网站制作wordpress英文注册查询网站
  • 哪里有免费网站空间申请wordpress重定向插件
  • 福州微网站开发什么样的网站快速盈利
  • 吉首市建设局官方网站一对一直播软件开发定制
  • 网站开发验收单做的网站如何被百度搜到
  • 网站的数据库是什么两学一做网站链接
  • 做窗帘网站济南网络科技公司排名
  • 广东省住房城乡建设部网站哪个网站可以做加工代理的
  • dede网站源码打包下载wordpress登不进后台
  • 建设内部网站目的国内贸易在那个网站上做
  • 用什么建设网站注册深圳公司代理
  • 网站平台建设方案书百度云资源搜索入口
  • 网站 团队博罗网站建设哪家便宜
  • wordpress列表分页枣庄seo外包
  • 知了网站后台推广形式有哪几种
  • 成品图片的网站在哪里找wordpress开启防盗链