本文浅谈只是对我自己初期认识这spring cloud的一个笔记。

微服务是一种架构风格和一种应对业务的架构策略。实现这种的技术方式很多。本文主要说spring cloud。

spring cloud主要包括一下几个组件:

1,eureka 注册中心。

   1)一个eureka服务也是客户端,可以自己注册自己,也可以相互注册形成高可用集群。

   2)eureka是客户端发现服务,客服端自己过滤,和选择负载均衡策略。

3)eureka与注册服务器保持通信是通过心跳检测机制。

2,ribbon负载均衡器,三个方法核心。

1)获取所有服务列表。

   2)rule。选择服务器规则(默认轮询)

3)监听可用服务列表

3,通讯方式。

1)restTempte 请求

   2)feign 请求。

4,config 统一配置中心。

1)config-server从远端git服务器拉取配置到本地的git.

    2) 调用端config-client,在注册中心获取config-server服务。

    注意把application.yml改成bootstrap.yml。

    3)获取方式 ,看日志或者文档(lable/name-dev.yml)

5,bus动态配置刷新。用于config自动刷新。

    1)config-server和config-client配置bus和MQ。

    2) 远端git服务配置 webhook回调bus.

    3)使用就在pom.xml配置bus的maven。

6,zuul服务网管。

   1)性能比nginx差。

   2)路由+过滤器 =zuul

   3) 核心是一系列的过滤器。

前置(pre)

    后置(post)

      路由(Route)

    错误(Error)

4)限流(RateLimiter)令牌算法,放在fiter优先级最高。也可以配合nginx分流用。

5)可以鉴权和统一跨域配置(nginx也可以做跨域)。

7,hystrix服务容错。服务之间调用会有各种问题。这个组件用在所有调用方。

  1)为服务器提供容错保护。在资源不够或者业务压力大的时候使用优先核心服务。主要四点作用

    服务降级

    依赖隔离(线程池隔离)

    服务熔断

    监控(hystrix-dashboard)

  2)使用:

    a,通过hystrixCommand注解指定请求。

    b,fallbavkMethed实现降级后的实现逻辑。

3) 超时降级默认1秒。所有要根据具体业务,和调用链具体配置。

  4)服务熔断主要四个配置。

    设置熔断为true

    请求数(统计单位)

    熔断时间(这段时间请求都执行fallback)

    错误百分比

  5)dashboard监控要配合使用。监控熔断,界面监控。

8,dashboard服务监控界面。给hystrix提供界面监控。

9,sleuth链路监控。主要是唯一标识对应一个请求,和一个请求的服务。

1,日志打印唯一请求标识。

    2,配置把数据推向zipkin

   3,抽样百分比(开发环境设置为1)

10,zipkin链路监控可视化。

  1,主要界面可视化查看链路调用情况。

  2,使用的时候,一般pom.xml配置zipkin,包含了sleuth。

*******************************

因为spring cloud还是有点巨大,东西比较多。建议根据业务需要团队人数才采用这个架构。

    

    

    

最新文章

  1. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(3)--为虚拟机指定固定ip
  2. Python学习笔记(一)python基础与函数
  3. 自定义浏览器协议,实现web程序调用本地程序
  4. Node.js的net模块
  5. eclipse web项目转maven项目
  6. Gridview中的数据导出到excel中
  7. IDF - CTF - 牛刀小试
  8. sort 排序详解
  9. wordpress建站过程2——结构
  10. docker的资源限制cpuset cpuquota memory
  11. MVC(3DOnLine)开发过程的一些难点以及知识点
  12. 第4天:scipy库
  13. HDOJ 2006 求奇数的乘积
  14. Solr4.0+IKAnalyzer中文分词安装
  15. WEB架构师成长之路 二
  16. eclipse 中添加自定义 classpath 的方法,以及 javac 和 java 的一些使用细节
  17. Elasticsearch+Kibana+Logstash安装
  18. [leetcode] 3. Pascal's Triangle
  19. ref 和 out 的用法和区别以及params用法
  20. 当重写了 httpservlet重写了GenericServlet的init方法时候 必须显示调用GenericServlet的init方法时候 才能在别的方法(父类创建config实例) 例如 doget里面使用servletContext对象 不重写init 则可以直接使用

热门文章

  1. 【转】在C#中?,?:和??
  2. 操作CLOB数据——oracle
  3. ESP8266 SDK开发: 外设篇-串口
  4. Java基础之内省
  5. UVA - 11400 Lighting System Design(照明系统设计)(dp)
  6. C语言预处理理论2
  7. JS的BOM对象
  8. 开发app
  9. 简单makefile示例
  10. Aspectj切入点语法定义