【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
很久没做过关于微服务的高手问答了,时隔一年,我们再次邀请到了黄勇老师,OSCHINA 本期高手问答(10 月 18 日-10 月 24 日) 将由@黄勇 为大家解答关于微服务架构方面的问题。
黄勇,现任特赞科技 CTO,曾任阿里巴巴公司系统架构师。具有丰富的互联网产品架构经验与技术管理经验,擅长敏捷开发模式,推崇“轻量级”系统架构。国内开源软件推动者之一,活跃于 OSChina 技术社区,Smart 开源框架创始人,畅销书《架构探险》作者,技术大会讲师,企业内训师。热爱技术交流,乐于分享自己的成长经验。
微服务已经三岁了,对于微服务,大家似乎更多是持观望的态度。事实上,微服务是一个灵活的技术架构,它不应绑定在特定的技术平台上,微服务不存在任何的局限性,同时还要确保较强的兼容性。我们应该用最合适的编程语言和开发框架,以最低的成本实现业务目标。
这正是微服务所提倡的 —— 用最合适的技术以最高效的方式来解决实际应用中的问题。
要完全掌握微服务存在一定的技术门槛,但对开发者而言,掌握这样一项技术是十分有意义的,相信大家对于微服务会有不少的问题,那么不妨带着问题进入到本期的高手问答。
本期问答内容:
- 使用微服务的关键技术点
- 微服务的使用相关案例分享
- 什么时候考虑采用微服务架构?
- 如何快速稳定落地微服务架构?
- Spring Boot + Spring Cloud 就是微服务吗?
或有其他关于微服务的问题,也欢迎大家积极提问!
为了鼓励踊跃提问,@黄勇 会在问答结束后从提问者中抽取 5 名幸运会员赠予《轻量级微服务架构(下册)》一书。
购买链接:https://item.jd.com/12164789.html
OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。
下面欢迎大家就微服务方面的问题向@黄勇 提问,请直接回帖提问。
@黄勇 前段时间研究微服务,学习了spring boot, spring cloud,微服务架构与实践相关分享和书物,苦于没有线上系统的实践经验和指导,这本书涵盖了测试,服务监控,运维等落地方案,真乃久旱甘霖,使人如沐春风!
@黄勇
我的天呐竟然是您!!我买了您所有的书,都是正版!(除了最新这本,在购物车等双十一呢),非常喜欢您的书,非常开心能在这里跟您交流,从您的《从零开始写WEB框架》开始关注您的,最近我也一直在看微服务相关的书,也在公司的项目中进行了部分实践,最近spring mesh的概念很火,istio也在发力,请问您对二者看法如何?真的是微服务的未来会取代spring cloud呢?
再次表示非常开心能跟您交流哈哈哈哈真心希望有机会能跟您在某次技术大会现场见面,签名合影留念!!!期待啊!!!
@黄勇 您好 , 有两个问题请教一下:
1. 针对现有的系统如何进行服务化改造,有什么比较好的方式
2. 在服务拆分之后,服务方法的权限应该要怎么控制,针对不同的调用者和不同的控制粒度
@黄勇 微服务是不是对运维的要求非常高?老系统平滑的迁移到微服务,有真实案例可以借鉴吗?
@黄勇 微服务会增大维护人员的工作? 之前我们公司把比较重的老系统拆分成微服务时基本是重做一套新的系统,新老系统并行一段时间,然后把老系统废弃,请问这种拆分工作有经验介绍下子么
@黄勇
目前我们使用dubbo做服务,遇到的问题:
1. 由于dubbo没有springcloud体系下的服务网关,我们都是在用户终端(浏览器、手机等)调用一个web后台,通过web后台来提供类似facade的功能来集成后面的各种服务,这种模式您有什么看法?或者有没有更好的建议?
2. 用户鉴权这块,我理解的一般的微服务架构,应该是由服务网关来做用户鉴权,比如校验header里token之类的,比如使用openresty用lua连redis来校验token或JWT等。而由于我们服务使用dubbo提供,在dubbo之前还有一个web应用,web应用目前使用的传统的session和JWT相结合的方式。不知道您有没有更好的推荐的方式
3. 微服务后,数据一致性的问题必然会出现。目前我们暂时没有做到分布式事务,一般都是关键数据先入库,通过定时任务读库重试,后台在来一个处理状态的查询。这样的问题您怎么看
4. 链路跟踪,目前在研究PinPoint,能对服务的调用情况做一些统计分析和监控,但是部署好后感觉好像没有这个系统一样,因为部署好后经常忘记上去看看,好像不存在这个系统一样。不出问题就不会去关注。不知道是不是关注点或使用习惯上理解有偏差,我们往往忽视这个系统,感觉作用不太大
@黄勇
最近团队也在考虑微服务架构落地问题,背景是2B业务系统,日UV上百
1. 由PlayFramework迁移至SpringBoot成本大,价值低,效果差...(换技术框架为了能快速使用已用的组件,社区活跃度高)
2. 梳理独立业务,抽取为服务。对外提供RPC或Http服务
感觉本身业务形态决定了,系统架构,不知道老师会有什么想法呢。
@黄勇 你好!几年前买了《从零开始写web框架》算是对web框架理解的启蒙书吧,没想到几年时间,我们在微服务这里又遇见了。我的问题是:
1.微服务和一般的分布式架构的本质区别到底是在什么地方?微服务架构必然是分布式架构?
2.之前我做过一些调查和实践开发,在公司内部推广时介绍了一些spring cloud和docker的使用,但是大家并没感觉这个架构能带来多少便利,反而增加了工作量(我们是几十人的小公司,做一些微信以及管理平台的业务开发。项目都没前后分离,前端,运维都不专业)。这样的外部条件是不是根本不可能推动微服务?
3.一般来说,微服务是不是更适用于业务快速变化迭代的互联网公司的项目,而不是业务类型基本固定的传统公司项目? 问题有点多,感恩!!
@黄勇
微服务中分布式的用户认证和权限管理,是个关键。
最近正好研究这个问题,可参考:https://my.oschina.net/u/3532467/blog/1554174