分布式事务实践解决数据一致性

196 阅读2分钟

download:分布式事务实践解决数据一致性

基于微服务架构的分布式系统应用越来越多,而分布式系统下的事务,一直没有一个简单统一的实现方案。本课程从本地事务出发,介绍了分布式系统和Spring cloud框架及其使用,以及分布式事务的几种实现模式。课程中还提供了大量的实例,让同学们在实战过程中,掌握分布式事务实现方式与思路。

适合人群

中级Java开发者,致力于向架构师发展的有志青年

技术储备要求

Java Web开发基础,Spring框架基础,事务的基本概念

了解分布式系统基本概念

import time
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
# 启动Chromedriver,并与Chromedriver开启会话
driver = webdriver.Chrome()
driver.maximize_window()
driver.get("http://www.baidu.com")
# 第一步:实例化ActionChains
ac = ActionChains(driver)
# 第二步:定位要操作的元素
ele = driver.find_element_by_xpath('//span[@id="s-usersetting-top"]')
# 第三步:执行对应的操作
ac.move_to_element(ele)        # 悬浮操作
# 第四步,释放鼠标动作
ac.perform()
# 点击悬停出来的页面上的元素
wait = WebDriverWait(driver, 10)
loc = (By.XPATH, '//a[@class="setpref"]')
wait.until(EC.visibility_of_element_located(loc))
driver.find_element(*loc).click()
time.sleep(2)
driver.quit()def move_to():
    print("正在挪动")
def click():
    print('点击')
actions = []
actions.append(move_to)
actions.append(click)
for action in actions:    # perform
    # action = move_to
    action()import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
# 启动Chromedriver,并与Chromedriver开启会话
driver = webdriver.Chrome()
driver.maximize_window()
driver.get("http://www.baidu.com")
driver.find_element_by_id('kw').send_keys("selenium")  # 没有点击百度一下也没有回车不会呈现搜索结果
time.sleep(2)
driver.find_element_by_id('kw').send_keys(Keys.CONTROL,'a')     # 全选然后输入新内容python
driver.find_element_by_id('kw').send_keys('python', Keys.ENTER)      # 用回车替代点击搜索按钮
time.sleep(2)
# driver.find_element_by_id('kw').send_keys('python')  # 也能够单独先输内容
# driver.find_element_by_id('kw').send_keys(Keys.ENTER) # 再回车
time.sleep(2)
driver.quit()<html>
<head>
    <meta charset="UTF-8">
    <title>下拉框演示</title>
</head>
<body>
<select id="province">
    <option value="sj">深圳</option>
    <option value="gd">广东</option>
    <option value="sh">上海</option>
    <option value="bj">北京</option>
</select>
<select id="city">
    <option value="sj">深圳</option>
    <option value="gz">广州</option>
    <option value="sh">上海</option>
    <option value="bj">北京</option>
</select>
</body>
</html>​ 演示代码如下:import time
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support.ui import Select
# 启动Chromedriver,并与Chromedriver开启会话
driver = webdriver.Chrome()
driver.maximize_window()
driver.get(r"D:\learn\test.html")
wait = WebDriverWait(driver, 10)
# 找到select元素
ele = driver.find_element_by_id('province')
# 实例化Select类
s = Select(ele)
time.sleep(1)
s.select_by_value('gd')   # 经过value属性选值
time.sleep(2)
s.select_by_index(2)   # 经过下标index选值
time.sleep(2)
s.select_by_visible_text('北京')   # 经过文本内容选值
time.sleep(2)
driver.quit()import time
import datetime
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
# 启动Chromedriver,并与Chromedriver开启会话
driver = webdriver.Chrome()
# driver.maximize_window()
driver.get("https://www.12306.cn/")
wait = WebDriverWait(driver, 30)
loc = (By.XPATH, '//input[@id="train_date"]')
wait.until(EC.visibility_of_element_located(loc))
js = 'document.getElementById("train_date").readOnly=false;'
driver.execute_script(js)
time.sleep(2)
# 清空日历,重新输入日期
driver.find_element(*loc).clear()
today = datetime.date.today()
tomorrow = today + datetime.timedelta(days=1)
driver.find_element_by_id('train_date').send_keys(str(tomorrow))
time.sleep(2)
driver.quit()