济南Java培训
达内济南山大路中心

17156168575

热门课程

Java-互联网架构-微服务架构SpringCloud

  • 时间:2017-09-18
  • 发布: 济南Java培训机构
  • 来源: 济南Java培训机构

    济南Java培训机构课程结合行业技术趋势及企业用人需求的变化,及时更新,课程至少每半年进行一次升级,保证学习质量.
 济南Java培训机构
    一:什么是微服务(Microservice)

    微服务不是什么?

    微服务不是SOA;

    微服务不是一种设计模式;

    微服务不是最佳实践;

    微服务不是解决大型业务架构的救命稻草;

    微服务不适合初创团队或者企业来使用;

    微服务是什么?

    微服务是一种架构理论;

    微服务由很多具有高内聚、低耦合的服务组成;

    微服务之间的通信应该是轻量级的,推荐使用傻瓜式的MQ组件而不是大而全的ESB;

    微服务是一种按照业务功能来划分团队的协作模式,通常需要高质量的全栈人才作为支撑;

    微服务解决的痛点问题有哪些?

    应用服务的可扩展能力是重中之重;

    高效的发布机制和尽量短的发布周期;

    实现微服务架构的前置条件有哪些?

    一个大型的项目或者应用;

    严格的自动化部署和监控机制;

    有效的容器平台:Docker或者其他;

    系统服务之间的微服务是非共享的;

    二:SpringCloud和Dubbo的区别问题

    Dubbo是RPC服务治理框架,和Spring Cloud一样具备服务注册、发现、路由、负载均衡等能力.但是没有配置中心,完整的好用全链路监控,需要采用开源的解决方案定制或者自研.Spring cloud的配置中心,全链路监控等组件.从目前来看,Spring Cloud国内中小型企业用的比较多,大型企业可能需要对其需要的组件进行定制化处理.

    但是也需要看到Spring Cloud基于注解的服务发现,服务治理等功能具有代码侵入性,dubbo没有代码侵入性,业务开发人员不需要通过注解的方式去关注框架级别的处理.从中间件或者做基础架构的角度来看,其实服务治理等功能对普通的业务程序员应该是透明的,业务程序员不需要关注服务治理框架的使用,专注于业务代码即可

    三:SpringCloud简介

    Spring Cloud是一个相对比较新的微服务框架,今年(2016)才推出1.0的release版本. 虽然Spring Cloud时间最短, 但是相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系统解决方案.

    Spring Cloud 为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性token,全居琐,leader选举,分布式session,集群状态)中快速构建的工具,使用Spring Cloud的开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接.

    相关组件架构图

    Java-互联网架构-微服务架构SpringCloud介绍

    济南Java培训机构课程结合行业技术趋势及企业用人需求的变化,及时更新,课程至少每半年进行一次升级,保证学习质量.

    spring cloud子项目包括:

    Spring Cloud Config:配置管理开发工具包,可以让你把配置放到远程服务器,目前支持本地存储、Git以及Subversion.

    Spring Cloud Bus:事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署.

    Spring Cloud Netflix:针对多种Netflix组件提供的开发工具包,其中包括Eureka、Hystrix、Zuul、Archaius等.

    Netflix Eureka:云端负载均衡,一个基于 REST 的服务,用于定位服务,以实现云端的负载均衡和中间层服务器的故障转移.

    Netflix Hystrix:容错管理工具,旨在通过控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力.

    Netflix Zuul:边缘服务工具,是提供动态路由,监控,弹性,安全等的边缘服务.

    Netflix Archaius:配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能.

    Spring Cloud for Cloud Foundry:通过Oauth2协议绑定服务到CloudFoundry,CloudFoundry是VMware推出的开源PaaS云平台.

    Spring Cloud Sleuth:日志收集工具包,封装了Dapper,Zipkin和HTrace操作.

    Spring Cloud Data Flow:大数据操作工具,通过命令行方式操作数据流.

    Spring Cloud Security:安全工具包,为你的应用程序添加安全控制,主要是指OAuth2.

    Spring Cloud Consul:封装了Consul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成.

    Spring Cloud Zookeeper:操作Zookeeper的工具包,用于使用zookeeper方式的服务注册和发现.

    Spring Cloud Stream:数据流操作开发包,封装了与Redis,Rabbit、Kafka等发送接收消息.

    Spring Cloud CLI:基于 Spring Boot CLI,可以让你以命令行方式快速建立云组件.

    SpringCloud特点如下:

    (优点)

    - 开发简单直接,集中式管理

    - 基本不会重复开发

    - 功能都在本地,没有分布式的管理开销和调用开销

    (缺点)

    - 开发效率低:所有的开发在一个项目改代码,递交代码相互等待,代码冲突不断

    - 代码维护难:代码功能耦合在一起,新人不知道何从下手

    - 部署不灵活:构建时间长,任何小修改必须重新构建整个项目,这个过程往往很长

    - 稳定性不高:一个微不足道的小问题,可以导致整个应用挂掉

    - 扩展性不够:无法满足高并发情况下的业务需求

    四: SpringBoot了解

    spring-boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者.

    多年以来,Spring IO平台饱受非议的一点就是大量的XML配置以及复杂的依赖管理.在去年的SpringOne 2GX会议上,Pivotal的CTO Adrian Colyer回应了这些批评,并且特别提到该平台将来的目标之一就是实现免XML配置的开发体验.Boot所实现的功能超出了这个任务的描述,开发人员不仅不再需要编写XML,而且在一些场景中甚至不需要编写繁琐的import语句.在对外公开的beta版本刚刚发布之时,Boot描述了如何使用该框架在140个字符内实现可运行的web应用,从而获得了极大的关注度,该样例发表在tweet上.

    然而,Spring Boot并不是要成为Spring IO平台里面众多"Foundation"层项目的替代者.Spring Boot的目标不在于为已解决的问题域提供新的解决方案,而是为平台带来另一种开发体验,从而简化对这些已有技术的使用.对于已经熟悉Spring生态系统的开发人员来说,Boot是一个很理想的选择,不过对于采用Spring技术的新人来说,Boot提供一种更简洁的方式来使用这些技术.

    济南Java培训机构课程结合行业技术趋势及企业用人需求的变化,及时更新,课程至少每半年进行一次升级,保证学习质量.

 济南Java培训机构

上一篇:分库分表分布式下如何实现ID全局唯一性
下一篇:JAVA面试需要注意什么?实训有多重要?

构建高并发和高可用的电商平台架构实践原理

为何程序员总是被黑?

Java-互联网架构-微服务架构SpringCloud

零基础的人学Java和python哪个更合适?

选择城市和中心
贵州省

广西省

海南省

达内教育

有位老师想和您聊一聊