Skip to content

Instantly share code, notes, and snippets.

@wutingjia
Last active January 20, 2019 04:33
Show Gist options
  • Save wutingjia/661b411ce64fd98858cb5c39416b0cff to your computer and use it in GitHub Desktop.
Save wutingjia/661b411ce64fd98858cb5c39416b0cff to your computer and use it in GitHub Desktop.
微服务概念

云计算有三种基本模式:

基础设施即服务(Infrastructure as a Service,IaaS); 平台即服务(Platform as a Service,PaaS); 软件即服务(Software as a Service,SaaS)

每种服务的区别在于本身能掌控的多少,以上是逐渐递减的。

微服务核心概念之一是:每个服务被单独的打包与部署,服务实例应该迅速启动,同一个微服务的每个实例应该完全相同。

六类微服务模式

1、核心微服务开发模式

1)服务粒度——将单个微服务分到多小
2)通信协议——XML、JSON、Thrift等
3)接口设计——设计被进行被服务调用的api、构建服务的URL、版本化服务
4)服务的配置管理——如何管理微服务配置
5)服务之间的事件处理——如何使用事件解耦微服务,以便最小化微服务之间的硬编码依赖

微服务路由模式

1)服务发现——客户端不需要知道服务的具体物理位置,删除不佳的服务实例
2)服务路由——为所有微服务提供单个入口点(类似网关),以便统一应用安全策略和路由规则

微服务客户端弹性模式

1)客户端负载均衡——在服务客户端上缓存服务实例的位置
2)断路器模式——组织客户端继续调用出现故障的服务
3)后备模式——服务调用失败时的后备方法
4)舱壁模式——线程/信号量 隔离 使表现不佳的服务调用不会耗尽线程影响其他的服务

微服务安全模式

1)验证——验证调用服务的客户端就是他们声称的个体
2)授权——确定客户端进行的服务调用是否被允许
3)凭据管理和传播——如何避免客户端每次都要提供凭据信息才能访问事务中涉及的服务调用

微服务日志记录和跟踪模式

1)日志关联——一个用户事务会调用多个服务,如何将这些日志关联到一起
2)日志聚合——将所有微服务生成的所有日志合并入库
3)微服务跟踪——可视化客户端事务的流程,及涉及到的各服务的性能特征

微服务构建和部署模式——配置漂移是不允许出现的

1)构建和部署管道——创建一个可重复的构建和部署过程
2)基础设施即代码——将服务的基础设施作为源代码管理下的代码去对待
3)不可变服务器——一旦微服务镜像被创建和部署后,确保不会被更改
4)凤凰服务器——服务器运行时间越长,越容易发生配置漂移。如何确保微服务的服务器定期被拆卸,并重新创建一个不可变的镜像

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment