一个单体的微服务应用就像使一个具备独立功能的芯片,插入到主板中就可以实现模块功能;接收整体模块的调用和任务派遣,或者主动从总线中获得信息和任务进行处理输出结果;接受总体模块的监督和审计以及健康检查;
这个单体应用最核心的当然使自己内聚的业务功能和实现逻辑;但是为了为外部提供服务也有相应的配套如:
- controller层可以对外提供web调用;
- websocket组件可以让这个应用能够提供双向和实时的信息通讯和处理能力;
- Message Queue让应用可以具备消息事件驱动能力,响应其他应用的消息,同时也可以通过消息触发其他应用,实现再集群中协同处理消息完成高频任务;
- Feign组件让应用可以主动调用其他模块的功能聚合或者协同数据和信息以此来实现更加复杂的功能,实现协同,实现功能内聚,调用其他更明确职责的模块,具备更强的通讯能力;
- JPA/JDBC数据持久层,让数据可以得以保存再数据库中,不论使关系型数据库还是非关系型数据库都可以看成使数据持久层的功能;
- Log组件为单体应用提供运行时日志输出方便进行知道当前的应用运行情况和错误排查跟踪;
- Actuator组件可以让用于可以被监控和被管理,比如健康检查、审计、统计和HTTP追踪等;
- Cache使为了增加应用的性能和高可用性而增加的一个内部模块可以使全局缓存也可以使具备缓存;