前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot详细研究-05微服务与拾遗

SpringBoot详细研究-05微服务与拾遗

作者头像
用户1216676
发布2018-01-24 16:30:44
1.4K0
发布2018-01-24 16:30:44
举报
文章被收录于专栏:熊二哥

这将是SpringBoot学习系列的最后一篇文章,主要涉及Spring Cloud和JHispter两个知识点,都具有一定综合性,需要多加实践加强理解。

Spring Cloud

微服务Microservice是今年最火的观念,它的含义是使用定义好边界的小的独立组件来做好一件事情,微服务是相对与传统单块式架构而言的。传统系统易于部署,但可伸缩性差,违反单一功能原则。Spring Cloud提供了分布式开发的完整解决方案,其基于Spring boot,提供了配置管理、服务发现、断路器、代理服务等常见功能。此外,Cloud开发的应用特别适合在Docker或Paas平台,被称为原生云应用。 配置服务:提供了Config Server,它在分布式系统中起到外部配置的功能,通过配置服务,可以集中存储所有应用的配置文件。(QConfig,Apollo) 服务发现:通过Netflix OSS的Eureka来实现服务发现,Eureka Server为微服务注册中心。(SOA服务治理中心,自动发现,Zookeeper) 路由网关:为了让所有微服务对外只有一个接口,不同请求被网关代理到不同服务。通过Zuul实现,支持自动路由映射到Eureka Server上注册的服务,提供@EnableZuulProxy启动路由代理。 负载均衡:提供Ribbon和Feign作为客户端负载均衡,比如使用Ribbon直接注入一个RestTemplate对象,此RestTemplate已经做好负载均衡的工作;使用Feign只需要定义一个注解,有@FeignClient注解的接口,然后使用@RequestMapping注解在方法上映射远程的REST服务,此方法也已做好负载均衡。 断路器(Circuit Breaker):解决当某个方法调用失败的时候,调用后备方法来替代失败的方法,来达到容错,阻止级联错误的功能(关键服务的服务降级,避免服务不可用)。此外,框架提供一个控制台来监控断路器的运行情况,通过@EnableHystrixDashboard注解开启。(问题,能否提供类似CAT的监控功能,可以查看接口调用的频次,响应时的时间等) Tip: GitDemo: https://github.com/wanliwang/bluesky 在构建项目时,比较负载的就是web部分,会用到ribbon,feign,zuul,circuitbreaker等,通过会使用webjar加载脚本框架。

基于Docker的部署 Dockerfile编写,以config模块为例

  1. runboot.sh脚本编写,位于src/main/docker,根据启动顺序,调整sleep时间
  2. Dockerfile编写,位于src/main/docker
  3. 配置Docker的maven插件,请见config子模块
  4. 编译镜像,默认编译到localhost,可以在windows环境变量中配置DOCKER_HOST,并执行mvn clean package docker:build -DskipTests

Tip: 此外还可以使用DockerCompose来定义和运行多容器应用,其使用一个docker-compose.yml来描述多容器的定义,使用docker-compose up -d运行整个应用。

JHipster

JHipster是一个代码生成器(基于nodejs+yeoman),可以生成基于Spring Boot和AngularJS的项目,通常来说,需要按照如下步骤进行安装。安装后,可以发现代码结构和配置比较复杂,一定要用心慢慢分析。

  1. 安装nodejs
  2. 安装Git
  3. 安装Yeoman generator: npm install –g yo (可能需要先升级npm,npm –g install npm)
  4. 安装JHipster: npm install –g generator-jhipster
  5. 安装bower: npm install –g bower, js下载工具
  6. 安装grunt或gulp: npm install –g grunt-cli, js打包工具
  7. 生成项目,选择dir,yo jhipster
  8. 运行,mvn spring-boot :run,然后访问8080即可,admin:admin

Tip: 前端常见的js构建工具包括grunt, gulp和webpack。当前前端代码越来复杂,维护、打包和发布越来越繁琐,这些工具就是针对这些痛点而生的。 grunt: http://www.gruntjs.net/, http://www.gruntjs.net/getting-started gulpjs: http://www.gulpjs.com.cn/ webpack: http://webpackdoc.com/ bower的基本使用:bower install jquery underscore,下载到当前 详情参考博文:http://www.jianshu.com/p/621dfb94c3b6 npm安装程序时的默认位置: npm config set prefix E:\nodejs\node_modules\npm npm安装程序时的缓存位置: npm config set cache xxx 此外,该项目还依赖git和yarn,yarn是hadoop资源管理器。

参考资料

  1. 李智慧. 大型网站技术架构[M]. 北京:电子工业出版社, 2013.
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-06-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Spring Cloud
  • JHipster
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档