Wednesday, April 15, 2020

Error vs Fault 的区别

Error: An understood failure mode that indicates the request was flawed (duplicate device name)
Fault: a failure mode where the request is valid but application failed anyway

Error对应4xx,表示client或者input有问题
Fault对应5xx,表示service或者output有问题

一般而言,应该分类,alarm只应该对fault,有时候不确定时候就先保守地归类为Fault,后面转为Error。

Monday, October 21, 2019

memcache简介

这是分布式缓存系统,也就是每个机器都不会存重复的键值。原理是一致性Hash,每个机器通过同一个端口实现通信。按照机器id来安排键值和取值。

Ref
https://blog.51cto.com/lookingdream/1941822

Monday, October 7, 2019

AWS CloudFormation简介

AWS CloudFormation是AWS资源的配置文件以及AWS资源间的关系。就是将手动的配置代码化。

主要有两种模板:JSON和YAML

Syntax:
"Fn::And": [{condition}, {...}] #Json
Fn::And: [Condition] #yaml full syntax
!And [condition]     #short form

Stack:
CloudFormation模板中定义的所有AWS资源及其配置,只有deploy以后程序就可以运行。Events中可以看到stack为什么deploy失败,若失败后会自动回滚。deploy需时较长,因为要创建那些AWS资源如lambda,sqs等。

Ref
模板参考

Monday, July 15, 2019

TestNG

TestNG是一个设计用来简化广泛的测试需求的测试框架,从单元测试(隔离测试一个类)到集成测试(测试由有多个类多个包甚至多个外部框架组成的整个系统,例如运用服务器)。


@BeforeSuite:        被注释的方法将在所有测试运行前运行
@AfterSuite:        被注释的方法将在所有测试运行后运行
@BeforeTest:        被注释的方法将在测试运行前运行
@AfterTest:        被注释的方法将在测试运行后运行
@BeforeGroups:        被配置的方法将在列表中的gourp前运行。这个方法保证在第一个属于这些组的测试方法调用前立即执行。
@AfterGroups:        被配置的方法将在列表中的gourp后运行。这个方法保证在最后一个属于这些组的测试方法调用后立即执行。
@BeforeClass:        被注释的方法将在当前类的第一个测试方法调用前运行。
@AfterClass:        被注释的方法将在当前类的所有测试方法调用后运行。
@BeforeMethod:        被注释的方法将在每一个测试方法调用前运行。
@AfterMethod:        被注释的方法将在每一个测试方法调用后运行。


Ref:
https://blog.csdn.net/chaoren2011/article/details/38932967

Monday, July 8, 2019

AWS Athena

用SQL直接在S3中轻松分析数据。类似于Redshift,文件存在硬盘,然后写SQL去query。当然Athena也并不需要source一定要在S3,可以直接写SQL创表。

功能
Athena是无服务器的,因此您无需设置或管理任何基础设施,且只需为您运行的查询付费
Athena分析在S3中存储的非结构化、半结构化和结构化数据包括CSV、JSON 或列式数据格式
Athena 可与 Amazon QuickSight 集成,轻松实现数据可视化。

Athena采用称作基于读取的架构的方法,这意味着,架构将在您执行查询时投影到您的数据上。
这样就无需加载或转换数据。
Athena 不会修改您在 Amazon S3 中的数据。

底层API
用Apache Hive实现
jobId改成int会出错

CREATE EXTERNAL TABLE IF NOT EXISTS default.docu_jobs (
  `jobId` string,
  `title` string,
  `url` string,
  `location` string,
  `runDate` string,
  `createdTime` string
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
   "separatorChar" = ",",
   "quoteChar"     = "\"",
   "skip.header.line.count" = "1" 
) LOCATION 's3://jctech-data/docu/'
TBLPROPERTIES ('has_encrypted_data'='false');


Ref
官方文档
https://aws.amazon.com/blogs/aws/amazon-athena-interactive-sql-queries-for-data-in-amazon-s3/

Sunday, July 7, 2019

AWS SES

电子邮件平台

功能
* Amazon SES 控制台 — 此方法是设置系统和发送一些测试电子邮件的最快方法,但在您准备好开始电子邮件活动后,将主要使用控制台来监控发送活动。例如,您可以快速查看您已发送的电子邮件数和您收到的退回邮件和投诉邮件数。类似于GoDaddy的console
* SMTP 接口 — 可通过 SMTP 接口以两种方式访问 Amazon SES。第一种方式是将任何支持 SMTP 的软件配置为通过 Amazon SES 发送电子邮件,此方式不需要编码。例如,您可以将现有电子邮件客户端或软件程序配置为连接到 Amazon SES SMTP 终端节点,而不是当前出站电子邮件服务器。第二种方式是使用与 SMTP 兼容的编程语言 (例如 Java) 并使用该语言的内置 SMTP 函数和数据类型访问 Amazon SES SMTP 接口。
* Amazon SES API — 您可以直接通过 HTTPS 调用 Amazon SES 查询 API

Ref
官方文档