Giter Site home page Giter Site logo

apache / incubator-seata-website Goto Github PK

View Code? Open in Web Editor NEW
89.0 20.0 102.0 416.71 MB

Apache Seata(incubating) Website

Home Page: https://seata.apache.org/

License: Apache License 2.0

HTML 4.93% CSS 0.06% JavaScript 60.15% SCSS 19.32% TypeScript 15.38% Shell 0.16%
docsite seata-website distributed-transaction article

incubator-seata-website's Introduction

Seata Official Website

CI Status

All website material of https://seata.apache.org, which uses a open source framework: Docusaurus.

README.md

Quick Start

  1. npm install

  2. npm run start for starting Seata's English webpage in your local machine.

    npm run start-zh-cn for starting Seata's Chinese Simplified webpage in your local machine.

  3. Visit

localhost:3000/

Build

  1. npm run build

  2. npm run serve

  3. Visit

localhost:3000/

Requirements

Base docusaurus 2.4.1
Node.js version 19.5.0

Note for i18n

Please be noted that locale switching function doesn't work if you start the website in development mode using npm run start-zh-cn or npm run start. Please run it in production mode using the build-and-serve process to enable the locale switching function.

Overview of the Website Structure

We use the Docusaurus internationalization (i18n) to support both English(en) and Chinese Simplified(zh-cn) Seata Website. Besides, we apply Docusaurus Versioning to get versioned docs.

Our website stucture with i18n and versioning looks like below:

website  
├── sidebars.json        # sidebar for the current docs version
├── docs                 # docs directory for the current docs version
│   ├── foo  
│   │   └── bar.md       # https://mysite.com/docs/next/foo/bar  
│   └── hello.md         # https://mysite.com/docs/next/hello  
├── versions.json        # file to indicate what versions are available
├── versioned_docs  
│   ├── version-1.1.0  
│   │   ├── foo  
│   │   │   └── bar.md   # https://mysite.com/docs/foo/bar  
│   │   └── hello.md  
│   └── version-1.0.0  
│       ├── foo  
│       │   └── bar.md   # https://mysite.com/docs/1.0.0/foo/bar  
│       └── hello.md  
├── versioned_sidebars  
│   ├── version-1.1.0-sidebars.json  
│   └── version-1.0.0-sidebars.json  
├── blog 
├── docusaurus.config.js  
├── package.json  
├── i18n
│   ├── en
│   │   ├── docusaurus-plugin-content-docs
│   │   │   ├── current
│   │   │   ├── version-1.0.0
│   │   │   └── version-1.1.0
│   │   ├── docusaurus-plugin-content-blog
│   │   └── ...
│   └── zh-cn
│   │   ├── docusaurus-plugin-content-docs
│   │   │   ├── current
│   │   │   ├── version-1.0.0
│   │   │   └── version-1.1.0
│   │   ├── docusaurus-plugin-content-blog
│   │   └── ...

How To Add Documents

Directories Related to Adding Documents

docs - Contain the current (latest version) documents (placeholder for sidebar indexing purposes)
Document Content should be Placeholder. DO NOT DELETE.

sidebars.json - Set the sidebar for the current (latest version) documents.

versioned_docs - Contain the previous version documents (placeholder for sidebar indexing purposes)
Document Content should be Placeholder. DO NOT DELETE.

versioned_sidebars - Set the sidebar for the specific previous versions documents.

i18n-en-docusaurus-plugin-content-docs-current - Contain the actual latest version English documents.
i18n-en-docusaurus-plugin-content-docs-version-1.0.0 - Contain the actual 1.0.0 version English documents.

i18n-zh-cn-docusaurus-plugin-content-docs-current - Contains the actual latest version Simplified Chinese documents.
i18n-zh-cn-docusaurus-plugin-content-docs-version-1.0.0 - Contain the actual 1.0.0 version Simplified Chinese documents.

Summary of Adding Documents

Steps to add a document for the latest version:

  1. Place placeholder document under the docs directory which is located in the root directory.
  2. Update sidebar.js, add a new entry to the path of this document.
  3. Place the English document under the i18-en-docusaurus-plugin-content-docs-current directory.
  4. Place the Chinese document under the i18-zh-cn-docusaurus-plugin-content-docs-current directory.

Steps to add a document for a previous version:

  1. Place a placeholder document under the specific versioned_docs directory for the desired version which is located in the root directory.
  2. Update specific versioned_sidebars file, add a new entry to the path of this document.
  3. Place the English document under the i18-en-docusaurus-plugin-content-docs-specific version number directory.
  4. Place the Chinese document under the i18-zh-cn-docusaurus-plugin-content-docs-specific version number directory.

