什么是企业级Java?就是为了满足企业开发需求的Java。包括:
1. 前端UI
2. 后端数据库
3. 通过web服务与其他应用交互
4. 与内部系统交互
最常见的企业级Java框架:JavaEE、Spring
模型、服务层作为jar包打包,controller、view作为war包打包。
进化后的架构:
1. 单模块扩展不可行。对单个模块无法扩展,需要整个实例扩展。
2. 单模块的性能问题。单个模块性能较差会拖垮整个实例。
3. 单模块的部署不可行。对代码的修改会导致整个实例的重新部署。
4. 代码复杂度高。单体应用存在强耦合的问题。
5. 测试困难。单体应用不便于测试。
一个微服务关注单个任务,便于修改、伸缩、部署。微服务之间通过网络调用联系在一起,便于形成分布式架构。
一个微服务架构是多个微服务模块构成的,网关接受请求并进行路由,经微服务处理后,返回数据。
1. 服务是独立分布的。在物理上是否属于同一台机器都是不确定的,也就是说微服务的部署位置无碍功能的实现。
2. 服务是语言独立的。对编程语言没有什么限制。
3. 服务部署是相对独立的。单一职责设计会减少测试的难度,对服务的部署也是有利的。小而精的模块。
4. 新服务的定义不会过度影响现有的服务,并可以组合现有服务实现新的功能。
1. 分布式架构对服务的部署位置没有要求,但是服务直接怎么找到彼此?我们需要一个功能,根据服务名称即可查找服务的地址。这就是服务发现。
2. 在不影响用户的情况下,怎么处理失败?需要提供容错及恢复能力。
3. 数以百计的微服务,如何完成对服务的监测?
