单独的数据库: 微服务设计的一个关键是数据库设计,基本原则是每个服务都有自己单独的数据库,而且只有微服务本身可以访问这个数据库。它是基于下面三个原因。 优化服务接口:微服务之间的接口越小越好,最好只有服务调用接口(RPC或消息),没有其他接口。如果微服务不能独享自己的数据库,那么数据库也变成了接口的一部分,这大大拓展了接口范围。 错误诊断:生产环境中的错误大部分都是和数据库有关的,要么是数据出了问题,要么是数据库的使用方式出了问题。当你不能完全控制数据库的访问时,会有各种各样的错误发生。它可能是别的程序直接连到你的…

2021年7月26日 0条评论 0点热度 阅读全文

在微服务架构中,需要调用很多服务才能完成一项功能。服务之间如何互相调用就变成微服务架构中的一个关键问题。服务调用有两种方式,一种是RPC方式,另一种是事件驱动(Event-driven)方式,也就是发消息方式。消息方式是松耦合方式,比紧耦合的RPC方式要优越,但RPC方式如果用在适合的场景也有它的一席之地. 耦合的种类: 我们总在谈耦合,那么耦合到底意味着什么呢? 时间耦合:客户端和服务端必须同时上线才能工作。发消息时,接受消息队列必须运行,但后台处理程序暂时不工作也不影响。 容量耦合:客户端和服务端的处理容量必须…

2021年7月26日 0条评论 2点热度 阅读全文

一个演化式架构师应该承担的责任: 愿景:确保在系统级有一个经过充分沟通的技术愿景,这个愿景应该可以帮助你满足客户和组织的需求。 同理心:理解你所做的决定对客户和同事带来的影响。 合作:和尽量多的同事进行沟通,从而更好的对愿景进行定义、修订及执行。 适应性:确保你在客户和组织需要的时候调整技术愿景。 自治性:在标准化和团队自治之间寻找一个正确的平衡点。 治理:确保系统按照技术愿景的要求实现。 由于本章的内容涉及的是与架构师职责相关的内容,由于我里架构师还有好长的路要走,对内容不是很理解,故简单摘抄本章小结内容。

2021年3月22日 0条评论 17点热度 阅读全文

什么是微服务? 微服务就是一些协同工作的小而自治的系统。 微服务有哪些特点? 很小,专注于做好一件事:保证代码的内聚性,遵循单一职责原则。到底要小到多小没有确定的定论,大佬认为,通常一个微服务要小到可以两周内完全重写。 如何确定足够小了: 自己不再感觉代码库过大:不要一味追求小,而应该根据自己的感觉,如果你认为代码库不过于大了,那就够小了 和团队结构相匹配:如果巨大的代码库由一个小团队维护,显然是无法正常维护的,此时就需要对其进行拆分,拆分到和团队结构相匹配为止。 自治性:微服务之间应该保持独立性,服务之间均通过网…

2021年3月21日 0条评论 15点热度 阅读全文

单独的数据库: 微服务设计的一个关键是数据库设计,基本原则是每个服务都有自己单独的数据库,而且只有微服务本身可以访问这个数据库。它是基于下面三个原因。 优化服务接口:微服务之间的接口越小越好,最好只有服务调用接口(RPC或消息),没有其他接口。如果微服务不能独享自己的数据库,那么数据库也变成了接口的一部分,这大大拓展了接口范围。 错误诊断:生产环境中的错误大部分都是和数据库有关的,要么是数据出了问题,要么是数据库的使用方式出了问题。当你不能完全控制数据库的访问时,会有各种各样的错误发生。它可能是别的程序直接连到你的…

2021年1月23日 0条评论 36点热度 阅读全文