微服务介绍

微服务

单体架构

经典的3层模型 mvc
  • 表示层:用于和用户交互,通常是网页
  • 业务逻辑层:用户输入的信息的处理逻辑
  • 数据访问层:用于操作数据库
单体架构不足
  • 代码的可读性,可维护性,和可扩展性下降
  • 并发能力有限
  • 测试难度增加
单体架构集群不足
  • 代码的可读性,可维护性,和可扩展性很差
  • 数据库瓶颈,需要分库分表
  • 接续交付能力差,维护成本高

微服务架构

微服务架构的风格,就是将单一程序开发成一个微服务,每个服务运行在自己进程中,并使用轻量级机制通信,一般是RESTFUL风格

  • 服务按业务划分
  • 服务之间通过协议通信比如,HTTP协议,json数据格式
  • 自动化部署DevOps,Jenkins
  • 跨语言
  • 不同的存储方案
  • 管理集中化,zookeep,Eureka,nacos
  • 分布式系统
  • 熔断机制
优势
  • 复杂业务简单化,拆分优化,服务边界明确
  • 解耦合
  • 可以根据业务再拆分,扩展性高,集群化部署,负载能力强
  • 减少测试和部署的压力,只需测试和部署单个服务
  • 采用CAP理论的AP架构,具有高可用和分区容错的特点
缺点
  • 复杂度,服务之间相互依赖,负载度增加
  • 分布式事务
  • 服务的划分
  • 服务的部署
  • 服务故障的传播性

微服务的功能

  • 服务的注册与发现
  • 服务的负载均衡
  • 服务的容错性,熔断机制,资源隔离,服务降级,自我复原2
  • 服务的网关
  • 服务配置的统一管理
  • 服务的链路追踪

Dubbo简介

dubbo 是一个阿里开源的分布式服务框架,高性能和透明化的RPC远程服务调用解决方案

  • rpc远程调用:封装了NIO框架,Netty,采用多线程模式
  • 集群容错:提供了基于接口方法的远程调用的功能,并实现了负载均衡,失败容错
  • 服务发现:zookeeper

springcloud 与 dubbo 比较


服务关注点springclouddubbokubernetesSpringCloudAlibaba
配置管理Config-Kubernetes ConfigMapnacos
服务发现Eureka,Zookeepr,…ZookeeprKubernetes Servicesnacos
负载均衡Ribbon自带Kubernetes Servicesribbon
网关Zuul,Gateway-Kubernetes Services
分布式追踪SpringCloud Sleuth-Open tracing
容错Hystrix不完善Kubernetes Health CheckSentinel
通信方式HttpRPC-
安全SpringCloud Security--
分布式日志ELKSpring Cloud Security-
任务管理Spring Batch-Kubernetes Jobs

Kubernetes k波哒斯

特点:

  • Placet Scale(大容量)
  • Never Outgrow(永不过时)
  • Run Anywhere (随时随地运行)

功能

  • Automatic Binpacking(自动包装)
  • Self-heaing(自我修复)
  • Horizontal Scaling(横向扩展)
  • Service Discovery and Load Balancing(服务发现和负载均衡)
  • Automated Rollouts and Rollbacks(自动部署或回滚)
  • Secret and Configuration Management(配置管理)
  • Storage Orchestration (存储编排)
  • Batch execution(批量处理)

Docker

简介

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

  1. DockerClient客户端
  2. Docker Daemon守护进程
  3. Docker Image镜像
  4. DockerContainer容器

springboot

特点

  • 三大特点

    • 自动配置
    • 起步依赖
    • 运行状态监控
  • (1)可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;

  • (2)内嵌Tomcat或Jetty等Servlet容器;

  • (3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;

  • (4)尽可能自动配置Spring容器;

  • (5)提供准备好的特性,如指标、健康检查和外部化配置;

  • (6)绝对没有代码生成,不需要XML配置。

重要策略

SpringBoot框架中还有两个非常重要的策略:开箱即用和约定优于配置。
  • 开箱即用,Outofbox,是指在开发过程中,通过在MAVEN项目的pom文件中添加相关依赖包,然后使用对应注解来代替繁琐的XML配置文件以管理对象的生命周期。这个特点使得开发人员摆脱了复杂的配置工作以及依赖的管理工作,更加专注于业务逻辑。
  • 约定优于配置,Convention over configuration,是一种由SpringBoot本身来配置目标结构,由开发者在结构中添加信息的软件设计范式。这一特点虽降低了部分灵活性,增加了BUG定位的复杂性,但减少了开发人员需要做出决定的数量,同时减少了大量的XML配置,并且可以将代码编译、测试和打包等工作自动化。

spring cloud

Spring Cloud是一系列框架的有序集合。

它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值