03 | 初窥门径:我们要搭建一个怎样的微服务实战项目?
优惠券平台项目介绍
- 深入了解
- 翻译
- 解释
- 总结
本文详细介绍了微服务架构下的规划和技术选型,涵盖了微服务通信、服务容错、配置管理、分布式链路追踪、消息驱动和分布式事务等关键技术。作者首先介绍了一个优惠券平台项目的整体功能和模块,包括优惠券模板服务、计算服务、用户服务和平台类组件。接着,作者规划了Spring Boot实战项目,包括项目搭建、数据操作和开放对外API等技术点。最后,作者提出了Spring Cloud实战项目的全景规划,分为三个阶段:搭建基础的微服务功能、构建服务容错和分布式配置中心、实现微服务网关和分布式事务。在第一阶段,作者介绍了使用Nacos注册中心、Loadbalancer客户端负载均衡组件和OpenFeign服务间调用组件实现微服务之间的通信。在第二阶段,重点是利用服务容错提高微服务架构的可用性,搭建全链路的分布式链路追踪能力,以及实现统一的配置管理和动态属性推送。第三阶段的实战重点包括搭建微服务网关作为统一流量入口,使用消息驱动组件对接RabbitMQ,以及通过分布式事务保证数据一致性。整体来看,本文涵盖了微服务架构的规划和技术选型,适合想要了解微服务实战项目的读者阅读。
《Spring Cloud 微服务项目实战》,新⼈⾸单¥59
全部留言(35)
- 最新
- 精选
- Pyr0man1ac姚老师 能否扩展下微服务中鉴权相关知识点
作者回复: 行家,一眼就发现我漏掉的一个模块了,之前课程里我都会通过security组件做一个oauth鉴权模块。这次没有加上,我后期看考虑在代码里坐上这部分。 话说同学,你的头像和我一位同事一样,不会是同一个人吧
2021-12-18519 - chon我看前面有同学留言讨论优雅下线。我也有个相关问题。如果容器应用突然挂了,由于上游应用和注册中心同步需要时间,流量一段时间内还是会打到挂了的应用。这样500错误很多很难看。dubbo因为基于zookeeper就没这问题,能很快发现应用挂了。sc有啥好的方案能快速发现下游应用挂了,避免流量打到挂了的下游吗?
作者回复: 其实就是在CP和AP之间做一个选择。如果用长会话做健康检查,并且用CP方案在注册中心集群内做状态同步,那么就是一种偏向一致性的实现模式。而大部分注册中心在一致性和可用性之间选择的是偏向可用性,AP方案,对一致性采取了一定的容忍,只要最终一致即可。如果要适当提高一致性,你可以调整心跳频率和剔除判定的时间,提高服务剔除的响应速度 微服务下的很多场景都是偏向最终一致性
2021-12-2211 - 李嘉颖我想深入一点了解一下限流降级熔断
作者回复: 后面会讲到sentinel的流控和熔断规则,以及扩展sentinel实现基于来源的限流,dashboard二次开发接入nacos做规则持久化
2021-12-179 - 公号-技术夜未眠很接地气,请老师加餐讲讲基于k8s的微服务弹性落地方案,谢谢老师
作者回复: 奥利给~
2021-12-188 - Layne希望老师讲解一些微服务部署相关方面的知识内容,如容器类似的知识,怎么与微服务结合使用。
作者回复: 我考虑后面用加餐的方式,添加一部分容器的知识介绍。课程里在日志系统搭建这里也会简单介绍一下docker的使用
2021-12-1728 - 卡特非侵入的Skywalking可以替换Zipkin吗?SDK侵入比较严重
作者回复: 可以,不光skywalking,像jaegertracing之类的都可以用(jaeger也是受zipkin启发搞出来的)。zipkin本身不用集成SDK到项目代码里,只要通过sleuth-zipkin插件就可以间接集成,我在项目中会通过RabbitMQ接收链路信息,服务将链路信息发送给RMQ,zipkin通过监听RMQ来获取数据。只用添加三两行配置就能实现
2021-12-187 - 威威威小哥老师能在项目中顺带讲下接口幂等解决方案吗
作者回复: 这部分我倒是没有涉及,很多公司是提供了一种平台化的服务来做幂等性检查,接口参数里带有的幂等ID字段,方法先用这个ID调用幂等校验服务做一层检查。我这里所说的平台化服务,就是公司层面开发的供给各个业务方使用的基础服务,比如像ID生成器这类服务。
2021-12-206 - 破发者老师,如果一笔业务交易是调用了多个服务之后才完成,每个服务都能单独部署,是不是这样就可以称之为使用了微服务?
作者回复: bingo,大体上就是这样。不过更深层次还要考虑以什么角度做服务切分,比如领域建模等等。像大厂里会供着一些领域建模的专家,比如订单域交易域这些核心领域的架构,还是挺吃经验的。 独立拆分部署是微服务表现形式,是表象,不过为了支持这种表象,我们还有很多infra层面的技术支持,这就是后面我们要介绍的各个组件了
2021-12-186 - 胡杨能不能再加一个基础服务,就是ID生成器服务
作者回复: ID生成器是个很复杂的平台类服务,高并发的ID分发要求分段批量获取+预加载模式,每个发号器预先领取一个号段,在即将消耗完之前从中心节点继续领号。而且对于订单类场景,还要设置特殊的号段分发规则,否则竞争对手可以根据ID来大致估算出你一天的订单量。对于某些金融行业要求的“非跳号”的ID分发就更加麻烦一些。 我们这个练手项目还不需要深入到发号器的业务逻辑,用DB incremental ID简单解决了
2021-12-176 - 来来老师有没有spring cloud优雅下线的方面的讲解
作者回复: 这部分没有单独展开讲,优雅退出方案就是尽可能减少nacos instance下线和后台服务下线之间的时间差。这里要结合你的部署方案来看。现在大多公司都会选择k8s容器编排,新建POD然后等完全启动好之后关停老的POD,那么你可以在老的pod关闭之前设置一个hook,主动调用nacos服务的Delete方法做下线/nacos/v1/ns/instance,然后在执行关停POD的操作。
2021-12-1735