美文网首页微服务设计读书
《微服务设计》读书笔记(一)

《微服务设计》读书笔记(一)

作者: 书兴 | 来源:发表于2016-10-13 21:42 被阅读645次

    • 什么是微服务?

    微服务是协同工作的小而自治的服务

    1) 协同:服务之间通过进程间通信的方式进行调用,服务之间通过api通信。一个进程会暴露几个api。

    2) 很小,专注于做好一件事。一件事:内聚,业务的边界即服务的边界。很小,如何算小?时间两周内能完成更换,能很好地和团队结构相匹配

    3) 自治:可以独立地部署在PaaS平台上,也可以作为一个操作系统的进程存在

    • 微服务有何好处?

    a. 技术异构性:不同的团队可以选择最适合自己的编程语言及数据存储机制

    b. 弹性:舱壁,系统里的一个组件不可用了,其它的组件还可以继续工作

    c. 扩展:针对需要扩展的微服务进行扩展

    d. 简化部署:各个服务的部署是独立的,可以更快地针对特定部分的代码进行部署

    e. 与组织结构相匹配:避免出现大的代码库,从而获得理想的团队大小和生产力

    f. 可组合性:服务的可重用性

    g. 对可替代性的优化:对几百行代码的微服务可以不带任何感情地删除、优化

    • 微服务有何要求?

    a. 分布式对部署、测试、监控方面的要求

    b. 分布式事务

    c. CAP相关的问题:分布式数据如何保持一致性

    • 微服务与面向服务架构的关系

    a. 面向服务的架构要考虑的问题: 通信协议(例如SOAP),第三方中间件如何选择,服务粒度如何划分

    b. 微服务式面向服务的架构的一种特定方法

    • 其它分解技术

    a. 共享库:适用于执行一些公共任务,服务之间可以并且应该使用第三方库来重用

    问题:1)无法选择异构的技术(这个不对吧?比如Java的应用可以调用c++写的库)2)失去独立地对系统一部分进行扩展的能力;3) 如果不是动态链接库,每次库更新时,系统都要重新启动或部署;

    b. 模块:OSGI(Open Source Gateway Initiative)和Erlang。osgi带来的复杂度远远大于好处。

    相关文章

      网友评论

        本文标题:《微服务设计》读书笔记(一)

        本文链接:https://www.haomeiwen.com/subject/caqgyttx.html