内容提要

本文涉及以下内容:

  1. 微服务架构介绍
  2. spring cloud介绍
  3. jhipster架构介绍

微服务架构介绍

微服务概念

微服务和SOA很相似,都是按照业务功能把系统拆分成一个一个的服务。比如电子商务系统拆分成订单服务,商品服务等,每个微服务都是自治的,可以单独部署。
微服务和SOA的区别是:微服务粒度更细,通信协议倾向于使用restfull api 而不使用webservice。
微服务有很多优点,包括松散耦合、自治服务、分散化治理以及易于持续交付等等。
微服务大的缺点是服务的可用性、数据的一致性等
微服务架构和单体应用架构对比:

微服务架构技术关注点

首先看一个概览图:


从上图可以看出,主要分为交付和开发两个方面,微服务化后需要部署众多的独立程序,给运维带来了较大的压力,使用docker可以很好的解决这个问题。

现在主要说下开发方面的技术点

1 服务注册、发现、负载均衡,容错(服务注册中心->兼配置中心)
2 服务间的通信(消息模式,RPC模式)
3 api网关(路由,监控,安全认证,日志,限流)
4 微服务周边设施:日志中心,监控中心 ,文档自动生成

spring cloud介绍

Spring Cloud是Springframework里的一个项目,提供了开发分布式系统中比较常见的一些模式能力。其中配置管理(Config Server)、服务发现(Eureka)、服务熔断(Hystrix)、网关(Zuul)等是基于Netflix OSS的一个封装,利用Java注解(annotation)声明,可以在Spring Boot应用里便捷地使用Netflix的开源产品构建生产级可用的微服务应用

jhipster介绍

jhipster是一个方便的代码生成工具。可以生成整套微服务架构项目基础代码,后端使用spring(spring cloud ,spring boot等),前端使用angularjs。
jhipster 还有两个重要的开源项目,

  1. jhipster-registry,基于 Spring Cloud Netflix Eureka 和 Spring Cloud Config,实现服务注册、发现,配置管理等
  2. jhipster-console,基于ELK,实现日志中心和监控中心。

jhipster架构图1:

jhipster架构图2:

jhipster各组件启动顺序

  1. 启动jhipster-registry --服务和网关依赖注册中心,如果不先启动注册中心,服务和网关启动不了。
  2. 启动jhipster-console--如果使用这个控制台的话需要优先于具体服务启动
  3. 启动具体服务--例如订单服务,商品服务。服务启动时会把自己注册到注册中心,方便别的服务或网关调用
  4. 启动网关--这里的网关指jhipster生成的gateway类型的项目,是一个基于angular的前端

参考文档:

  1. jhipster中文网站

  2. 微服务架构介绍
  3. 微服务技术关注点
  4. spring cloud 各组件介绍
  5. 在阿里云容器服务上开发基于Docker的Spring Cloud微服务应用

本文涉及的开源项目介绍:

  • Netflix ribbon 可以实现进程内(客户侧)负载均衡,配合netflix eureka 可以实现动态服务列表

  • Netflix eureka Eureka是一个服务注册表,由两个组件组成:Eureka服务器和Eureka客户端。Eureka服务器用作服务注册服务器。Eureka客户端是一个java客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供服务的故障切换支持。

  • Netflix Hystrix 通过控制那些访问远程系统、服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。Hystrix具备拥有回退机制和断路器功能的线程和信号隔离,请求缓存和请求打包(request collapsing,即自动批处理,译者注),以及监控和配置等功能。
  • Netflix zuul Zuul 是提供动态路由,监控,弹性,安全等的网关服务
  • spring-cloud-netflix 该项目是Spring Cloud的子项目之一,主要内容是对Netflix公司一系列开源产品的包装,它为Spring Boot应用提供了自配置的Netflix OSS整合。通过一些简单的注解,开发者就可以快速的在应用中配置一下常用模块并构建庞大的分布式系统。它主要提供的模块包括:服务发现(Eureka),断路器(Hystrix),智能路有(Zuul),客户端负载均衡(Ribbon)等。
  • jhipster-registry,基于 Spring Cloud Netflix Eureka 和 Spring Cloud Config,实现服务注册、发现,配置管理等
  • jhipster-console,基于ELK,实现日志中心和监控中心。

