单体应用(Monolithic) VS 微服务
- 一个单体应用把所有功能放到一个进程中.
- 一个微服务只是把功能元素放到独立的服务中.
- 单体应用有如下优势
- 开发效率高,运行速度快(进程间通信效率要远大于网络通信)
- 运行效率高,部署方便
- 单体应用程序的不足
- 中心化情况严重, 耦合度较高,
- 伸缩(Scale)性差, 持续交付能力差
元编程
在JAVA编程语言中, 元编程是一种新的变动模式, 目的是减少代码行数,得到事半功倍的效果.
元编程主要有以下几种模式
注解驱动 (Annotation-Driven)
反射驱动 (Reflection-Driven)
表达式驱动(Expression-Driven)
Lambda
Script On JVM(Groovy ,javascript)
接口编程
又称为契约编程,在OPP语言中,其契约范围包括方法名,方法参数,方法返回值及异常情况等。
静态Web站点的特点
常见的静态资源通常由Web服务器文件系统提供,常见的静态Web资源包括:HTML,CSS,Js,Jpg,Flag等
特点如下
- 站点类型: I/O类型
- 交互方式比较单一
- 资源内容基本相同,如门户网站
- 请求方式: 多是Get请求
- 使用场景通常包括: 信息展示,css,js,图片,多媒体,文件下载等.
- 常见静态Web服务器: Nginx,IIS,Apache HTTP server
Java web Server通常不作为Web Server
- java作为一门中间语言要兼容多种操作系统,数据结构没有C,perl等语言精炼, 占用内存比较大
- 垃圾回收机制(GC)属于被动式回收, 并且在FullGC时会Stop the world
- 并发线程开销比较大, 并且不支持协程(coroutine)