2019年4月

虽然 Linux 的设计是安全的,但还是存在许多安全漏洞的风险,弱密码就是其中之一。作为系统管理员,你必须为用户提供一个强密码。因为大部分的系统漏洞就是由于弱密码而引发的。本教程描述了在基于 DEB 系统的 Linux,比如 Debian、Ubuntu、Linux Mint 等和基于 RPM 系统的 Linux,比如 RHEL、CentOS、Scientific Linux 等的系统下设置像密码长度密码复杂度密码有效期等密码策略。

在基于 DEB 的系统中设置密码长度

默认情况下,所有的 Linux 操作系统要求用户密码长度最少 6 个字符。我强烈建议不要低于这个限制。并且不要使用你的真实名称、父母、配偶、孩子的名字,或者你的生日作为密码。即便是一个黑客新手,也可以很快地破解这类密码。一个好的密码必须是至少 6 个字符,并且包含数字、大写字母和特殊符号。

通常地,在基于 DEB 的操作系统中,密码和身份认证相关的配置文件被存储在 /etc/pam.d/ 目录中。

设置最小密码长度,编辑 /etc/pam.d/common-password 文件;

$ sudo nano /etc/pam.d/common-password

找到下面这行:

password [success=2 default=ignore] pam_unix.so obscure sha512

在末尾添加额外的文字:minlen=8。在这里我设置的最小密码长度为 8

password [success=2 default=ignore] pam_unix.so obscure sha512 minlen=8

保存并关闭该文件。这样一来,用户现在不能设置小于 8 个字符的密码。

在基于 RPM 的系统中设置密码长度

在 RHEL、CentOS、Scientific Linux 7.x 系统中, 以 root 身份执行下面的命令来设置密码长度。

# authconfig --passminlen=8 --update

查看最小密码长度,执行:

# grep "^minlen" /etc/security/pwquality.conf

输出样例:

minlen = 8

在 RHEL、CentOS、Scientific Linux 6.x 系统中,编辑 /etc/pam.d/system-auth 文件:

# nano /etc/pam.d/system-auth

找到下面这行并在该行末尾添加:

password requisite pam_cracklib.so try_first_pass retry=3 type= minlen=8

如上设置中,最小密码长度是 8 个字符。

在基于 DEB 的系统中设置密码复杂度

此设置会强制要求密码中应该包含多少类型,比如大写字母、小写字母和其他字符。

首先,用下面命令安装密码质量检测库:

$ sudo apt-get install libpam-pwquality

之后,编辑 /etc/pam.d/common-password 文件:

$ sudo nano /etc/pam.d/common-password

为了设置密码中至少有一个大写字母,则在下面这行的末尾添加文字 ucredit=-1

password requisite pam_pwquality.so retry=3 ucredit=-1

设置密码中至少有一个小写字母,如下所示。

password requisite pam_pwquality.so retry=3 lcredit=-1

设置密码中至少含有其他字符,如下所示。

password requisite pam_pwquality.so retry=3 ocredit=-1

正如你在上面样例中看到的一样,我们设置了密码中至少含有一个大写字母、一个小写字母和一个特殊字符。你可以设置被最大允许的任意数量的大写字母、小写字母和特殊字符。

你还可以设置密码中被允许的字符类的最大或最小数量。

下面的例子展示了设置一个新密码中被要求的字符类的最小数量:

password requisite pam_pwquality.so retry=3 minclass=2

在基于 RPM 的系统中设置密码复杂度

在 RHEL 7.x / CentOS 7.x / Scientific Linux 7.x 中:

设置密码中至少有一个小写字母,执行:

# authconfig --enablereqlower --update

查看该设置,执行:

# grep "^lcredit" /etc/security/pwquality.conf

输出样例:

lcredit = -1

类似地,使用以下命令去设置密码中至少有一个大写字母:

# authconfig --enablerequpper --update

查看该设置:

