1.搭建微服务架构的基础
服务化框架和平台的选择
2.微服务公共关注点
1)配置管理:对微服务应用的一些可变参数进行配置,这些参数(1)可能是启动期一次性配置的(例如:数据库连接字符串),(2)也可能是运行期动态配置的(例如:调整缓存过期时间,或者是业务方面的促销限购的数量)
2)服务发现和LB(负载均衡):
服务发现:服务分布在不同的节点上,服务之间要互相调用,首先要定位,找到对方,微服务架构的一个基本问题
负载均衡:服务一般以多实例的方式部署,调用方需要以某种负载均衡策略,去访问目标服务实现
3)弹性和容错:分布式微服务通过网络互连,网络有可能会不稳定,服务实例可能会产生延迟,出错,甚至宕机,因此微服务系统必须具备弹性和容错的能力,才能保障服务质量和用户体验。
4)API管理:微服务系统,对外暴露API,一般通过API网关进行管理,网关是微服务的一个大门,需要支持反向路由,安全鉴定,日志监控,和限流容错等基本功能。高级的网关要支持A/B测试,蓝绿和灰度测试等高级功能。
5)服务安全:用户访问微服务首先需要认证,对某些敏感的服务进行操作还需要鉴权,服务之间调用也需要一定的权限管控。
6)日志监控:服务访问日志,需要进行集中的采集,存储和分析,方便后续进一步分析服务的性能甚至是用户的行为。
7)Metrics监控:对微服务的调用,需要进行Metrics埋点监控。Metrics监控既可以对服务的性能(包括调用量,延迟,错误数等)进行监控,也可以对一些重要的业务指标(例如:登陆数,下单数)进行监控。
8)调用链监控:分布式微服务之间的依赖关系错综复杂,通过调用链监控能够实时掌握服务之间的依赖关系和服务之间调用的性能。出现问题的时候,通过分析调用链能够及时排障。
9)调度和发布:微服务最终是需要发布到生成环境当中的,目前推荐的微服务交互手段主要是容器云环境。容器云需要支持自动的容器资源调度和发布,高级的话需要支持滚动、蓝绿等发布机制。
10)自愈和自动伸缩:
自愈:云环境当中这个节点实例有可能宕机或者漂移,网络可能会最忌不稳定,微服务平台需要自动侦测能力,能够自动恢复。
自动伸缩:用户流量可能会突发,骤增。微服务平台理想上讲,需要根据用户的流量变化自动的伸缩(auto-scaling)
这样做可节省硬件资源,同时又不影响用户体验。
3.三者全面横向对比分析
4.三者优缺点
5.使用建议
1)微服务关注点,根据企业上下文综合考量
2)尽量不要混搭使用,保持体系一致性
3)个人倾向K8s+SpringBoot
原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/186930.html