admin

  • 我的FAQ–东南亚旅游

    ·

    虽说是叫“东南亚旅游”,其实我只是去过马来西亚,希望这篇文章能慢慢丰富。

    如何获得亚航优惠打折信息?

    一般只要提前足够长的时间都可以获得相对便宜的机票。但是,有时候还是会做一些非常大力度的促销获得,例如推出0元机票等,只要在亚航的网站注册用户,用户名是你的邮箱,则亚航会把相关的信息发送到你的电子邮箱(这是我的主要渠道)。还可以关注亚航的微博帐号:亚航之家获得相关信息。

    英文不好能够预订亚航机票吗?

    现在亚航已经有了中文网站,使用中文版本已经可以直接完成预定了。但是,有些预订、管理页面还是会跳转到全英文的页面,高中英语水平足够了,不过只要有了翻译工具,英文水平也就无所谓了。

    亚航网站预订机票的主要流程有哪些?

    整个预订过程包括:

    搜索机票==>选择机票==>填写乘客信息==>选择亚航附加服务(保险、食物、额外托运等)==>付款

    没有完成付款,订单不会生效。

    亚航登机是否需要先做web check-in?

    这不是必须的,但是建议登机前一天做好web check-in。从2011年12月22日开始,亚航的国际航班柜台check-in不再需要额外的费用,但是亚航国内(马来西亚国内)航班仍然需要收取柜台check-in的费用,每人约10MR。(细则参考)

    亚航购买机票是否可以使用支付宝?

    现在(2012年2月)是可以的,这里列举了所有的亚航网站的支付方式:Payment channel。使用支付宝支付,可以帮用户省下一些Master/Visa支付时产生的手续费(有时候会是5或者10美元)。另外支付宝无需你在网站上填写信用卡号和CVV码,支付也更加简单。

    支付过程中如果如何选择支付宝付款?

    在最终进入支付页面后,选择币种为人民币(或者美元),然后点击下图中的apply按钮,就会出现支付宝连接。

    airasia.com payment with alipay

    护照没办好,是否可以购买出境机票?

    可以的。护照号可以在你完成机票预定后再补充上去。

    马来西亚签证如何办理?

    为了省事,我是通过旅行社办理的,400块一个人,小贵但省事。还可以通过淘宝上的商家代为办理,价格会便宜些。

    Lalla说,可以通过邮寄护照的方式办理,大约110块左右就搞定了。

    KLIA LCCT KLCC KL Sentral都是什么地方?

    KLIA是Kuala Lumpur International Airport(吉隆坡国际机场)的缩写(位置)。

    LCCT是Low Cost Carrier Terminal的缩写,是KLIA的一个很大的航站楼(参考)。

    KLCC是Kuala Lumpur City Centre的缩写,是吉隆坡最大的卖场,是双子塔所在的地方。

    KL Sentral是位于吉隆坡的一个交通中转站(也叫”吉隆坡中央车站“),有大巴,地铁,出租车等交通方式,附近也有很多酒店(参考)。

    在LCCT如何找到SkyBus?

    只需随便问一个LCCT工作人员或者商店店员,指指就能找到SkyBus了,你无需一个step-by-step的步骤。另外,SkyBus可以上车再买票,也无需提前买票(价格都是9RM)。

    在马来西亚如何打电话回家?

    出于成本考虑,建议到吉隆坡后重新购买一张本地的电话卡(据悉有Tune Talk、HOTLINK、DIGI等),打到国内一般也就0.25RM/每分钟(参考)。

    当然,也可以开通中国国内电话的国际漫游业务,但是,资费非常贵不说,需要押金1000元不说,即使回国了资费结算完成,1000元押金也要过两个月才能归还(这规定真是霸气啊),所以不推荐这样做。

    去马来西亚,我需要额外带什么行李吗?

    需要带一个”英标”插头转换器,另外看情况带上创可贴、感冒药;如果能有一个带GPS功能的手机地图将会非常方便你的出行(强烈建议)。

    去国外旅游会耽误学业或者工作吗?

    不会的。会享受生活,才更懂得在生活中创造价值。

  • Gmail使用技巧

    ·

    今天心情很郁闷,写篇博客缓解一下吧。

    这是一个自己列举的使用技巧:

    随便用用(低频)
    ** 设置回复为回复全部

    一天一次的使用者(高频)
    ** 搞个主题玩玩
    ** 使用紧凑模式
    ** 知道如何撤销3秒前的误操作
    ** 搞一个签名吧

    重度用户
    ** 设置五颜六色的标签
    ** 设置单页会话数量
    ** 使用Mutex让一些会话安静
    ** 使用一些Gmail插件管理Gmail
    ** 帮你代收邮件
    ** 设置默认的发件地址,这样不用每次写邮件时都需要选择邮件地址
    ** 当你有多个收发地址的时候:选择Reply from the same address the message was sent to
    ** 修改一个页面中显示的会话数量

    Gmail上瘾者
    ** 使用Google Task管理日常
    ** 使用一个Google Task的插件管理
    ** 高级快捷键使用
    ** 设置回复时的默认字体
    ** 尝试新的实验室特性,并且告诉需要的朋友们

    Gmail的缺点:
    从一个技术人员的角度看,真没想到什么缺点

    整理完才发现,Gmail比较符合个人对一个完美产品的定义.

  • 这是早期(2011年底)在淘宝内部做的一次分享,主要是面向内部的研发人员介绍如何进行深度的数据库优化与问题排查。在本次分享中介绍了如下内容:

    • 淘宝的数据库监控系统是如何工作的
    • 如何使用数据库监控系统”天机”发现和诊断MySQL数据库的问题
    • 如何通过慢日志以及相关工具(mk-query-digest)发现数据库的问题
    • 如何使用orzdba (淘宝内部工具)诊断数据库问题
    • 如何使用gdb、tcpdump、oprofiled等Linux工具诊断MySQL问题

    (more…)
  • 在使用和配置过程中,还是遇到了一些波折,这里分享、记录一下。

    1. 模块mod_proxy_html可以做些什么

    使用Apache内置的mod_proxy的Proxypass可以帮助我们实现基本的反向代理功能。但是,代理返回的结果页面包含的链接并不会被重写,所以如果被代理的Server返回的是绝对地址,用户则无法正确访问这些链接。例如:

    我们有反向代理服务器http://myproxy.taobao.org/,而内网有需要代理的服务器http://internalserver.taobao.org/,通过基本的反向代理指令Proxypass

    ProxyPass ^/proxy_internal/(.*)$ http://internalserver.taobao.org/$1

    可以完成基本的反向代理任务,但是如果internalserver.taobao.org返回的HTML代码中有如下链接,则客户端则无法正常链接到目标页面了:

    <a href=”/test/index.html”>Sample Link</a>

    因为,客户端点击该链接时会定向到http://myproxy.taobao.org/test/index.html,而资源实际是在http://internalserver.taobao.org/test/index.html上。

    Apache自带的mod_proxy无法解决这个问题,开源的第三方模块mod_proxy_html为此而生。经过代理服务器的HTML可以通过该模块做一次替换,从而变成可以正常访问的URL(上例中会把/oninternal/index.html替换成/proxy_internal/test/index.html)。
    (more…)

  • MySQL Replication可以很方便的用来做应用的读扩展,也可以帮MySQL实现一定程度的HA方案。MySQL通过向备库传送二进制日志来实现Replication,本文将通过二进制日志相关源代码的主要接口来解释:“MySQL如何传输二进制日志,是主库推,还是备库拉?MySQL日志传输的实时性如何?”。

    在MySQL Replication结构中,备库端初次通过CHANGE MASTER TO完成Replication配置,再使用start slave命令开始复制。更细致的,备库通过IO Thread向主库发起读取binlog的请求(COM_BINLOG_DUMP命令),主库收到COM_BINLOG_DUMP请求后,使用单独线程(dump thread)不断向备库IO Thread发送Binlog。示意图(大图):

    (more…)

  • MySQL MHA

    ·

    7月份YOSHINORI MATSUNOBU在Blog上Release了第一个版本的MySQL Master High Availability manager and tools(简称MHA)。

    1. Overview

    用于自动主备切换(Master的Failover),切换时间大约是10-30秒,MHA主要的优势是解决了主备的一致性问题,是第三方脚本的方式,对原来的MySQL没有任何影响,也不需要改变任何原来的架构部署。当然也支持在线的计划切换,切换时间大约也就0.5-2秒【可读,不可写】

    是一种简单、优雅的高可用解决方案,有一些功能:

    1.1 主库监控和Failover

    在一个配好的主从环境中,MHA能够实时的监控MySQL主库,如果探测到主库失败,则会启动自动的切换程序(master failover)。这时,MHA能够保证所有的备库上的数据都一致。MHA会检查所有备库上的relay log,并使用最靠前的relay log,来同步所有其他的备库,保证各个备库的数据一致。MHA一般能够很快完成切换工作:9-12秒来探测主库失败,7-10秒来关闭master来避免脑裂(可选的),然后在各个落后的备库上应用最新的日志(某一个备库上受到的最新的日志)。整个downtime大概是10-30秒。可以设置某一个备库,总是优先成为主库(可以通过在配置文件中设置优先级来实现),因为各个备库会全部同步,所以任何一个备库都可以成为主库。由于不一致导致的备库失败,这里都可以避免。

    1.2 命令行交互式切换(手动切换)

    不监控,直接进行切换操作。

    1.3 直接切换(非交互式)

    1.4 在线切换主库

    有时候,需要更换主库,例如原主库有已知的硬件故障(RAM、RAID control等)或者换上更好的硬件等等。这是一种计划切换,MHA能够非常快速、并且“一致的”的完成切换。所谓“一致的”,即避免在切换时,原主库上还存在存活的Session,在做一些事务,导致数据的不一致。MHA完成这个“一致的”切换,大概会有0.5-2秒的阻塞,一般这都是可以接受的维护时间。

    2. Master Failover的挑战

    主库Failover并没有想象的那么繁琐。我们看看最典型的MySQL部署情况:单个主库拖多个备库。当主库挂了,则需要先找到“最新”的Slave,将其升级为新的主库,并且让其他的备库都指向这个新主库。这并不复杂。当找到“最新”的slave,很容易确定其他备库哪些event还没有收到,如果这些非“最新”的备库不问青红皂白就直接连到新主库上的话,则会导致一些数据不一致。为了避免这种不一致,则需要确定哪些是丢失的events,然后apply到这些备库上,再连新主库。如果手动来做这些事儿的话,那就十分繁琐而且复杂。在这个Slide里面详细描述了这个细节:Automated master failover

    Fig: Master Failover: What makes it difficult?

    “最新”的slave表示:获得最多binlog的备库。

    Currently most MySQL Replication users have no choice but to perform failover manually on master crashes.
    在主库crash的时候,目前还没有什么好办法保证各个备库的一致。所以,很多时候需要手动去做这些操作,虽然主库crash的时候不多,但是一旦出现,那将是“相当”(用宋丹丹的口气说)的痛苦。

    MHA目标就是实现这样的自动恢复。这个恢复包括选定新主库、确定各个备库relay log的差异、在新主库上应用差异的relay log,然后将其他备库指向新主库。一般MHA10-30秒可以完成全部的操作(可能更久如果你的备库延迟了很久的话)。

    MHA有自动和命令行切换工具,自动切换命令”masterha_manager (MHA Manager)”由主库监控和主库Failover两部分组成。masterha_manager一直监控主库是否可用,如果发现无法连接主库,则可以立即执行一个非交互是的切换过程。

    手动切换命令:masterha_master_switch先检查主库是否确实挂了,如果真挂了,masterha_master_switch选一个备库作为新主库(也可以指定一个),然后做恢复和切换。命令行把前面的复杂操作全部都封装起来了。

    当已经有了自己的监控系统时(例如,你可以使用Pacemake之类的监控),无需使用MHA的监控功能时,这个功能可以帮你实现MySQL的切换操作。

    3. MHA使用注意事项

    注意事项:

    1. 检测Master是否挂了,可以通过两个路由来确认。详细参考:secondary_network_script
    2. MHA完成切换后,应用还需要完成切换,可以通过脚本:master_ip_failover_script parameter来帮助你做后续的工作。
    3. 为了避免脑裂,MHA提供了一个关闭原Master的脚本shutdown_script parameter
    4. 另外MHA,还提供了一个发送Email切换报告的功能:report_script parameter
    5. 需要考虑级联的情况
    6. Relay log不能再做自动清除了,否则需要的时候可能就没了。需要手动清理relay log,清理relay log时需要注意,没有应用的relay log千万不要清,否则备库就需要重新指向了。MHA有个脚本可以做这个工作:purge_relay_logs script
    7. 在SBR时不要使用LOAD DATA INFILE

    参考资料

    1. MHA Google code主页
    2. MHA 文档资源
    3. MHA download
    4. MHA 介绍: Announcing MySQL-MHA: “MySQL Master High Availability manager and tools” |
    5. MHA for MySQL 0.52 released