Notes: Corresponding to Chinese file and English file of same contents, and the Chinese and English file names should be consistent.

How To Add Blogs

We don't have a versioned blog, so it's easier to add a blog. When adding a new blog, it is automatically added in the Blog sidebar, where the order of blogs is sorted by the date field in SEO in the blog file.

Directories Related to Adding Blogs

blog - Contain the blogs(placeholder for blog sidebar indexing purposes)
Blog Content should be Placeholder. DO NOT DELETE.

i18n-en-docusaurus-plugin-content-blog - Contain all the actual English blogs.

i18n-zh-cn-docusaurus-plugin-content-blog - Contain all the actual Simplified Chinese blogs.

Summary of Adding Blogs

Steps to add a blog:

  1. Place placeholder blog under the blog directory which is located in the root directory.
  2. Place the English blog under the i18-en-docusaurus-plugin-content-blog directory.
  3. Place the Chinese blog under the i18-zh-cn-docusaurus-plugin-content-blog directory.

Notes: Corresponding to Chinese file and English file of same contents, and the Chinese and English file names should be consistent.

SEO Needed in Both Docs and Blogs

The type is:

---
title: title
keywords: [keywords1,keywords2]
description: some description
author: author name
date: 2018-12-29
custom_edit_url: https://github.com/apache/incubator-seata-website/blob/docusaurus/i18n/en/docusaurus-plugin-content-blog/quick-start-use-seata-and-dubbo-services.md
---

Note:

  1. title can not include :
  2. keywords must be a Array

Note for .md file

  1. Do not use un correct html tag like <img>、<br>, replace with <img /> <br />
  2. If you want show <xx>, replace with &lt;xx&gt;
  3. Use npm run lint to check the style.

Others

This is official Docusaurus docs: https://docusaurus.io/docs

incubator-seata-website's People

Contributors

bughue avatar caohdgege avatar chai001125 avatar dk-lockdown avatar ezkayotwjprkxwcuyeeb avatar funky-eyes avatar ggbocoder avatar helloworlde avatar iportman avatar jsbxyyx avatar kwtboom avatar l81893521 avatar lightclouds917 avatar liuqiufeng avatar long187 avatar lovepoem avatar lvekee avatar objcoding avatar pinocchio2018 avatar ptyin avatar purple-force avatar robynron avatar ruqinhu avatar slievrly avatar spilledyear avatar tanzzj avatar xiaochangbai avatar xingfudeshi avatar zjinlei avatar zw201913 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

incubator-seata-website's Issues

Springboot1.5的jackson版本不兼容的解决方案应该在文档中说明

Springboot1.5 集成seata报错:

环境描述:springboot:1.5.14 springcloud:Edgware.RELEASE seata:0.9.0
错误描述:正常启动,但是调用api出错,无法提交事务。
java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.jsontype.TypeSerializer.typeId(Ljava/lang/Object;Lcom/fasterxml/jackson/core/JsonToken;)Lcom/fasterxml/jackson/core/type/WritableTypeId;
解决方案:应该同时将以下三个包版本全局替换为2.9.9,在项目的根依赖加入以下依赖:

                    <dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>2.9.9</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-core</artifactId>
			<version>2.9.9</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-annotations</artifactId>
			<version>2.9.9</version>
		</dependency>

docker运行seata server, SEATA_IP 不支持127.0.0.1与0.0.0.0

在使用docker来部署seata和nacos的时候遇到了一个问题: 指定了SEATA_IP为127.0.0.1, 但是nacos的服务中显示的是容器的ip, 导致服务无法连接到seata. 但是指定了除127.0.0.1之外的ip就正常可用了. 看了下代码127.0.0.1与0.0.0.0不可用, 麻烦在文档中注明下

没有部署文档?

github上的部署文档被标记为过时,但官网又没有关于部署的文档。。。。希望官网能把部署文档加上

基于nacos+dubbo+seata的并发问题

我这边基于nacos+dubbo+seata做demo的时候发现一个并发问题,出现代码如下
@GetMapping("/less/{num}")
@GlobalTransactional
public String less(@PathVariable Integer num) throws InterruptedException, TransactionException {
// 这个是dubbo调用的其他服务的接口
moneyService.less(num);
Thread.sleep(5000);
int i = 1 / 0;
return "扣款成功";
}

@GetMapping("/less1/{num}")
@GlobalTransactional
public String less1(@PathVariable Integer num) throws TransactionException {
    moneyService.less(num);
    return "扣款成功";
}

