环境
vscode + 插件 (Extension Pack for Java,多个插件集合)
issues
Program Error: Could not find or load main class x
报错,”Program Error: Could not find or load main class x”
建立ssl/tls连接需要若干步骤,协议结合使用了对称加密和非对称加密,客户机和服务端需要协商所使用的算法并交换密钥信息.
下面以TLS 1.2为例介绍下流程(TlS1.3做了很多优化)
This function returns a string result with the concatenated non-NULL values from a group. It returns NULL if there are no non-NULL values
group_concat将非NULL的值拼接返回字符串,当没有非NULL的值时返回NULL.
有长度限制,遇到过一个由于长度限制数据截断导致的bug,sql如下
1 | -- 这里id,price都是int,4字节 |
这里将price拼接,再通过SUBSTRING_INDEX取最后一个price,由于数据截断,GROUP_CONCAT返回的字符串最后一个是”,”而不是price,导致SUBSTRING_INDEX取到的是””(字符串),在业务逻辑里直接转为int报错了,由此产生bug.
且只有当数据量足够多时才会触发(超过171行时,1024=1714+1702,引擎为InnnoDB,MySQL8.0,字符集为utf8mb4_0900_ai_ci)
1 | -- 有兴趣的可以复现下,查一个int类型的数据就行 |
1 | func TestStr(t *testing.T) { |
1 | const nihongo = "日本語" |
康威定律: 设计系统的组织……受到约束,产生的设计是这些组织的沟通结构的副本
Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations. - Melvin Conway(1967)
references:
阿里肥侠文章:”微服务架构的理论基础 - 康威定律” https://developer.aliyun.com/article/8611
康威定律详细介绍
1 | 第一定律 |
微服务
The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services , which may be written in different programming languages and use different data storage technologies.
– James Lewis and Martin Fowler
Martin Fowler是国际著名的OO专家,敏捷开发方法的创始人之一,现为ThoughtWorks公司的首席科学家.福勒(Martin Fowler),在面向对象分析设计、UML、模式、软件开发方法学、XP、重构等方面,都是世界顶级的专家,现为Thought Works公司的首席科学家。Thought Works是一家从事企业应用开发和集成的公司。早在20世纪80年代,Fowler就是使用对象技术构建多层企业应用的倡导者,他著有几本经典书籍:《企业应用架构模式》、《UML精粹》和《重构》等。—— 百度百科
微服务问题
微服务架构需要考虑的问题,包括
gen
1 |
|
1 | // 完整匹配: ^[A-HJ-NPR-Z\d]{8}[X\d][A-HJ-NPR-Z\d]{3}\d{5}$ |
高性能的HTTP和反向代理服务器,Nginx 的主要功能:
每个站点在 conf.d目录下新增一个类似ssl.conf的配置文件,这样做的好处是将每个站点的配置单独放在一个文件,方便区分和修改.
1 | ls -al /etc/nginx/conf.d/ |