標簽:業務 通訊 面試 module ring 服務注冊 mave 大牛 穩定性
全文目錄
单个轻量级服务一般为一个单独微服务,微服务讲究的是 专注某个功能的实现,比如登录系统只专注于用户登录方面功能的实现,讲究的是职责单一,开箱即用,可以独立运行。微服务架构系统是一个分布式的系统,按照業務进行划分服务单元模块,解决单个系统的不足,满足越来越复杂的業務需求。
马丁福勒(Martin Fowler):就目前而言,对于微服务业界并没有一个统一的、标准的定义。但通常而言,微服务架构是一种架构模式或者说是架构风格,它提倡将单一应用程序划分成一组小的服务。每个服务运行在其独立的自己的进程中服务之间相互配合、相互协调,为用户提供最终价值。服务之间采用轻量级通信。每个服务都围绕具体業務进行构建,并能够独立部署到生产环境等。另外应尽量避免统一的、集中的服务管理机制。
通俗的來講:
微服务就是一个独立的职责单一的服务应用程序。在 intellij idea 工具里面就是用maven开发的一个个独立的module,具体就是使用springboot 开发的一个小的模块,处理单一专业的業務逻辑,一个模块只做一个事情。
微服务强调的是服务大小,关注的是某一个点,具体解决某一个问题/落地对应的一个服务应用,可以看做是idea 里面一个 module。
比如你去醫院:你的牙齒不舒服,那麽你就去牙科。你的頭疼,那麽你就去腦科。一個個的科室,就是一個微服務,一個功能就是一個服務。
业界大牛 马丁福勒(Martin Fowler)讲解 :
https://martinfowler.com/bliki/
看不懂英文,這裏有中文博客翻譯的:
https://blog.csdn.net/u013970991/article/details/53333921
同步通信:dobbo通过 RPC 远程过程调用、springcloud通过 REST 接口json调用 等。
異步:消息隊列,如:RabbitMq、ActiveM、Kafka 等。
首先,他們都是分布式管理框架。
dubbo 是二进制传输,占用带宽会少一点。SpringCloud是http 传输,带宽会多一点,同时使用http协议一般会使用JSON报文,消耗会更大。
关注公众号程序员小乐回复关键字“offer”获取算法面試题和答案。
dubbo 开发难度较大,所依赖的 jar 包有很多问题大型工程无法解决。SpringCloud 对第三方的继承可以一键式生成,天然集成。
SpringCloud 接口协议约定比较松散,需要强有力的行政措施来限制接口无序升级。
最大的區別:
Spring Cloud抛弃了Dubbo 的RPC通信,采用的是基于HTTP的REST方式。
嚴格來說,這兩種方式各有優劣。雖然在一定程度上來說,後者犧牲了服務調用的性能,但也避免了上面提到的原生RPC帶來的問題。而且REST相比RPC更爲靈活,服務提供方和調用方的依賴只依靠一紙契約,不存在代碼級別的強依賴,這在強調快速演化的微服務環境下,顯得更爲合適。
img
SpringBoot:專注于快速方便的開發單個個體微服務(關注微觀);SpringCloud:關注全局的微服務協調治理框架,將SpringBoot開發的一個個單體微服務組合並管理起來(關注宏觀);
SpringBoot可以離開SpringCloud獨立使用,但是SpringCloud不可以離開SpringBoot,屬于依賴關系。
服務熔斷的作用類似于我們家用的保險絲,當某服務出現不可用或響應超時的情況時,爲了防止整個系統出現雪崩,暫時停止對該服務的調用。
服务降级是从整个系统的负荷情况出发和考虑的,对某些负荷会比较高的情况,为了预防某些功能(業務场景)出现负荷过载或者响应慢的情况,在其内部暂时舍弃对一些非核心的接口和数据的请求,而直接返回一个提前准备好的fallback(退路)错误处理信息。这样,虽然提供的是一个有损的服务,但却保证了整个系统的穩定性和可用性。
优点:松耦合,聚焦单一業務功能,无关开发语言,团队规模降低。在开发中,不需要了解多有業務,只专注于当前功能,便利集中,功能小而精。微服务一个功能受损,对其他功能影响并不是太大,可以快速定位问题。微服务只专注于当前業務逻辑代码,不会和 html、css 或其他界面进行混合。可以灵活搭配技术,独立性比较舒服。
缺點:隨著服務數量增加,管理複雜,部署複雜,服務器需要增多,服務通信和調用壓力增大,運維工程師壓力增大,人力資源增多,系統依賴增強,數據一致性,性能監控。
img
在前面你理解什麽是微服務,那麽對于微服務架構基本上就已經理解了。
微服务架构 就是 对微服务进行管理整合应用的。微服务架构 依赖于 微服务,是在微服务基础之上的。
例如:上面已经列举了什么是微服务。在医院里,每一个科室都是一个独立的微服务,那么 这个医院 就是 一个大型的微服务架构,就类似 院长 可以 对下面的 科室进行管理。微服务架构主要就是这种功能
標簽:業務 通訊 面試 module ring 服務注冊 mave 大牛 穩定性
原文地址:https://www.cnblogs.com/zourui4271/p/14944904.html