测试时先访问上面这个,然后在访问下面这个正常的接口,结果是下面这个访问就直接返回错误,异常信息是
io.seata.rm.datasource.exec.LockWaitTimeoutException: Global lock wait timeout
根据官网配置,添加了
client:
rm:
lock:
retry-times: 10
retry-interval: 50000 但是还是不生效

seata.enable-auto-data-source-proxy=false无效

使用io.seata:seata-spring-boot-starter:1.1.0
设置seata.enable-auto-data-source-proxy=false后不生效,仍然自动代理数据源
查看SeataAutoConfiguration源码后发现SeataDataSourceBeanPostProcessor的配置判断条件为

    @ConditionalOnProperty(
        prefix = "seata",
        name = {"enableAutoDataSourceProxy"},
        havingValue = "true",
        matchIfMissing = true
    )

且经过断点调试发现SeataDataSourceBeanPostProcessor仍然被创建
application.properties中将配置名修改为seata.enableAutoDataSourceProxy=falseSeataDataSourceBeanPostProcessor不再创建,自动代理失效

registry.conf中的 config配置无法指定Nacos的配置空间

使用以下配置,用脚本同步配置的后,只能在pulic找到配置信息
config {

file、nacos 、apollo、zk、consul、etcd3

type = "nacos"

nacos {
serverAddr = "127.0.0.1:8848"
namespace = "b79035ae-5f29-44a1-afa3-480d3561c3cc"
group = "SEATA_GROUP"
username = "nacos"
password = "nacos"
}
}

快速开始文档写的不好

应该以更简单明了的方式 书写快速开始,比如 文档没有写undo_log 要在每个微服务涉及的数据库都要建立,我反复查阅博客才理解这个问题的答案。这个文档真的很不方便,很不快速开始。

Alibaba 66666

Errcode,Errmsg:failed to req API:/api//nacos/v1/ns/instance after......
java.net.ConnectException:拒绝连接(Connection refused)

what f*ck? API: /api//nacos/v1/ns 两个“//”连**啊?

image

TM能不能对commit/rollback结果进行处理?

真心求教,实际交易场景中,TM需要管理交易状态,该状态取决于RM的commit/rollback结果,目前没有找到好的实现办法。
如回滚失败需要先记为交易未知,重试后回滚成功需要记为交易失败。
FailureHandler能够解决第一个问题,但是无法解决第二个问题。
用Hook做好像也不太合适,求指点

【提案】创建新版本用户文档目录(Create user doc directory)

文档怎么撰写对于使用者至关重要,所以每个人可以在这里提出自己的意见和建议。对用户文档的目录做一个基本的草稿,可以讨论,然后分成各个issue,大家一起撰写文档

在线文档地址: http://seata.io/zh-cn/docs/overview/what-is-seata.html
中文文档编写规范参考: https://github.com/ruanyf/document-style-guide
项目地址:
注意: 本次优先编写中文版本文档,鼓励同时提交英文版本。
目录如下:

  • 用户文档

    • 认识分布式事务

      • 概念
      • 理论依据、论文
    • Seata 是什么

    • FAQ

    • 事务模式:

      • 介绍
      • AT 模式
      • TCC 模式
      • SAGA 模式
      • XA 模式(TODO)
    • 快速启动:

      • AT 模式
      • TCC 模式
      • SAGA 模式
      • XA 模式(TODO)
    • 配置:

      • 介绍
      • 注解配置
      • 文件模式
      • Zookeeper 配置中心
      • nacos 配置中心
      • Etcd 注册中心
      • Consule 配置中心
      • Apollo 配置中心
      • Spring Cloud 配置中心
    • API 支持:

    • 服务发现:

      • 介绍
      • Zookeeper 服务发现
      • Redis 服务发现
      • nacos 服务发现
      • Etcd 服务发现
      • Eureka 服务发现
      • Consule 服务发现
      • Sofa 服务发现
    • 序列化

      • 介绍
      • Seata 序列化
      • kyro 序列化
      • protobuf 序列化
      • hessian 序列化
    • 微服务框架支持

      • 介绍
      • Dubbo
      • grpc
      • motan
      • sofa-rpc
      • Spring Cloud
    • 分库分表支持

      • 介绍
      • shardingsphere
    • ORM 框架支持

      • 介绍
      • Mybatis 框架
      • mybatis-plus 框架
      • JPA
    • 数据源支持

      • Druid
      • Hikari (TODO)
    • 数据库支持

      • Mysql
      • Oracle
      • PostgreSQL
    • 服务追踪:

      • skywalking
    • Spring支持:

      • 介绍
      • 注解
    • 最佳实践

      • 配置最佳实践
      • AT 模式熔断配置
    • 测试报告

      • 单元测试
      • 性能测试
  • 开发者指南

    • SPI扩展点
    • 架构设计
    • 测试
      • 单元测试
      • 集成测试
  • 运维指南

    • 部署

      • 直接部署
      • Docker部署
      • Kubernetes部署
      • Helm部署
    • Metrics 配置

