最近一段时间在学习Spring Cloud,从Eureka到Hystrix,常用的配置和方法都有涉及一些,以此笔记来记录一下学习到的东西,也分享一下。内容以实战为起点,主要以介绍常规用法为主,最后也会列出遇到的几个问题和解决方法,希望能对初学者有一些帮助。

1、 微服务介绍(是一种架构风格)
  1)微服务特点
     一系列微小的服务共同组成
    跑在自己的进程里
    每个服务为独立的业务开发
    独立部署
    分布式的管理

  2)架构演变
    单一应用架构/ORM --> 垂直应用架构/MVC --> 分布式服务架构/RPC --> 流动计算架构/SOA

  3)分布式定义
    旨在支持应用程序和服务的开发,可以利用物理架构,由多个自治的处理元素,不共享主内存,但通过网络发送消息合作。

  4)微服务架构的基础框架/组件
    服务注册发现:服务的注册和发现,服务内部通讯
    服务网关(Service Gateway):服务对外暴露,对外屏蔽服务细节、路由外部请求至具体微服务、限流容错、请求监控(用户校验、反爬虫机制等)
    后端通用服务(也称中间层服务Middle Tier Service):注册至服务注册表,供前端服务调用
    前端服务(也称边缘服务Edge Service): 对后端服务进行裁剪和聚合

  5)微服务实现两种方式
    阿里系:
      -Dubbo:服务治理
      -Zookeeper:服务注册中心
      -SpringMVC or SpringBoot:底层实现
      -...
    Spring Cloud:
      -Spring Cloud Netflix Eureka
      -SpringBoot
      -...

2、 Spring Cloud简介
  1)Spring Cloud是一个开发工具集,含了多个子项目
    -利用Spring Boot的开发便利
    -主要是基于对Netflix开源组件的进一步封装

  2)Spring Cloud简化了分布式开发(掌握如何使用,更要理解分布式、架构的特点)

3、 Spring Cloud Eureka
  1)基于Netflix Eureka做了二次封装

  2)两个组件组成
    -Eureka Server 注册中心(维持心跳连接、检测服务)
    -Eureka Client 服务注册(简化与服务器的交互、轮询负载均衡器、提供服务故障切换)

  3)EurekaServer
    注解:EnableEurekaServer(注册服务注解)
    依赖:spring-cloud-starter-netflix-eureka-server
    高可用:EurekaServer相互注册、EurekaClient多方注册
    主要配置:

eureka:
client:
service-url:
# 配置Eureka Server地址,Eureka本身也是服务,也需要进行注册,若多个Server,地址用逗号隔开(启动Server服务后,访问服务ip:port可找到注册地址)
defaultZone: http://127.0.0.1:8681/eureka
# 是否在Eureka服务注册中心可见
register-with-eureka: false

4)EurekaClient
  注解:EnabelDiscoveryClient(服务提供者注解)
  依赖:spring-cloud-starter-netflix-eureka-client(spring-boot-starter-web)
  主要配置:  

spring:
application:
# 服务名,在注册中心为服务id
name: demo
eureka:
client:
service-url:
# Eureka Server的注册地址,若有多个,可只注册一个
defaultZone: http://localhost:8681/eureka/