# grep "^ucredit" /etc/security/pwquality.conf

输出样例:

ucredit = -1

设置密码中至少有一个数字,执行:

# authconfig --enablereqdigit --update

查看该设置,执行:

# grep "^dcredit" /etc/security/pwquality.conf

输出样例:

dcredit = -1

设置密码中至少含有一个其他字符,执行:

# authconfig --enablereqother --update

查看该设置,执行:

# grep "^ocredit" /etc/security/pwquality.conf

输出样例:

ocredit = -1

RHEL 6.x / CentOS 6.x / Scientific Linux 6.x systems 中,以 root 身份编辑 /etc/pam.d/system-auth 文件:

# nano /etc/pam.d/system-auth

找到下面这行并且在该行末尾添加:

password requisite pam_cracklib.so try_first_pass retry=3 type= minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1

如上设置中,密码必须要至少包含 8 个字符。另外,密码必须至少包含一个大写字母、一个小写字母、一个数字和一个其他字符。

在基于 DEB 的系统中设置密码有效期

现在,我们将要设置下面的策略。

  1. 密码被使用的最长天数。
  2. 密码更改允许的最小间隔天数。
  3. 密码到期之前发出警告的天数。

设置这些策略,编辑:

$ sudo nano /etc/login.defs

在你的每个需求后设置值。

PASS_MAX_DAYS 100
PASS_MIN_DAYS 0
PASS_WARN_AGE 7

正如你在上面样例中看到的一样,用户应该每 100 天修改一次密码,并且密码到期之前的 7 天开始出现警告信息。

请注意,这些设置将会在新创建的用户中有效。

为已存在的用户设置修改密码的最大间隔天数,你必须要运行下面的命令:

$ sudo chage -M <days> <username>

设置修改密码的最小间隔天数,执行:

$ sudo chage -m <days> <username>

设置密码到期之前的警告,执行:

$ sudo chage -W <days> <username>

显示已存在用户的密码,执行:

$ sudo chage -l sk

这里,sk 是我的用户名。

输出样例:

Last password change : Feb 24, 2017
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7

正如你在上面看到的输出一样,该密码是无限期的。

修改已存在用户的密码有效期,

$ sudo chage -E 24/06/2018 -m 5 -M 90 -I 10 -W 10 sk

上面的命令将会设置用户 sk 的密码期限是 24/06/2018。并且修改密码的最小间隔时间为 5 天,最大间隔时间为 90 天。用户账号将会在 10 天后被自动锁定,而且在到期之前的 10 天前显示警告信息。

在基于 RPM 的系统中设置密码效期

这点和基于 DEB 的系统是相同的。

在基于 DEB 的系统中禁止使用近期使用过的密码

你可以限制用户去设置一个已经使用过的密码。通俗的讲,就是说用户不能再次使用相同的密码。

为设置这一点,编辑 /etc/pam.d/common-password 文件:

$ sudo nano /etc/pam.d/common-password

找到下面这行并且在末尾添加文字 remember=5

password        [success=2 default=ignore]      pam_unix.so obscure use_authtok try_first_pass sha512 remember=5

上面的策略将会阻止用户去使用最近使用过的 5 个密码。

在基于 RPM 的系统中禁止使用近期使用过的密码

这点对于 RHEL 6.x 和 RHEL 7.x 和它们的衍生系统 CentOS、Scientific Linux 是相同的。

以 root 身份编辑 /etc/pam.d/system-auth 文件,

# vi /etc/pam.d/system-auth

找到下面这行,并且在末尾添加文字 remember=5

password     sufficient     pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5

现在你了解了 Linux 中的密码策略,以及如何在基于 DEB 和 RPM 的系统中设置不同的密码策略。

就这样,我很快会在这里发表另外一天有趣而且有用的文章。在此之前请保持关注。如果您觉得本教程对你有帮助,请在您的社交,专业网络上分享并支持我们。


via: https://www.ostechnix.com/how-to-set-password-policies-in-linux/

