For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
对于大多数软件开发程序员来说,掌握不同的架构开发方法能够让程序员满足更多的软件开发需求,下面我们就通过案例分析来了解一下,微服务架构实践需要满足哪些条件。
先决条件
微服务的先决条件如下:
快速的环境提供能力:依赖于云计算、容器技术,快速交付环境。
基本的监控能力:包括基础的技术监控和业务监控。
快速的应用部署能力:需要部署管道提供快速的部署能力。
Devops文化:需要具有良好的持续交付能力,包括全链路追踪、快速环境提供和部署等,还需要快速的反应能力(对问题、故障的快速响应),开发和运维的协同工作。
对应于微服务架构,组织架构需要遵循以下原则:
一个微服务由一个团队维护,团队成员以三人为宜。
单个团队的任务和发展是独立的,不受其他因素影响。
团队是功能齐全、全栈、自治的,扁平、自我管理。
基础设施
微服务的推行需要依赖于很多底层基础设施,包括提供微服务的编译、集成、打包、部署、配置等工作,采用PaaS平台解决微服务从开发到运行的全生命周期管理,同时提供异构环境管理、容器资源隔离与互通、服务伸缩漂移、服务升级与回退、服务熔断与降级、服务注册与发现。
①基本的基础设施
进程间通讯机制:微服务是独立进程的,需要确定之间的通讯方式。
服务发现+服务路由:提供服务注册中心,服务提供者和消费者通过服务发现获取服务的信息从而调用服务,实现服务的负载均衡等。
服务容错:微服务架构中,由于服务非常多,往往是一个服务挂了,整个请求链路的服务都受到影响。
因此需要服务容错,在服务调用失败的时候能够处理错误或者快速失败,包括熔断、Fallback、重试、流控和服务隔离等。
分布式事务支持:随着业务拆分为服务,那么有时候不开避免的就是跨服务的事务,即分布式事务的问题。
原则是尽量避免分布式事务,如果无法避免那么可以使用消息系统或者CQRS和EventSourcing方案来实现终一致性。
如果需要强一致性,则有两阶段提交、三阶段提交、TCC等分布式事务解决方案。
②提升外部服务对接效率和内部开发效率
API网关:负责外部系统的访问,跨横切面的公共层面的工作,包括安全、日志、权限控制、传输加密、请求转发、流量控制等。
每一级目录,如user、trade对应一个服务的域名。此外,API网关也可以有服务编排的功能(不推荐)。
接口框架:规范服务之间通讯使用的数据格式、解析包、自解释文档,便于服务使用方快速上手等。
③提升测试和运维效率
配置中心:运行时配置管理能够解决动态修改配置并批量生效的问题。包括配置版本管理、配置项管理、节点管理、配置同步等。
持续交付:包括持续集成、自动化部署等流程。目的就是小步迭代,快速交付。
持续集成:这一部分并非是微服务特定的,对于之前的单体应用,此部分一般来说也是必要的。
主要是指通过自动化手段,持续地对代码进程编译构建、自动化测试,以得到快速有效的质量反馈,从而保证代码的顺利交付。
自动化测试包括代码级别的单元测试、单个系统的集成测试、系统间的接口测试。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。