zoukankan      html  css  js  c++  java
  • (一)SpringCloud学习系列-微服务

    转载:https://www.cnblogs.com/XiangHuiBlog/p/12089755.html

    最近和尚硅谷周阳老师学习了Spring Cloud感觉有必要在这里做下笔记和总结。

    软件系统架构演变

    单一应用架构
    当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,
    用于简化增删改查工作量的数据访问框架(ORM)是关键。
    垂直应用架构
    当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应
    用,以提升效率。此时,用于加速前端页面开发的Web 框架(MVC)是关键。
    分布式服务架构
    当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐
    形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用
    及整合的分布式服务框架(RPC)是关键。

    流动计算架构
    当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心
    基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和
    治理中心(SOA)是关键。

     什么是微服务?

     微服务架构是⼀种架构模式,它提倡将单⼀应⽤程序划分成⼀组⼩的服务,服务之间互相协调、互相配合,为⽤户提供最终价值。每个服务运⾏在其独⽴的进程中,服务与服务间采⽤轻量级的通信机制互相协作(通常是基于HTTP协议的RESTful API)。每个服务都围绕着具体业务进⾏构建,并且能够被独⽴的部署到⽣产环境、类⽣产环境等。另外,应当尽量避免统⼀的、集中式的服务管理机制,对具体的⼀个服务⽽⾔,应根据业务上下⽂,选择合适的语⾔、⼯具对其进⾏构建。

    微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底地去耦合,每一个微服务提供单个业务功能的服务,一个服务做一件事,从技术角度看就是一种小而独立的处理过程,类似进程概念,能够自行单独启动

    或销毁,拥有自己独立的数据库。

    微服务技术栈都有哪些?

    微服务条目 落地技术 备注
    服务开发 Springboot、Spring、SpringMVC
    服务配置与管理 Netflix公司的Archaius、阿里的Diamond等
    服务注册与发现 Eureka、Consul、Zookeeper等
    服务调用 Rest、RPC、gRPC
    服务熔断器 Hystrix、Envoy等
    负载均衡 Ribbon、Nginx等
    服务接口调用(客户端调用服务的简化工具) Feign等
    消息队列 Kafka、RabbitMQ、ActiveMQ等
    服务配置中心管理 SpringCloudConfig、Chef等
    服务路由(API网关) Zuul等
    服务监控 Zabbix、Nagios、Metrics、Spectator等
    全链路追踪 Zipkin,Brave、Dapper等
    服务部署 Docker、OpenStack、Kubernetes等
    数据流操作开发包 SpringCloud Stream(封装与Redis,Rabbit、Kafka等发送接收消息)
    事件消息总线 Spring Cloud Bus
    ......

  • 相关阅读:
    php配置COM组件正常运行
    调试python程序
    git 较基础命令
    学习一下参数初始化
    谈谈pooling?
    Caffe 源碼閱讀(六) InternalThread
    Caffe 源碼閱讀(六) data_layer.cpp
    Caffe 源碼閱讀(五) Solver.cpp
    Caffe.proto使用
    Caffe 源碼閱讀(四) Layer.hpp Layer.cpp
  • 原文地址:https://www.cnblogs.com/cjh184/p/12787025.html
Copyright © 2011-2022 走看看