99
回答
高手问答第 186 期 —— 拥抱 Spring Cloud 拥抱微服务生态
注册华为云得mate10,2.9折抢先购!>>>   

OSCHINA 本期高手问答(1 月 17 日 - 1 月 23 日)我们请来了杨恩雄@杨大仙的程序空间 为大家解答关于 Spring Cloud 以及微服务架构方面的问题。

杨恩雄,从事 Java EE 企业应用开发十多年,曾任中企动力系统设计师、中企开源项目经理、数码辰星科技公司项目经理,参与过多个企业级项目的设计与架构工作,曾负责辰星“电影票网络销售系统”的整体架构,精通 Activiti、Drools、ESB 等开源技术,在 SOA、SaaS、大数据应用、互联网系统架构方面有着丰富的经验,曾出版《疯狂Java实战演义》、《疯狂工作流讲义》第一版与第二版、《疯狂Spring Cloud微服务架构实战》等书籍。

相信各位 Java 开发者对于微服务、Spring Cloud、Spring Boot 等这些技术名词都不会感到陌生。那么对于微服务又该如何理解?如果说微服务是可以独立部署、水平扩展、独立访问(或者有独立的数据库)的服务单元,那么 Spring Cloud 就是这些微服务的大管家,采用了微服务架构之后,项目的数量会非常多,Spring Cloud 作为“大管家”就需要提供各种方案来维护整个生态。

Spring Cloud 是一系列框架的有序集合。它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot 的开发风格做到一键启动和部署。

杨恩雄老师从事 Java EE 企业应用开发十多年,参与过多个企业级项目的设计与架构工作,在 SOA、SaaS、大数据应用、互联网系统架构方面都有着丰富的经验。本期高手问答十分有幸邀请到杨老师和大家一起探讨微服务架构相关问题,欢迎大家踊跃提问。

本期问答内容:

  • 微服务架构实战
  • Spring Cloud 框架
  • Spring Cloud 使用注意事项

或有其他关于 Spring Cloud 或微服务架构的问题,也欢迎大家积极提问!

为了鼓励踊跃提问,@局长 会在问答结束后从提问者中抽取 5 名幸运会员赠予《疯狂Spring Cloud微服务架构实战》一书。