作者:SK 选题:lujun9972 译者:liujing97 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

头图

Big News

微信朋友圈@好友评论互动能力全量开放:根据微信广告助手的最新推文,自 2019 年 4 月 8 日起,朋友圈广告@好友评论互动能力全量开放。所有朋友圈广告默认具备@好友评论互动的能力。用户收到朋友圈广告后,可以跟点赞、评论一样,在广告的评论区@好友与其进行互动。

网友评论:“平时拉黑屏蔽好友已经够烦了,还要出艾特”,“都别艾特我,买不起[doge]“

朋友圈的各种转发已经让不少人开始逃离朋友圈了,广告的 @ 评论会成为一个新的让人厌恶朋友圈的点。此外,基于广告的社交看起来更像是一个伪需求,回想一下,你上一次和朋友讨论一个广告是什么时候?

信息来源:【微信广告助手】

Quick News

  • 京东坚决淘汰三类人,开启裁员步伐:近日网络社交应用“脉脉”上爆出京东坚决裁员三类人“不能拼搏的人”、“不能干的人”、“性价比低的人”,因日热议。京东回应此为片面解读。【微博】
  • 首条 3D 刷脸地铁在济南开启运营:济南地铁一号线开启商业运营,该线路是目前国内首条采用3D人脸识别闸机的地铁线路,乘客在入站的时候对准设备进行扫描,只需要2秒就能过闸机。【站长之家】
  • 5G移动网被吐槽,信号太难找,速度不稳定:外媒 CNET 编辑 Jessica Dolcourt 对美国电信巨头 Verizon 公司的 5G 网络进行了线下的街头测试,并评价 “我特么就一个词:沮丧极了,简直疯了!(all I can honestly say after a long day is that I found it confusing. Frustrating. Absolutely insane. )”。【CNET】

科技先锋 Linus Torvalds 表示,当今社交媒体运作的方式暗中鼓励人们的不良行为。“它们就是一种恶疾。”

让我们来数数当今社会里还有多少不对社交媒体表示“喜欢”的人。

Linus Torvalds,芬兰裔美国人,自由软件 Linux 的创始人。Linux 是一款同苹果的 MacOS 和微软的 Windows 竞争的操作系统。在本周 Linux Journal 的采访中,Torvalds 在谈到 Facebook、Twitter 和 Instagram 时并没有小心翼翼地斟酌词语,而是大胆表示它们是如今技术产业最大的毒瘤之一。