Spring Cloud的常规组件和简单实战(一)的更多相关文章

  1. Spring Cloud Gateway过滤器精确控制异常返回(实战,完全定制返回body)

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 Spring Cloud Gateway应用 ...

  2. 《Spring Cloud与Docker微服务架构实战》配套代码

    不才写了本使用Spring Cloud玩转微服务架构的书,书名是<Spring Cloud与Docker微服务架构实战> - 周立,已于2017-01-12交稿.不少朋友想先看看源码,现将 ...

  3. Spring Cloud与Docker微服务架构实战 PDF版 内含目录

    Spring Cloud与Docker微服务架构实战  目录 1 微服务架构概述 1 1.1 单体应用架构存在的问题1 1.2 如何解决单体应用架构存在的问题3 1.3 什么是微服务3 1.4 微服务 ...

  4. Spring cloud的各类组件

    Spring cloud 的各类组件 1.注册中心 eureka 2.ribbon 3.feign 4.hystirx 断路器 5.高速缓存器 redis 6.断路器Dashboard监控仪表盘

  5. spring cloud链路追踪组件sleuth和zipkin

    spring cloud链路追踪组件sleuth     主要作用就是日志埋点 操作方法 1.增加依赖             <dependency>      <groupId& ...

  6. Spring Boot版本,Spring Cloud版本与组件版本关系

    我们在学习Spring Cloud时,可能总是碰到以下问题: 1.Spring Boot版本与Spring Cloud版本关系 2.启动时,报莫名其妙的错,稀里糊涂的换个版本就好了 3.这么多版本,用 ...

  7. 【Spring Cloud & Alibaba全栈开源项目实战】:SpringBoot整合ELK实现分布式登录日志收集和统计

    一. 前言 其实早前就想计划出这篇文章,但是最近主要精力在完善微服务.系统权限设计.微信小程序和管理前端的功能,不过好在有群里小伙伴的一起帮忙反馈问题,基础版的功能已经差不多,也在此谢过,希望今后大家 ...

  8. 一句话概括下spring框架及spring cloud框架主要组件

    作为java的屌丝,基本上跟上spring屌丝的步伐,也就跟上了主流技术.spring 顶级项目:Spring IO platform:用于系统部署,是可集成的,构建现代化应用的版本平台,具体来说当你 ...

  9. Spring Cloud与Docker微服务架构实战 PDF

    电子版百度云下载 链接: https://pan.baidu.com/s/115u011CJ8MZzJx_NqutyTQ 提取码: 关注公众号[GitHubCN]回复2019获取 本书的代码 共计70 ...

随机推荐

  1. Kibana 学习资料

    Kibana 学习资料 网址 Kibana 官方文档 https://s0www0elastic0co.icopy.site/guide/en/kibana/current/introduction. ...

  2. 测试基础【第六篇】bug要素及其生命周期

    bug的要素 为了让开发人员更准确.更快的看懂Bug,测试需要按照一定的规范提交bug. 缺陷id:一般由缺陷管理系统自动生成: 缺陷标题:概要描述缺陷: 发现人:一般是缺陷管理系统自动获取当前用户: ...

  3. android开发环境sdk manager无法更新问题

    由于无法fq,也没有vpn,建议各位新手不用sdk manager去安装,直接下载bundle包,就不用去折腾各种开发环境了.推荐bundle下载地址:http://adt.android-studi ...

  4. ZROI 暑期高端峰会 A班 Day6 离线问题

    FBI Warning:本文含有大量人类本质之一. 动态联通问题 允许离线. 模板,不讲了. 归并排序 %@)(#&%)++%($@)%!#(&%)(&@))) 主定理 U^( ...

  5. nginx 配置状态监控

    Nginx有内置一个状态页,需要在编译的时候指定参数--with-http_stub_status_module参数方可打开.也就是说,该功能是由http_stub_status_module模块提供 ...

  6. npm install命令遇到relocation error: npm: symbol SSL_set_cert_cb的报错问题

    在安装elasticsearch-head的过程中npm install遇到如下报错 [root@localhost elasticsearch-head]# npm install npm: rel ...

  7. tcp & 长连接 短连接

    参考文档: tcp协议 http://blog.chinaunix.net/uid-26833883-id-3627644.html 长连接和短连接 http://blog.csdn.net/free ...

  8. 利用ffmpeg获取视频帧

    如果要对视频帧进行处理,可以先把视频帧读取出来. sh文件代码如下: #!/usr/bin/env sh VIDEO=/home/xxx/video/ FRAMES=/home/xxx/frame/ ...

  9. GCN(Graph Convolutional Network)的简单公式推导

    第一步:从前一个隐藏层到后一个隐藏层,对结点进行特征变换 第二步:对第一步进行具体实现 第三步:对邻接矩阵进行归一化(行之和为1) 邻接矩阵A的归一化,可以通过度矩阵D来实现(即通过D^-1*A来实现 ...

  10. Python【每日一问】32

    问: [基础题]:手机品牌存放在一个列表中 brandlist = ['华为','苹果','一加','OPPO','小米'],请实现以下功能:随机选择一个手机品牌屏幕输出 [提高题]:编写一个函数,输 ...