`

微服务系统设计(元素)

 
阅读更多
以springboot框架来设计一个微服务系统,可以利用现有的springcloud微服务体系,可以大大节省开发人员的开发时间

springcloud解决的是企业开发过程中,会遇到的各种问题,节省企业效率。但这些框架对开发者的技术提升或对技术的理解来说并不是好事。这就相当于公司买了一些技术产品,然后开发的过程中,技术人员调用它们,要在以前这些技术产品都要技术人员开发,现在开发人员完全纯写业务。对技术有追求的人,对springcloud做到会用就行。

任务一门技术或框架的诞生都是围绕着企业开发遇到的问题而应用而生的,这可以技术人员看轻技术的一个原因。

以企业遇到的问题为例:

配置文件(配置中心)  - springcloud-config

服务治理(zookeep)   - springcloud-eureka

网关                - springcloud-zuul

客户端负载均衡(服务器端负载均衡)    - springcloud-ribbon(feign)


一直希望可以做些有挑战的项目,很多事情也是可遇不可求。






话外(如何保证消息队列的消息按顺序消费):
这里面涉及到2方面问题:
生产者按顺序;
消费者按顺序;


对于生产者按顺序:

在发送的消息上加标识,经过hashcode得到相同值,发送到固定的队列。对于kafka而言,即为partion。这样可以保证消息按顺序发送

这里会有一个问题,即发送A、B2个消息,发送A成功了,而发送B失败了。这种情况kafka是怎么解决的呢。
https://blog.csdn.net/thekenofDIS/article/details/79973589

即为:
在发送阻塞前对于每个连接,正在发送但是发送状态未知的最大消息数量。如果设置大于1,那么就有可能存在有发送失败的情况下,因为重试发送导致的消息乱序问题。
所以我们应该将其设置为1,保证在后一条消息发送前,前一条的消息状态已经是可知的。



还可以借鉴TCP发送消息的机制,多个发送的消息根据某些协议是一个整体,在消费端对消息进行校验,当接受到消息A时,根据协议计算出是否有后续消息

或者合并多个消息为一个消息,但这是消息设计耦合度或许有点低



对于消费段而言:
如何队列里面的消息是顺序是有序,那当然“消费”时候也是有序,这里的消费指的是接收消息的顺序,不能代表消息处理完成的顺序





整体而言:

按顺序消费的实质是处理的消息应该有先后顺序,有先后顺序的消息之间应该有某种关联性,例如有2个消息,(它们有相同的key值),A和B,随意发送到消费端,先持久化到数据库中,统计当此key的消息统计有2条值,说明2个消息都获取到了,然后再按顺序消费2个消息。

分享到:
评论

相关推荐

    微服务架构介绍.pdf

    它是软件系统的设计蓝图,指导开发者如何组织软件的结构和元素。架构师的职责包括定义规范、指导落地。架构不是一成不变的,它会随着业务需求和技术发展而演进。 架构的演进过程通常包含多个阶段,从早期的单块架构...

    基于Java的Spring Cloud微服务架构设计源码分析

    每个部分都是微服务架构中的关键组成,对整个系统的设计、开发和运行都有着至关重要的作用。通过源码分析,开发者可以深入理解Spring Cloud各个组件的内部工作原理,从而更好地在项目中应用这些组件,实现微服务架构...

    互联网金融微服务架构设计.pptx

    它提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。ESB使用户可以不受限制地重复使用软件,把各种资源互连起来。 SOA和ESB的区别在于,SOA是一种方式或架构,用于具有自服务功能的应用程序,而ESB是...

    基于Java和Vue的微服务版帮扶系统设计源码

    该项目是一个集成了Java和Vue技术栈的微服务架构帮扶系统,其源码提供了完整的设计方案和丰富的文件资源。系统的设计利用了微服务架构的优势,旨在为帮扶服务提供高效率和灵活性的解决方案。系统源码包包含了727个...

    基于kelvins-io/kelvins的gRPC微服务微商城支付系统设计源码

    本项目是一个基于kelvins-io/kelvins框架和gRPC协议的微服务微商城支付系统设计源码。该系统设计聚焦于支付功能,其中kelvins框架可能是项目开发中的一个自定义或开源框架,为系统提供了一定的基础设施支持。gRPC...

    基于Java语言的若依微服务架构设计源码与前端Vue/JavaScript实现

    在当今快速发展的互联网时代,微服务架构已经成为大型应用系统设计的主流趋势。微服务架构允许我们将一个大的系统拆分成一系列小的、独立运行的服务,每个服务运行在自己的进程里,并且可以采用最适合该服务的技术栈...

    基于redkale微服务框架的极简易扩展高性能社区系统设计源码

    本项目的社区系统设计充分利用了redkale微服务框架的优势,结合了多种开发技术和编程语言,实现了系统的高性能、易扩展以及良好的用户体验。项目文件结构的合理组织和管理也为项目的开发和维护提供了便利。这种设计...

    基于Java微服务的超市管理系统后端设计与实现源码

    该项目依托于Java微服务架构,着重打造了一个适用于超市管理的后端系统。通过微服务架构,系统能够将复杂的应用程序分解成一系列小的、松散耦合的服务,每一个服务围绕特定的业务功能构建,并通过定义良好的API进行...

    基于SpringCloud微服务的服装设计协作系统

    - 探索人工智能技术在服装设计领域的应用,如智能推荐设计元素、自动生成设计稿等。 - 加强与供应链管理系统的集成,实现从设计到生产的全流程数字化管理。 总之,《基于SpringCloud微服务的服装设计协作系统》...

    基于 Vue3、Typescript 框架开发的 Fish Cloud 微服务系统前端UI页面.zip

    总的来说,"基于 Vue3、Typescript 框架开发的 Fish Cloud 微服务系统前端UI页面"意味着该项目采用了现代前端技术栈,提供了强大的开发工具链和组件库,旨在构建高质量、可维护的微服务前端应用。开发者需要对Vue3、...

    基于Vue.js和SpringBoot微服务架构的工程用具管理系统设计源码

    本文档所涉及的项目便是一款采用Vue.js前端框架和SpringBoot后端技术搭建的微服务架构工程用具管理系统的设计源码。 该系统的核心设计思想在于采用微服务架构,这种架构通过将复杂的大型应用分解为一系列小的、独立...

    基于Vue、TypeScript的legend-cloud企业级微服务商城系统商家端UI设计源码

    本项目是一款基于Vue和TypeScript构建的企业级微服务商城系统商家端UI设计源码。Vue是一种用于构建用户界面的渐进式JavaScript框架,以数据驱动和组件化的思想设计,能够提高开发效率和维护性。TypeScript是...

    基于DDD和微服务中台架构与实现

    【基于DDD和微服务的中台架构与实现】是一本深度探讨现代企业IT架构的书籍,作者欧创新和邓頔结合实践经验,阐述了如何利用领域驱动设计(DDD)和微服务架构构建灵活且高效的中台系统。以下是该书涉及的主要知识点:...

    基于Spring-Ai框架的Nexfly微服务设计源码

    Nexfly项目正是这样一个典型的案例,它利用Spring-Ai框架设计出了一系列微服务组件,以支持现代企业应用程序的AI功能需求。 在Nexfly项目中,微服务架构的应用使整个系统由多个独立、自治的服务组成,每个服务都...

    基于彩虹中台可视化组件库的微服务快速落地设计源码

    在当今快速发展的信息技术行业中,微服务架构已经成为构建大型应用系统的首选范式。微服务架构通过将复杂的单体应用拆分成小的、独立的、按业务划分的服务来提升系统的可维护性、灵活性和可扩展性。而为了更好地适应...

    基于Java、Vue和TypeScript的珠海校园微服务设计源码

    在当今信息化社会,校园微服务架构的设计与实现成为了高校信息技术部门提高服务效率、优化资源配置、增强系统可维护性的重要课题。基于Java、Vue和TypeScript的珠海校园微服务设计源码提供了一套完整的解决方案,它...

    spring cloud集成全渠道在线客服以及后台管理系统,所有微服务之间的消息传递采用区块链技术.zip

    描述中的“人工智能-项目实践-信息化管理-信息管理系统设计与开发”表明该项目不仅涉及传统的信息管理系统设计,还融入了人工智能元素。这意味着系统可能包含机器学习、自然语言处理或者智能推荐等AI技术,以提升...

    时晖-异地多活单元化架构下的微服务体系41页.pdf

    异地多活单元化架构下的微服务体系是一种现代软件架构设计方式,它强调在不同的地理位置部署多个活动单元,从而实现高可用性和容灾能力。在微服务架构中,将大型应用拆分成小的、独立的服务,每个服务都围绕特定的...

    FEBSCloud微服务权限系统前端,使用vue-element-admin构建_hy4.zip

    动态菜单可以根据用户的角色动态生成侧边栏菜单,而动态权限则允许系统根据用户的权限动态显示或隐藏某些界面元素。多环境部署则使得开发者可以在不同的部署环境中切换,如开发、测试、生产环境,以满足不同的运行...

    基于Java语言的微服务中台组件库设计源码

    在当今软件开发领域,微服务架构已成为构建大型复杂系统的一种流行且有效的模式。微服务架构的核心理念在于将单一应用程序划分成一组小的服务,每个服务运行在独立的进程中,服务之间通过轻量级的通信机制进行交互,...

Global site tag (gtag.js) - Google Analytics