1.他是什么?
微服务就是把一个项目拆分成独立的多个服务,并且多个服务是可以独立运行的,而每个服务都会占用线程。
2.本质
(1)微服务,关键其实不仅仅是微服务本身,而是系统要提供一套基础的架构,这种架构使得微服务可以独立的部署、运行、升级,不仅如此,这个系统架构还让微服务与微服务之间在结构上“松耦合”,而在功能上则表现为一个统一的整体。
(2)微服务的目的是有效的拆分应用,实现敏捷开发和部署 。
3.什么系统适合微服务?
答案淘宝,这个肯定没错,我所接触的微服务就是淘宝和之前公司的业务。但毫无疑问他们都是按照业务进行和功能划分的服务,那如何拆分?微服务的拆分粒度如何?
[🔗可以看这个链接](https://blog.csdn.net/qq_31960623/article/details/124624448?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168198327216800217249108%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=168198327216800217249108&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-124624448-null-null.142%5Ev85%5Einsert_down1,239%5Ev2%5Einsert_chatgpt&utm_term=%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%8B%86%E5%88%86%E7%B2%92%E5%BA%A6&spm=1018.2226.3001.4187)
不想看我就给总结一下吧,当然我还是推荐你看,毕竟我总结是我的,不是你的
(1)纵向拆分(基于业务拆分)
(2)横向拆分(是从公共且独立功能维度拆分),用户信息是许多服务公用的,就可以拆分出来
(3)基于可靠性拆分,比如日志这种业务要求性不高,而秒杀这种性能要求高,那就可以拆分。
(4)原文还说了服务合并问题,其实我也经历过,当然因为业务发展的需要,合并了许多服务,后面我就被裁员了。为了下一个公司更好发展才有了这篇文章。😹
了解了一些概念性问题我们来点实际的。
4.微服务能用到哪些技术?
- 服务网关:Getway,Zuul,Zuul2
- 服务调用:Feign,OpenFeign
- 服务注册与发现:Eureka,Zookeeper,Consul,Nacos
- 负载均衡:
- 服务降级: Hystrix,resilience4j,sentienl
- 服务熔断:
- 服务消息队列:
- 配置中心管理:Config,Nacos,apollo
- 自动化构建部署:k8s
- 服务监控:
- 服务链路追踪:
- 服务定时任务:
- 调度操作:
- 服务总线: