微服务总览

发布时间:2024年01月16日

????????微服务 不等于 Spring Cloud,Spring Cloud知识解决了微服务中的服务治理问题。

  1. 服务集群:大型的互联网项目会根据功能模块把一个单体的项目拆分成许多个独立的项目,每个项目完成一部分业务功能,将来独立开发和部署,我们把这一个独立的项目称为一个服务,而一个大型项目往往会包含成百上千个服务,最终形成一个服务集群
  2. 注册中心:一个业务可能要调用多个服务来完成,随着越来越多的服务调用,服务调用关系也会越来越复杂,而注册中心可以记录每个服务的IP地址、端口、能完成什么功能等事情,那么当一个服务调用另外一个服务时,不需要自己去记录对方的IP,只需要去找注册中心就行了,从注册中心去拉取对方的服务信息
  3. 配置中心:随着服务越来越多,且每个服务都有自己的配置文件,那么将来对配置的修改变得很麻烦。不过我们可以使用配置中心来统一的管理整个服务群中的配置,还可以实现配置的热更新
  4. 服务网关:我们有这么多的微服务,用户怎么知道应该访问哪一个服务呢?且也不是谁都可以访问我们的服务。服务网关可以对用户的身份做校验,还可以把用户的请求路由到具体的服务,路由过程中也可以做负载均衡
  5. 数据库:将来主要进行数据的写操作,事务类型对数据安全要求较高的一些数据存储
  6. 分布式缓存:数据库虽然是集群,但是还是没有用户多啊,因此我们需要加入缓存,就是把数据库中的记录放到内存中,为了应对高并发,还要做成分布式的缓存。用户请求先到缓存,缓存中没有了再去查询数据库
  7. 分布式搜索:简单搜索可以使用缓存,但是一些海量数据的复杂的搜索统计和分析,缓存也做不了,这时候需要用到分布式搜索功能
  8. 消息队列:微服务中,一个业务往往会跨越多个服务,一个请求来了,先调用服务A,A再调用服务B…… 整个业务的链路就会很长,性能不高。而异步通信的意思就是一个请求来了,调用服务A,而服务A不是调用服务B,而是发一个消息通知服务B该干什么,然后服务A就结束了,不用等待他们了。大大提高我们服务的并发,在一些秒杀这样的高并发场景下就可以应用了。

? ? ? ? 这么多服务,那么在运行过程中难免会遇到一些问题,这时我们就要用到分布式日志服务,他会统计整个集群中所有服务的运行日志,统一的做存储,统计,分析,将来这些问题就比较好定位了。

? ? ? ? 而且还有系统监控和链路追踪,它可以去实时监控整个集群中每一个服务节点的运行状态、CPU的负载、内存的占用等,一旦出现任何问题,直接可以定位到具体的某一个方法。

? ? ? ? 这么多东西,肯定不能人工却部署了,这是就要使用持续集成。我们就可以利用Jenkins工具对微服务项目进行自动化编译,而基于docker再去做一些打包,形成镜像,再基于kubernetes和RANCHER这样的技术实现自动化的部署,这一套我们就称为持续集成。

? ? ? ? 结合微服务这些技术,再加上持续集成,这才是完整的微服务技术栈。

文章来源:https://blog.csdn.net/lemonzjk/article/details/135613542
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。