课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,程序员能够掌握的编程方法越来越多,而今天我们就一起来了解一下,微服务开发架构的基础设施都有哪些。
1、运行容器
服务运行的容器是支持服务提供对外访问的基础,根据微服务的要求,每个服务单独运行的独立进程中,所需要的运行容器就需要小巧灵活,运行容器可以集成在运行环境中,或者能够集成在服务可执行包中。
在Java领域,各大厂商都有自己的web容器:WebLogic、JBoss、Tomcat、Jetty等。SpringBoot内嵌了Tomcat和Jetty,默认打包方式是FatJar,jar保证包含了服务运行所有的基础,可以支持微服务部署的基本要求。
2、部署容器
部署容器是服务运行的加成组件,容器的好处在于一套镜像可以支撑测试和生成部署。这样做可以避免测试环境没有问题,生产环境各种报错的情况。但是想要实现一套镜像到处运行,还需要集中配置的支持。
而且对于部署容器,好有一套容器调度平台,这样能够更有效的使用资源。如果没有,可能用部署容器和普通部署方式,区别不是很大。
3、服务注册/发现
服务注册/发现是两个组件,彼此没有必然关系,但一般这两个组件会成对出现,解决同一个问题:服务地址动态变化的配置问题。
在单体架构时代,企业内部只有几个大系统,想要调用其他服务,只需要提前指定IP地址就行了。但是到了云原生时代,服务实例的网络地址都是动态分配的,想要提前指定IP是比较困难的。而且,在部署过程中,还会出现动态扩展、服务迁移、服务死亡等情况,服务实例也是动态变化。如果还是靠手工,不仅浪费时间,而且容易出错。
4、网关
在单体架构中,通常只有一组冗余或负载均衡的服务。在微服务架构中,每个服务都提供了一组细粒度的服务。对于一个普通的应用,可能需要调用多个不同的微服务,来获取全部的数据。这样做有三个缺点:
调用服务太多,将应用于后端服务捆绑,同时也造成二个缺点
服务难以重构,随着时间推移,服务可能会出现合并或者拆分的情况,应用于服务捆绑在一起,就难以重构
后端服务对外暴露的协议不一致,可能对web不友好。虽然微服务要求服务之间使用轻量级通信,但是并没有强调必须使用HTTP协议。
5、日志收集
日志是记录服务运行情况的主要来源,也可以在发生异常情况时还原现场。但是随着服务的增多,日志分布在许多的服务器中,如果不进行聚合,在排查问题的时候,难上加难。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。