关注公众号“AI码师”领取2021最新面试资料一份
面试官经常会问:你开发过微服务么?
我们肯定会回答:开发过的,之前什么什么项目就用过。
面试官接着问:那如果让你搭建一套微服务的话,你觉得需要哪些组件?
这时,我们一般选择以沉默回应,哑口无言了…因为我们平时都是在写业务,很少去关注这些,所以今天给大家介绍一下微服务的基本组成:
文末有福利哦。。。
本篇文章推荐的基本都是spring cloud alibab套件,也是目前最流行的微服务全家桶,先贴一张目前比较成熟的微服务架构图:
作用:我们在服务间进行调用的时候虽然传的是服务名称,但是我们最终调用的地址肯定是IP加端口的形式,但是这一步当然不能由我们自己做,因为每个服务会有多个实例,每个实例有自己的地址,我们不可能一直调用同一个实例,肯定需要做负载均衡,并且还需要一个能把服务名转换为最终实例地址的组件。
推荐组件: openfeign
作用:
限流/熔断/降级,是微服务中抗高并发的三板斧,都发挥极其重要的作用。
推荐组件:sentinel,同时支持三个功能
作用:在微服务开发中,每个微服务使用的都是自己的数据库,如果操作需要事务的数据,在两个数据库中间是无法完成的,这就得引入分布式事务。
推荐组件:seata,上手简单
作用:在进行分布式开发时,肯定避免不了使用锁,但是在分布式中,传统的锁是锁不住的,因为传统的锁只能锁住一个进程里面;在分布式中,每个实例都运行在自己的进程中,只能使用分布式锁才能保证业务的一致性。
推荐组件:klock,基于redis的封装,实现的是功能完善的分布式锁,当然你也可以自己基于redis实现,但是有一个现成的用不香么?
缓存:redis,读写分离:mycat,消息中间件:rabbitmq,
关注微信公众号“AI码师”,领取面试资料和最新全套微服务教程
2 月 18 日消息 据外媒 Windowslatest 报道,在预览版本中发现的参考资料表明,...
在项目开始之前我们可以先去了解一下IConfiguration接口,.Net Core Web应用程序...
1.ajax跨域传递值是所需要的回传的类型为jsonp $.ajax({url: "http://.......",t...
一.前言 .NET Core 是一个通用开发平台,由 Microsoft 和 GitHub 上的 .NET 社区...
IT之家2月18日消息外媒 Windows Latest 报道,微软正在与谷歌合作进行一项新的改...
文章目录 前言 本周最重要的五件事情 本周搞砸的四件事情 本周的四个启发 前言 ...
首先插件配备好了,写一个HTML测试一下 首先创建一个文件夹,创建一个HTML 文件...
第一课趣味二进制——修改植物大战僵尸数据 任务介绍 学习目标 知识需求 需求工...
JSP spring boot / cloud 使用filter防止XSS 一.前言 XSS(跨站脚本攻击) 跨站脚...
昨天刚学了html的一些内容,就迫不及待的想做个京东上面的搜索条,结果做是做出...