此外,杨老师也为参与本期高手问答的朋友准备了独家福利,只要在本期高手问答进行了提问,都可获得本书的配套视频。(获取方式:站内私信联系杨老师,由杨老师提供视频下载地址,杨老师的空间地址:https://my.oschina.net/JavaLaw/home

图书购买地址:京东

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就 Spring Cloud 或微服务架构的相关问题向杨恩雄老师提问,请直接回帖提问。

举报
局长
发帖于1个月前 99回/4K+阅
共有99个答案 最后回答: 4周前

@杨大仙的程序空间十分感谢杨老师耐心的帮助,帮我解决了一个隐藏很深的坑,如下:对于Spring Cloud的某些坑我都已经排查到IPV4和IPV6的层次了:首先在我机器上装了shadowsockets,在mac上默认的端口为8090,而实例程序中book-sever默认的端口也为8090,通常情况下如果shadowsockets已经在我本机运行,我再启动book-server的话,会因为端口占用而报错;但是恰巧的是,我mac上运行的shadowsockets占用的IPV6的8090,而后运行起来的book-server占用的是IPV4的8090口,因此程序可以正常启动;麻烦的是通过first-router中的Zuul访问localhost:8090时,此时估计访问的是shadowsockets的8090口,因此HTTP response status为405!

--- 共有 2 条评论 ---
hello5orld 回复 @杨大仙的程序空间 : 多谢杨老师的鼎力帮助! 1个月前 回复
杨大仙的程序空间加油! 1个月前 回复

@杨大仙的程序空间 我知道保持数据的一致性,分布式事务是微服务架构的一个重点内容,消息队列,事务两阶段提交可以解决这个,但是我不太清楚到底该如何应用到微服务架构里。老师的课程里有这个吗?

--- 共有 1 条评论 ---
杨大仙的程序空间你好,感谢提问,目前的课程中并没有这部分内容,目前我们团队也在探索的过程中,你可以关注我的博客,我后面会将相关问题以博客文章的方式发出,共同探讨。 1个月前 回复

@杨大仙的程序空间 杨老师您好,您对于将来springboot+springcloud这种组合方式的发展空间是怎么评判的? 会成为将来企业招聘的筛选条件么?对比Dubbo您更推荐cloud的理由是什么啊?

--- 共有 2 条评论 ---
一条弧 回复 @杨大仙的程序空间 : 谢谢杨老师 1个月前 回复
杨大仙的程序空间你好,个人感觉,以后这种组合,很有可能就像10年前的SSH一样,将会成为JavaEE开发人员的必备技能,即使所面试的公司未必会使用这些技术。 1个月前 回复

@杨大仙的程序空间 老师好,看了您的教程明白了spring cloud是怎么使用的,教程简单明了,很容易上手。现在学会了spring cloud,但spring cloud主要用于微服务,实战时不知道如何划分服务,哪些服务不能用于服务等。请老师能否指导些实战经验。另外还有一个问题是如果另外一个不是spring cloud的项目(或者不是java的项目)要调用spring cloud的服务,要怎么调用?要能使用负载均衡的调用服务?

--- 共有 1 条评论 ---
杨大仙的程序空间你好,感谢支持。关于服务划分问题,建议你多跟你们的业务人员、架构师沟通,这并非单纯技术上可以解决的。异构系统间通信的话,可以考虑用传统的SOAP WebService,也可以使用REST风格的WebService,关于负载均衡使用,建议看下我视频中的Ribbon章节,或许对你有帮助。 1个月前 回复

@杨大仙的程序空间   Spring Cloud和spark的结合,咋整? 

--- 共有 1 条评论 ---
杨大仙的程序空间你好,感谢提问,涉及具体的技术问题,可以与我联系,很乐意与志同道合的朋友一起解决,也可以关注我的博客,我会将相关问题以博客文章的方式发出,共同探讨。 1个月前 回复

@杨大仙的程序空间   Spring Cloud主要的应用场景有哪些??使用了 Spring Cloud后,那方面性能会得到提高

--- 共有 1 条评论 ---
杨大仙的程序空间你好,感谢提问,Spring Cloud可应用于一些对性能有较高要求的系统,例如互联网应用,甚至对于一些传统的企业级应用,也可以使用该技术。由于每个服务节点都可以水平扩展,因此可以极大地提高应用层的处理能力。关于单体应用与微服务架构,可参考《疯狂Spring Cloud微服务架构》一书的相关章节。 1个月前 回复

@杨大仙的程序空间 微服务架构中,如果想做到资源的水平自动扩展,Spring Cloud 是否有对这方面给出具体的解决方案?如果有,如何来做到资源(服务实例)的水平扩展?谢谢老师

--- 共有 2 条评论 ---
杨大仙的程序空间你好,感谢提问,每个服务节点本身就可以水平扩展,主要问题在于自动伸缩,这取决于服务器负载、服务节点负载、网络等一系列因素,如果要制定解决方案,建议综合考虑。 1个月前 回复
大脸鼠爱吃猫这个没有的。只有依靠k8s这一类编排工具实现 1个月前 回复

@杨大仙的程序空间

书中有介绍微服务架构的源头发展吗,就好像servlet 到 ssh 到spring boot 这种历程,或者是否可以说是spring boot 的轻量级版,在以后微服务的的占有使用情况比例?

--- 共有 1 条评论 ---
杨大仙的程序空间你好,感谢提问,对于JavaEE的发展历程,书上有讲述,书中内容更倾向于架构上的演进,例如从开始的单体应用到后面的SOA架构,再到目前流行的微服务架构。 1个月前 回复
顶部