Java【读书笔记】读《阿里Baba(Alibaba)前架构师 360 度无死角剖析微服务》有感

原稿地址: Alibaba前架构师 360
度无死角剖析微服务

简述
Microservices(微服务)

 

一.
有些词汇和技巧

一)微服务 敏捷开发形式 SOA 分布式服务

Java,2)Spring MVC Zookeeper Dubbo Spring Cloud

三) 服务注册宗旨 服务网关 OpenStack
云总括 RESTful

肆) 宝马X5PC 领域驱动的剖析与统一筹划格局(DDD)
ESB

5)Spring Cloud Netflix Spring Boot
微信小程序

6)最终壹致性 CQ哈弗S 伊夫nt Sourcing

7)事务补偿机制 熔断机制 QPS 日志聚合

捌)AOP + 音讯队列 + strom

9)flume + Mq + strom

拾)数据库中间件

11)Kubernetes Mesos Docker Swarm

1二)ID 生成政策 OSGi Spring RestTemplate

13)Retrofit

 

 

 

 

二. 只言片语

一)【是或不是微服务】作者在此之前做过微服务,基本框架是 Spring
MVC,微服务之间和微服务与平马赛间的走访是透过在 Zookeeper 上的 Dubbo
通讯的,请问那算是微服务吗?

 

二)【架构范围】微服务架构的界定相比大,Dubbo
和 Spring Cloud 都只是解决了微服务的①部分标题,并未有完全覆盖

三)【Doctor】微服务一般都要用到
Docker

 

 

3.
宗旨情想(黄勇)

壹)【微服务主题】小编以为微服务的中坚是:服务注册焦点(ServiceRegistry)与劳务网关(ServiceGateway),它们合作完毕服务注册与劳动意识。

2)【服务编排】将劳动组合起来也化为“服务编排”,有多重做法,可以在服务网关中开始展览编辑,也足以因而中间服务拓展编写制定,作者更赞成于后人,那样保险服务网关不带有别的业务,越发轻量级。

叁) 【应用场景】小编以为在偏下两种景况下,可思考动用微服务架构:

  • 运用变得越来越大时
  • 品种存在种种费用语言时
  • 备感到经典架构方式太重时
  • 修改了1个 bug 要求平滑升级时
  • 想对系统实行细粒度监控时

4)【微服务 SOA】

— 【消除方案】微服务是古板 SOA 的轻量级解决方案,它让 SOA 尤其便于落地

— 【不同】SOA 与
MSA(微服务架构)分裂在于系统完整与服务组件分散化(“微化”)的分别

5) 【微服务技术选型】建议尽量地轻量级,做到“进可攻退可守”,至于 Spring
Cloud
依旧其余框架,完全在于大家对技术自身的敞亮以及对作业的把控能力,技术也业务要求相互结合才能发出价值

陆)【微服务中的事务】

–【音讯队列】
可使用音信队列的格局,完毕劳务中间的工作控制。服务调用落成,写入音信队列,通过消息使得的法子调用其余服务。


【服务与劳动间工作】在微服务框架结构中,指出尽量制止服务中间的调用,由此服务粒度的切分是根本的;服务间的调用会产生疏布式事务难题,建议选用“最后一致性”方法来保管分布式事务,产业界有二种常用做法:CQEvoqueS
和 伊夫nt Sourcing。

–【事务补偿机制】事务补偿机制说简练点正是,在应用程序中经过代码的章程完结数量的恢复生机。一般景况下,大家需正视消息队列与日志追踪等办法来贯彻

 

柒)【实际难点】


【分布式事务控制】音信队列可用以分布式事务控制,这项技艺已经在产业界被证实是可用的。其它,还有
CQ智跑S 与 伊夫nt Sourcing 技术也得以尝试一下。

— 【日志聚合】日志聚合可选选择职产业界流行的 ELK,即 Elasticsearch + Logstash

  • Kibana 来贯彻,L 用于收集日志,E 用于存款和储蓄日志,K 用于展现日志。

— 【方法调用次数计算】方法调用次数总括,不建议坐落服务之中通过 AOP
来控制,提议在微服务架构的劳动网关(Service Gateway)加以控制。

— 【服务治理】服务治理可通过 Kubernetes、Mesos、Docker Swarm
等技能来落到实处,

— 【服务版本】服务版本可因此 ZooKeeper、Etcd、Consul 等技巧来控制,


【服务权限】服务权限可自动达成权力中间件来消除,服务颗粒度划分考验大家的是对业务的深浅明白(那才是极端关键的)

— 【ID生成策略】好的 ID
生成政策需求组合您所面临的实际要求,1般采纳场景下,可经过 Redis
来扭转并保管 ID,它抱有较高的产出能力,且能确认保障分布式一致性

— 【开源方案】产业界也有任何能够的微服务开源方案,例如 Java 领域的
Netflix 与 Spring
Cloud。当然,笔者更期望本书所涉嫌的开源方案,能够被越来越多个人接受并动用

— 【接口】微服务对外的接口不自然局限于 HTTP 或 HTTPS,也足以是
TCP,必要基于具体情状而定。

 

 

相关文章