什么是微服务?
微服务是架构设计方式。
简单来说微服务就是很小的服务,小到一个服务只对应一个单一的功能,只做一件事。这个服务可以单独部署运行,服务之间可以通过RPC来相互交互,每个微服务都是由独立的小团队开发,测试,部署,上线,负责它的整个生命周期。在做微服务架构设计的时候,先做逻辑架构,再做物理架构,当你拿到需求后,估算过最大用户量和并发量后,计算单个应用服务器能否满足需求,如果用户量只有几百人的小应用,单体应用就能搞定,即所有应用部署在一个应用服务器里,如果是很大用户量,且某些功能会被频繁访问,或者某些功能计算量很大,建议将应用拆解为多个子系统,各自负责各自功能,这就是微服务架构。
什么是分布式?
分布式是系统部署方式。
分布式服务顾名思义服务是分散部署在不同的机器上的,一个服务可能负责几个功能,是一种面向SOA架构的,服务之间也是通过rpc来交互或者是webservice来交互的。
什么是数据一致性?
一般来说数据一致性我们可以分成三类,时间点一致性,事务一致性,应用一致性。
时间点一致性(Point in time Consistency)
如果所有相关的数据组件在任意时刻都是一致的,那么可以称作为时间点一致性。
事务一致性
事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。如果事务成功地完成,那么系统中所有变化将正确地应用,系统处于有效状态。如果在事务中出现错误,那么系统中的所有变化将自动地回滚,系统返回到原始状态。
应用一致性
应用一致性可以看做是约束一致性中的一种。上面的事务一致性代表的是单一数据源,如果数据源是多个,比如数据源有多个数据库,文件系统,缓存等。那么就需要我们应用一致性,这里也看做是分布式事务一致性
什么是幂等性?
所谓的幂等性,是分布式环境下的一个常见问题,一般是指我们在进行多次操作时,所得到的结果是一样的,即多次运算结果是一致的。
也就是说,用户对于同一操作,无论是发起一次请求还是多次请求,最终的执行结果是一致的,不会因为多次点击而产生副作用。
写创新材料可以借鉴的用词:
- 低侵入:业务接入方便、改动小、无异常影响、极低性能影响。
- 低延时:数据上报延迟控制在秒级。
- 高吞吐:满足业务高峰期间核对需求。
- 实时告警:告警检测高度灵敏。
- 主动熔断:实时向业务平台发送熔断信号。
- 租户隔离:避免不同流量下的租户数据相互影响。