“我真的很讨厌现代的社交媒体‘ —— Twitter,Facebook,Instagram。它们就是一种恶疾,它们鼓励人们作出不良行为。”这是他对于『在现代科技产业中你想修正什么』这个问题的回答。“那些喜欢’和`分享‘的机制完全就是垃圾,对于内容质量的把控根本没有帮助。事实上,它起到了反效果。为了吸引更大的用户群体和尽可能多的用户点击,那些传播广泛的文章都旨在引起人们强烈的情感反应,因此它们总是打破道德底线。”

Torvlads,这位在 1994 年推出初版 Linux 的 Linux 创始人,他在技术社区里就以言行粗鲁闻名。不过他并不是唯一一个不喜欢社交媒体的人。

研究表示,人们对于社交媒体的好感度在近几年显著下降。主要是因为,它们在一定程度上促进了骚扰、不良行为甚至恐怖活动。这给 Facebook、Twitter 以及 Instagram 蒙上了一层阴影,即使它们的正常活动也受到人们猜忌。

Torvalds 认为,导致这些事故的根本原因是匿名性。

“如果你不把你的真实姓名放在你的垃圾(或者你分享 & 喜欢的垃圾)上面,那么它们就是垃圾。”反之,他认为,人们不应该在没有首先证明自己身份的情况下分享或喜欢事物。

Facebook、Twitter 和 Instagram 目前并没有回应记者的置评要求。


via: https://www.cnet.com/news/facebook-twitter-and-instagram-are-garbage-says-linux-founder/

作者:Ian Sherr 译者:acyanbird 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

两天前我们写了一篇关于 autocd 的文章,它是一个内置的 shell 变量,可以帮助我们在没有 cd 命令的情况下导航到目录中

如果你想回到上一级目录,那么你需要输入 cd ..

如果你想回到上两级目录,那么你需要输入 cd ../..

这在 Linux 中是正常的,但如果你想从第九级目录回到第三级目录,那么使用 cd 命令是很糟糕的。

有什么解决方案呢?

是的,在 Linux 中有一个解决方案。我们可以使用 bd 命令来轻松应对这种情况。

什么是 bd 命令?

bd 命令允许用户快速返回 Linux 中的父目录,而不是反复输入 cd ../../..

你可以列出给定目录的内容,而不用提供完整路径 ls bd Directory_Name。它支持以下其它命令,如 lslnechoziptar 等。

另外,它还允许我们执行 shell 文件而不用提供完整路径 bd p/shell_file.sh

如何在 Linux 中安装 bd 命令?

除了 Debian/Ubuntu 之外,bd 没有官方发行包。因此,我们需要手动执行方法。

对于 Debian/Ubuntu 系统,使用 APT-GET 命令APT 命令来安装 bd

$ sudo apt install bd

对于其它 Linux 发行版,使用 wget 命令下载 bd 可执行二进制文件。

$ sudo wget --no-check-certificate -O /usr/local/bin/bd https://raw.github.com/vigneshwaranr/bd/master/bd

设置 bd 二进制文件的可执行权限。

$ sudo chmod +rx /usr/local/bin/bd

.bashrc 文件中添加以下值。

$ echo 'alias bd=". bd -si"' >> ~/.bashrc

运行以下命令以使更改生效。

$ source ~/.bashrc

要启用自动完成,执行以下两个步骤。

$ sudo wget -O /etc/bash_completion.d/bd https://raw.github.com/vigneshwaranr/bd/master/bash_completion.d/bd  
$ sudo source /etc/bash_completion.d/bd

我们已经在系统上成功安装并配置了 bd 实用程序,现在是时候测试一下了。

我将使用下面的目录路径进行测试。

运行 pwd 命令或 dirs 命令,亦或是 tree 命令来了解你当前的路径。

daygeek@Ubuntu18:/usr/share/icons/Adwaita/256x256/apps$ pwd
或
daygeek@Ubuntu18:/usr/share/icons/Adwaita/256x256/apps$ dirs

/usr/share/icons/Adwaita/256x256/apps

我现在在 /usr/share/icons/Adwaita/256x256/apps 目录,如果我想快速跳转到 icons 目录,那么只需输入以下命令即可。

daygeek@Ubuntu18:/usr/share/icons/Adwaita/256x256/apps$ bd icons
/usr/share/icons/
daygeek@Ubuntu18:/usr/share/icons$

甚至,你不需要输入完整的目录名称,也可以输入几个字母。

daygeek@Ubuntu18:/usr/share/icons/Adwaita/256x256/apps$ bd i
/usr/share/icons/
daygeek@Ubuntu18:/usr/share/icons$ 

注意:如果层次结构中有多个同名的目录,bd 会将你带到最近的目录。(不考虑直接的父目录)

如果要列出给定的目录内容,使用以下格式。它会打印出 /usr/share/icons/ 的内容。

$ ls -lh `bd icons`
或
daygeek@Ubuntu18:/usr/share/icons/Adwaita/256x256/apps$ ls -lh `bd i`
total 64K
drwxr-xr-x 12 root root 4.0K Jul 25  2018 Adwaita
lrwxrwxrwx  1 root root   51 Feb 25 14:32 communitheme -> /snap/communitheme/current/share/icons/communitheme
drwxr-xr-x  2 root root 4.0K Jul 25  2018 default
drwxr-xr-x  3 root root 4.0K Jul 25  2018 DMZ-Black
drwxr-xr-x  3 root root 4.0K Jul 25  2018 DMZ-White
drwxr-xr-x  9 root root 4.0K Jul 25  2018 gnome
drwxr-xr-x  3 root root 4.0K Jul 25  2018 handhelds
drwxr-xr-x 20 root root 4.0K Mar  9 14:52 hicolor
drwxr-xr-x  9 root root 4.0K Jul 25  2018 HighContrast
drwxr-xr-x 12 root root 4.0K Jul 25  2018 Humanity
drwxr-xr-x  7 root root 4.0K Jul 25  2018 Humanity-Dark
drwxr-xr-x  4 root root 4.0K Jul 25  2018 locolor
drwxr-xr-x  3 root root 4.0K Feb 25 15:46 LoginIcons
drwxr-xr-x  3 root root 4.0K Jul 25  2018 redglass
drwxr-xr-x 10 root root 4.0K Feb 25 15:46 ubuntu-mono-dark
drwxr-xr-x 10 root root 4.0K Feb 25 15:46 ubuntu-mono-light
drwxr-xr-x  3 root root 4.0K Jul 25  2018 whiteglass

如果要在父目录中的某个位置执行文件,使用以下格式。它将运行 shell 文件 /usr/share/icons/users-list.sh

$ `bd i`/users-list.sh
或
daygeek@Ubuntu18:/usr/share/icons/Adwaita/256x256/apps$ `bd icon`/users-list.sh
daygeek
thanu
renu
2gadmin
testuser
demouser
sudha
suresh
user1
user2
user3

如果你位于 /usr/share/icons/Adwaita/256x256/apps 中,想要导航到不同的父目录,使用以下格式。以下命令将导航到 /usr/share/icons/gnome 目录。

$ cd `bd i`/gnome
或
daygeek@Ubuntu18:/usr/share/icons/Adwaita/256x256/apps$ cd `bd icon`/gnome
daygeek@Ubuntu18:/usr/share/icons/gnome$ 

如果你位于 /usr/share/icons/Adwaita/256x256/apps ,你想在 /usr/share/icons/ 下创建一个新目录,使用以下格式。

$ daygeek@Ubuntu18:/usr/share/icons/Adwaita/256x256/apps$ sudo mkdir `bd icons`/2g

daygeek@Ubuntu18:/usr/share/icons/Adwaita/256x256/apps$ ls -ld `bd icon`/2g
drwxr-xr-x 2 root root 4096 Mar 16 05:44 /usr/share/icons//2g

本教程允许你快速返回到特定的父目录,但没有快速前进的选项。

我们有另一个解决方案,很快就会提出,请保持关注。


via: https://www.2daygeek.com/bd-quickly-go-back-to-a-specific-parent-directory-in-linux/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:MjSeven 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

现在上网已经很方便了,但技术上会有限制。看到技术的发展,我很惊讶,但与此同时,各种地方也都会出现衰退。

当你搜索有关其他 Linux 发行版的某些东西时,大多数时候你会得到的是一个第三方的链接,但是对于 Arch Linux 来说,每次你都会得到 Arch Wiki 页面的结果。

因为 Arch Wiki 提供了除第三方网站以外的大多数解决方案。

到目前为止,你也许可以使用 Web 浏览器为你的 Arch Linux 系统找到一个解决方案,但现在你可以不用这么做了。

一个名为 arch-wiki-man 的工具提供了一个在命令行中更快地执行这个操作的方案。如果你是一个 Arch Linux 爱好者,我建议你阅读 Arch Linux 安装后指南,它可以帮助你调整你的系统以供日常使用。

arch-wiki-man 是什么?

arch-wiki-man 工具允许用户从命令行(CLI)中离线搜索 Arch Wiki 页面。它允许用户以 Linux Man 手册样式访问和搜索整个 Wiki 页面。

而且,你无需切换到 GUI。更新将每两天自动推送一次,因此,你的 Arch Wiki 本地副本页面将是最新的。这个工具的名字是 awmanawman 是 “Arch Wiki Man” 的缩写。

我们之前写过一篇类似工具 Arch Wiki 命令行实用程序(arch-wiki-cli)的文章。这个工具允许用户从互联网上搜索 Arch Wiki。但你需要在线使用这个实用程序。

如何安装 arch-wiki-man 工具?

arch-wiki-man 工具可以在 AUR 仓库(LCTT 译注:AUR 即 Arch 用户软件仓库 Arch User Repository )中获得,因此,我们需要使用 AUR 工具来安装它。有许多 AUR 工具可用,而且我们曾写了一篇关于流行的 AUR 辅助工具: Yaourt AUR helperPacker AUR helper 的文章。

$ yaourt -S arch-wiki-man

$ packer -S arch-wiki-man

或者,我们可以使用 npm 包管理器来安装它,确保你已经在你的系统上安装了 NodeJS。然后运行以下命令来安装它。

$ npm install -g arch-wiki-man

如何更新 Arch Wiki 本地副本?

正如前面更新的那样,更新每两天自动推送一次,也可以通过运行以下命令来完成更新。

$ sudo awman-update
[sudo] password for daygeek:
[email protected] /usr/lib/node_modules/arch-wiki-man
└── [email protected]

arch-wiki-md-repo has been successfully updated or reinstalled.

awman-update 是一种更快、更方便的更新方法。但是,你也可以通过运行以下命令重新安装 arch-wiki-man 来获取更新。

$ yaourt -S arch-wiki-man

$ packer -S arch-wiki-man

如何在终端中使用 Arch Wiki ?

它有着简易的接口且易于使用。想要搜索,只需要运行 awman 加搜索项目。一般语法如下所示。

$ awman Search-Term

如何搜索多个匹配项?

如果希望列出包含 “installation” 字符串的所有结果的标题,运行以下格式的命令,如果输出有多个结果,那么你将会获得一个选择菜单来浏览每个项目。

$ awman installation

详细页面的截屏:

在标题和描述中搜索给定的字符串

-d--desc-search 选项允许用户在标题和描述中搜索给定的字符串。

$ awman -d mirrors

$ awman --desc-search mirrors
? Select an article: (Use arrow keys)
❯ [1/3] Mirrors: Related articles
  [2/3] DeveloperWiki-NewMirrors: Contents
  [3/3] Powerpill: Powerpill is a pac

在内容中搜索给定的字符串

-k--apropos 选项也允许用户在内容中搜索给定的字符串。但须注意,此选项会显著降低搜索速度,因为此选项会扫描整个 Wiki 页面的内容。

$ awman -k openjdk

$ awman --apropos openjdk
? Select an article: (Use arrow keys)
❯ [1/26] Hadoop: Related articles
 [2/26] XDG Base Directory support: Related articles
 [3/26] Steam-Game-specific troubleshooting: See Steam/Troubleshooting first.
 [4/26] Android: Related articles
 [5/26] Elasticsearch: Elasticsearch is a search engine based on Lucene. It provides a distributed, mul..
 [6/26] LibreOffice: Related articles
 [7/26] Browser plugins: Related articles
(Move up and down to reveal more choices)

在浏览器中打开搜索结果

-w--web 选项允许用户在 Web 浏览器中打开搜索结果。

$ awman -w AUR helper

$ awman --web AUR helper

以其他语言搜索

想要查看支持的语言列表,请运行以下命令。

$ awman --list-languages
arabic
bulgarian
catalan
chinesesim
chinesetrad
croatian
czech
danish
dutch
english
esperanto
finnish
greek
hebrew
hungarian
indonesian
italian
korean
lithuanian
norwegian
polish
portuguese
russian
serbian
slovak
spanish
swedish
thai
ukrainian

使用你的首选语言运行 awman 命令以查看除英语以外的其他语言的结果。

$ awman -l chinesesim deepin


via: https://www.2daygeek.com/arch-wiki-man-a-tool-to-browse-the-arch-wiki-pages-as-linux-man-page-from-offline/

作者:Prakash Subramanian 选题:lujun9972 译者:Auk7F7 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Thanks, Fescar ️

Hello, Seata ?

升级后,一起再出发。

近日,分布式事务 Fescar 更名为 Seata。在 GitHub 上的项目地址相应的变更成: https://github.com/seata/seata

分布式事务产生背景

随着互联网技术快速发展,数据规模增大,分布式系统越来越普及,采用分布式数据库或者跨多个数据库的应用在中大规模企业普遍存在,而一个业务活动执行过程中可能会被意外中断(比如网络超时、数据库超时、机器重启、机器宕机等),我们很难保证一个业务活动的所有操作能 100% 全部成功。因此,微服务化过程中急需一种能保证业务一致性的方案,分布式事务应运而生。

分布式事务在阿里巴巴和蚂蚁金服的发展历程

作为覆盖金融、云计算、新零售等多重领域的阿里经济体两端,蚂蚁金服和阿里巴巴在分布式事务上共同发力,在内部技术架构的演进中沉淀实践经验,通过不断的技术迭代支撑高速增长的 618、双十一等高并发业务场景。2007 开始,蚂蚁金服自主研发分布式事务中间件 XTS(eXtended Transaction Service),在内部广泛应用并解决金融核心场景下的跨数据库、跨服务数据一致性问题,最终以 DTX(Distributed Transaction eXtended)的云产品化展现并对外开放。与此同时,阿里巴巴中间件团队发布 TXC(Taobao Transaction Constructor),为集团内应用提供分布式事务服务,经过多年的技术沉淀,于 2016 年产品化改造为 GTS(Global Transaction Service),通过阿里云解决方案在众多外部客户中落地实施。

2019 年 1 月,基于技术积累,阿里巴巴中间件团队发起了开源项目 Fescar(Fast & EaSy Commit And Rollback, Fescar),和社区一起共建分布式事务解决方案。Fescar 为解决微服务架构下的分布式事务问题交出了一份与众不同的答卷。而 Fescar 的愿景是让分布式事务的使用像本地事务的使用一样简单和高效。最终的目标是希望可以让 Fescar 适用于所有的分布式事务场景。

为了达到适用于更多的分布式事务业务场景的目标,蚂蚁金服加入 Fescar 社区共建,在 Fescar 0.4.0 版本中加入了 TCC 模式。

更开放的分布式事务

蚂蚁金服的加入引发了社区核心成员的讨论,为了达到适用于所有的分布式事务业务场景的目标,也为了社区更中立、更开放、生态更加丰富,社区核心成员们决定进行品牌升级,改名 Seata。Seata 意为:Simple Extensible Autonomous Transaction Architecture,是一套一站式分布式事务解决方案。

项目地址:https://github.com/seata/seata

Hello Seata!

分布式事务 Seata 的近期规划

Seata 目前产生于阿里巴巴和蚂蚁金服的业务需求,而市场上真实的生产情况更加多样化。我们决定建立一个完全中立的分布式事务组织,未来,希望更多的企业、开发者能够加入一起创造。

自开源以来,Seata 一直受益于社区的参与者的贡献。感谢开发者们的关注和贡献,截止目前,分布式事务 Seata 已经拥有超过 7000 的 Star ,超 55 位 Contributors,开发者们的加入,使得社区的生态更加丰富也更有活力。

2019 年 5 月,Seata 将加入服务端 HA 集群支持,从此,Seata 可以达到生产环境使用的标准。

欢迎对分布式事务有热情的开发者们加入社区的共建中来,为 Seata 带来更多的想象空间。

关于蚂蚁金融科技开源,点击“此处”可了解更多。