应用和seata-server在同一台设备上面可以启动,要远程访问seata-server就不行

一、seata server配置

registry {
type = "nacos"

nacos {
application = "seata-server"
serverAddr = "192.168.77.23:8848"
group = "SEATA_GROUP"
namespace = ""
cluster = "default"
username = ""
password = ""
}
config {
type = "nacos"

nacos {
serverAddr = "192.168.77.23:8848"
namespace = ""
group = "SEATA_GROUP"
username = ""
password = ""
dataId = "seataServer.properties"
}

service {
#transaction service group mapping
vgroupMapping.my_test_tx_group = "default"
#only support when registry.type=file, please don't set multiple addresses
default.grouplist = "192.168.77.23:8091"
#degrade, current not support
enableDegrade = false
#disable seata
disableGlobalTransaction = false
}

启动 nohup sh seata-server.sh -p 8091 -h 192.168.77.23 -m file &

二、应用配置
cloud:
nacos:
discovery:
server-addr: 192.168.77.23:8848
config:
enabled: true
server-addr: 192.168.77.23:8848
file-extension: properties
alibaba:
seata:
tx-service-group: my_test_tx_group

三、报错信息

重点打包在192.168.77.23服务器上面可以正常启动,本地电脑不能启动,是缺少什么配置吗?

2021-05-27 17:11:44.341 ERROR 34172 --- [ main] i.s.c.r.netty.NettyClientChannelManager : 0101 can not connect to 127.0.0.1:8091 cause:can not register RM,err:can not connect to services-server.

io.seata.common.exception.FrameworkException: can not register RM,err:can not connect to services-server.
at io.seata.core.rpc.netty.NettyClientChannelManager.doConnect(NettyClientChannelManager.java:210) ~[seata-all-1.3.0.jar:1.3.0]
at io.seata.core.rpc.netty.NettyClientChannelManager.acquireChannel(NettyClientChannelManager.java:103) ~[seata-all-1.3.0.jar:1.3.0]
at io.seata.core.rpc.netty.NettyClientChannelManager.reconnect(NettyClientChannelManager.java:175) ~[seata-all-1.3.0.jar:1.3.0]
at io.seata.core.rpc.netty.RmNettyRemotingClient.registerResource(RmNettyRemotingClient.java:181) [seata-all-1.3.0.jar:1.3.0]
at io.seata.rm.AbstractResourceManager.registerResource(AbstractResourceManager.java:121) [seata-all-1.3.0.jar:1.3.0]
at io.seata.rm.datasource.DataSourceManager.registerResource(DataSourceManager.java:146) [seata-all-1.3.0.jar:1.3.0]
at io.seata.rm.DefaultResourceManager.registerResource(DefaultResourceManager.java:114) [seata-all-1.3.0.jar:1.3.0]
at io.seata.rm.datasource.DataSourceProxy.init(DataSourceProxy.java:99) [seata-all-1.3.0.jar:1.3.0]
at io.seata.rm.datasource.DataSourceProxy.(DataSourceProxy.java:85) [seata-all-1.3.0.jar:1.3.0]
at io.seata.rm.datasource.DataSourceProxy.(DataSourceProxy.java:74) [seata-all-1.3.0.jar:1.3.0]
at com.kocla.cloud.erp.config.DataSourceConfiguration.dataSourceProxy(DataSourceConfiguration.java:38) [classes/:na]

服务器正常启动
image

[Proposal] resolve the conflict issue of generated htmls

How ot resolve the conflict issue of generated htmls ? I think we an do :

1 . Create develop branch , remove generated htmls and add the directory to .gitignore file, see pr-24
2 . The owner of this repo please make develop branch as default branch, then the source md files should be submitted here
3 . The master branch then should be as static branch for the github pages
4 . Please prepare a CI server to do the work of generating htmls . The machine can run a crontab task to monitor the code of this repo , if the develop branch have some new commits , then generate htmls and push to master branch . Noice: please make sure the develop and master branches are isolated from each other

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.