Pipes

微服务架构的理论基础

纵然是瞬间 提交于 2020-02-26 11:45:22
摘要: 可能出乎很多人意料之外的一个事实是,微服务很多核心理念其实在半个世纪前的一篇文章中就被阐述过了,而且这篇文章中的很多论点在软件开发飞速发展的这半个世纪中竟然一再被验证,这就是康威定律。 欲速则不达,欲达则欲速! 一、概述 微服务是最近非常火热的新概念,大家都在追,也都觉得很对,但是似乎没有很充足的理论基础说明这是正确的,给人的感觉是 不明觉厉 。前段时间看了Mike Amundsen《远距离条件下的康威定律——分布式世界中实现团队构建》(是Design RESTful API的作者)在InfoQ上的一个分享,觉得很有帮助,结合自己的一些思考,整理了该演讲的内容。 可能出乎很多人意料之外的一个事实是,微服务很多核心理念其实在半个世纪前的一篇文章中就被阐述过了,而且这篇文章中的很多论点在软件开发飞速发展的这半个世纪中竟然一再被验证,这就是康威定律(Conway's Law). 在康威的这篇文章中,最有名的一句话就是: Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations. - Melvin Conway(1967) 中文直译大概的意思就是

GPL协议中国第一案尘埃落定,相关开源软件应如何风控?

て烟熏妆下的殇ゞ 提交于 2020-01-06 22:05:46
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 导读:2019年11月6日,数字天堂(北京)网络技术有限公司(以下简称 “数字天堂公司”)诉柚子(北京)科技有限公司、柚子(北京)移动技术有限公司(以下简称 “柚子公司”)侵犯计算机软件著作权纠纷一案由北京市高级人民法院做出二审终审判决,认定柚子公司提出的HBuilder软件三个插件属于应遵循《GNU通用公共许可协议》(以下简称“GPL协议”)开放源代码的衍生作品的抗辩理由不成立,APICloud软件复制并修改HBuilder软件中的三个插件的行为构成对数字天堂公司复制权、改编权及信息网络传播权的侵犯,判令柚子公司停止侵权并赔偿71万元。至此,第一个在中国涉及GPL协议的诉讼案件结局已尘埃落地。 本案作为中国第一个关涉GPL协议的诉讼案件,对开源软件许可协议在中国司法程序中的效力认定和中国法院对于GPL协议的条款解读具有重要的参考意义。 本文将对案件中涉及GPL协议的部分展开讨论,并就此提出商业公司使用GPL协议的开源软件时应如何开展风险管控的思考。 一、案情介绍 1.一审案情简介 原告数字天堂公司起诉被告柚子公司侵犯其计算机软件著作权纠纷一案,由北京知识产权法院于2015年4月13日受理,并于2018年4月12日作出判决[1]。

Mysql的sql_mode模式

回眸只為那壹抹淺笑 提交于 2019-11-29 22:09:05
sql_mode 是一个很容易被忽视的配置,宽松模式下可能会被输入一些非准确数据,所以生产环境下会要求为严格模式,为了保持生产环境和开发环境,测试环境一致性,我们开发环境和测试环境也要配置成为严格模式。 sql_mode常用值 ONLY_FULL_GROUP_BY:在分组查询语句中如果一个select中的列没有在group by中出现,则该语句是不合法的。 NO_AUTO_VALUE_ON_ZERO:在默认情况下自增长列在插入0或NULL时会自动插入下一个自增长值。当设置该模式情况下,插入0时不会进行自增长依然插入0值。 STRICT_TRANS_TABLES:对事务表进行限制,当一个数据不能插入到事务表中时中断当前操作。对非实物表不做限制。 NO_ZERO_IN_DATE:只要日期的月和日中含有0值都报错,但是‘0000-00-00’除外。 NO_ZERO_DATE:只有‘0000-00-00’报错。 ERROR_FOR_DIVISION_BY_ZERO:在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。如果非该模式下被0除时mysql返回NULL。 NO_AUTO_CREATE_USER:禁止创建密码为空的用户。 NO_ENGINE_SUBSTITUTION:如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常

神奇的SQL之层级 →为什么 GROUP BY 之后不能直接引用原表中的列

核能气质少年 提交于 2019-11-29 21:43:06
GROUP BY 后 SELECT 列的限制 标准 SQL 规定,在对表进行聚合查询的时候,只能在 SELECT 子句中写下面 3 种内容:通过 GROUP BY 子句指定的聚合键、聚合函数(SUM 、AVG 等)、常量。我们来看个例子 我们有 学生班级表(tbl_student_class) 以及 数据如下 : DROP TABLE IF EXISTS tbl_student_class; CREATE TABLE tbl_student_class ( id int(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键', sno varchar(12) NOT NULL COMMENT '学号', cno varchar(5) NOT NULL COMMENT '班级号', cname varchar(20) NOT NULL COMMENT '班级名', PRIMARY KEY (id) ) COMMENT='学生班级表'; -- ---------------------------- -- Records of tbl_student_class -- ---------------------------- INSERT INTO tbl_student_class VALUES ('1', '20190607001',

linux 系统监控、诊断工具之 lsof 用法简介

一曲冷凌霜 提交于 2019-11-29 16:30:04
1、lso f 简介 lsof 是 linux 下的一个非常实用的系统级的监控、诊断工具。 它的意思是 List Open Files,很容易你就记住了它是 “ls + of”的组合~ 它可以用来列出被各种进程打开的文件信息,记住: linux 下 “一切皆文件” , 包括但不限于 pipes, sockets, directories, devices, 等等。 因此,使用 lsof,你可以获取任何被打开文件的各种信息。 只需输入 lsof 就可以生成大量的信息,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。 lsof 的示例输出: root@YLinux:~/lab 0# lsof COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd 1 root cwd DIR 8,6 4096 2 / systemd 1 root rtd DIR 8,6 4096 2 / systemd 1 root txt REG 8,6 2273340 1834909 /usr/lib/systemd/systemd systemd 1 root mem REG 8,6 210473 1700647 /lib/libnss_files-2.15.s ... 2、lsof