jhipser微服务架构介绍的更多相关文章

  1. 微服务架构介绍和RPC框架对比

    微服务架构介绍和RPC框架对比 1.微服务架构 1.1 特征 自动化部署,端点智能化,语言和数据的去中心化控制. 1.2架构 一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中 ...

  2. 远程服务调用RPC框架介绍,微服务架构介绍和RPC框架对比,dubbo、SpringClound对比

    远程服务调用RPC框架介绍,微服务架构介绍和RPC框架对比,dubbo.SpringClound对比 远程服务调用RPC框架介绍,RPC简单的来说就是像调用本地服务一样调用远程服务. 分布式RPC需要 ...

  3. Spring Cloud Alibaba微服务架构入门最容易理解篇

    微服务架构介绍 Spring Cloud Alibaba推荐的微服务生态架构基于分层架构实现如下: 接入层:最外层为LVS+Keepalived,可承受几十万级高并发流量洪峰,然后再通过内层的ngin ...

  4. 微服务架构之spring cloud 介绍

    在当前的软件开发行业中,尤其是互联网,微服务是非常炽热的一个词语,市面上已经有一些成型的微服务框架来帮助开发者简化开发工作量,但spring cloud 绝对占有一席之地,不管你是否为java开发,大 ...

  5. 微服务架构学习与思考(10):微服务网关和开源 API 网关01-以 Nginx 为基础的 API 网关详细介绍

    微服务架构学习与思考(10):微服务网关和开源 API 网关01-以 Nginx 为基础的 API 网关详细介绍 一.为什么会有 API Gateway 网关 随着微服务架构的流行,很多公司把原有的单 ...

  6. 微服务架构学习与思考(11):开源 API 网关02-以 Java 为基础的 API 网关详细介绍

    微服务架构学习与思考(11):开源 API 网关02-以 Java 为基础的 API 网关详细介绍 上一篇关于网关的文章: 微服务架构学习与思考(10):微服务网关和开源 API 网关01-以 Ngi ...

  7. 【微服务架构】SpringCloud组件和概念介绍(一)

    一:什么是微服务(Microservice) 微服务英文名称Microservice,Microservice架构模式就是将整个Web应用组织为一系列小的Web服务.这些小的Web服务可以独立地编译及 ...

  8. springcolud 的学习(二).微服务架构的介绍

    什么是微服务微服务架是从SOA架构演变过来,比SOA架构粒度会更加精细,让专业的人去做专业的事情(专注),目的提高效率,每个服务于服务之间互不影响,微服务架构中,每个服务必须独立部署,互不影响,微服务 ...

  9. 今天介绍一下自己的开源项目,一款以spring cloud alibaba为核心的微服务架构项目,为给企业与个人提供一个零开发基础的微服务架构。

    LaoCat-Spring-Cloud-Scaffold 一款以spring cloud alibab 为核心的微服务框架,主要目标为了提升自己的相关技术,也为了给企业与个人提供一个零开发基础的微服务 ...

随机推荐

  1. nodejs系列笔记02---模块路径解析

    模块路径解析规则 参考这篇博客 我们已经知道,require函数支持斜杠(/)或盘符(C:)开头的绝对路径,也支持./开头的相对路径.但这两种路径在模块之间建立了强耦合关系,一旦某个模块文件的存放位置 ...

  2. easyUI datagrid 排序

    easyUI datagrid 排序 1.首先设置datagrid属性sortName 2.设置sortOrder 3.设置remoteSort(注:此属性默认为true,如果如果是对本地数据排序必须 ...

  3. android BroadCastRecevier笔记

    学习android的Broadcast,笔记记录于此. BroadCastRecevier用于接受其他应用发送的广播. BroadCastReceiver工作,需要2步. 创建Broadcast Re ...

  4. FFmpeg在Android上的移植优化步骤

    http://blog.csdn.net/feixiang_john/article/details/7894188 从事多媒体软件开发的人几乎没有不知道FFmpeg的,很多视频播放器都是基于FFmp ...

  5. par函数的adj 参数- 控制文字的对齐方式

    adj 用来控制文字的对齐方式,取值范围为0到1,控制图片中x轴和y轴标签,标题,以及通过text 添加的文字的对齐方式 0表示左对齐,代码示例: par(adj = 0)plot(1:5, 1:5, ...

  6. perl 脚本将phred33 转换为phred64

    今天用fastx_tookit 时遇到问题, 我的fastq 文件的碱基质量值格式为phred33, 而fastq_tookit 默认碱基质量值的格式为phred64, 所以报错了,提示我的fastq ...

  7. 基于PhoneGap3.4框架的iOS插件的实现

    Phonegap 提供了iOS 设备的基础特性接口来供HTML页面调用,可是这些基础接口不能满足我们的一些特殊需求,所以有时候我们须要开发插件来扩展其功能. 基于PhoneGap3.4框架的iOS插件 ...

  8. EasyUI 扩展自定义EasyUI校验规则 验证规则

    $.extend($.fn.validatebox.defaults.rules, {CHS: {validator: function (value, param) {return /^[\u039 ...

  9. 父div高度不能自适应子div高度的解决方案

    <div id="parent"><div id="content"> </div></div> 当conten ...

  10. Vertex and FragmentShader顶点与片段着色器

    一.顶点与片段着色器简介 Vertex and FragmentShader:最强大的Shader类型,也是本系列的重点,下文中简称V&FShader,属于可编程渲染管线.使用的是CG/HLS ...