微服务架构学习

微服务架构

使用多台服务器会产生怎样的问题;

单体架构:

1.如何保证用户发送请求去那一台服务器上,

2.一台服务器只有自己的session 如何实现session域共享问题;

3.用户量比较大,如何保证查询数据库效率得到提升;

4.模糊查询,如何准确的搜索一些数据

解决方案:
Nginx---->解决用户请求平均分发

Redis----->解决数据共享并实现缓存功能

ElasticSearch----->解决搜索数据的功能

比如项目中有三个模块,用户模块,商品模块,订单模块,如果采用单体架构的集群去搭建,效果比较差

垂直架构

随着项目的更新,功能增多,完美体现了低内聚,高耦合,避开了开发的准则。

分布式架构

随着项目的不断迭代,新老功能之间需要相互交互,服务器和服务器之间需要通讯

项目一般分为三层,Controller,Service,Dao,导致程序的重灾区,一般是Service和DAO,在垂直架构搭建集群,效果不是很好

采用分布式架构:分布式架构落地的技术,国内常用的方式有两种:

  • Dubbo RPC(通讯技术)
  • SpringCould HTTP(通讯技术)

分布式架构遇到的常见问题:

1.服务之间的异步通讯:
使用分布式架构之后,服务之间的通讯都是同步的,在一些不是核心业务的功能上,咋们希望能更快的给用户响应
为了实现服务之间的异步通讯,需要使用RabbitMQ等消息队列中间件。
2.服务之间通讯地址的维护
由于服务越来越多,每个服务的访问地址都是一样的:协议://地址:端口号/路径
由于模块繁多,并且模块搭建的集群数量增加,会导致其他模块需要维护各种ip地址,并且实现负载均衡也变得很麻烦.
需要使用一下技术来解决当期那问题:
* Eureka注册中心帮助我们管理服务信息.
* Robbin可以帮我们实现服务之间的负载均衡
3.服务降级
在上述架构中,如果说订单模块出现了问题,只要涉及到订单模块的功能,全部都无法使用,甚至可能会使服务端提供的线程池耗尽,给用户友好提示都是无法做到
为了解决上述问题,使用Hystrix处理:
Hystrix提供线程池隔离的方式,避免服务器线程池耗尽,在一个服务无法使用时,还提供短路器来处理问题服务从而执行降级方法,返回托底数据。

Eureka,Robbin,Hystrix都是SpringCloud技术栈中的组件

4.海量数据
海量数据会导致数据库无法存储全部内容,即便数据可以存储海量数据,在查询数据时,数据库的访问时及其缓慢的,在高并发的请况下,数据库也是无法承受住的
为了解决上述的问题,可以基于MyCat实现数据库的分库分表。

微服务架构

微服务架构介绍:

虽然已经将每个模块独立的做开发,比如商品模块,压力最大的是商品查询,在单独模块中再次拆分项目的方式就可以称之为微服务架构。

存在问题:

1.模块过多,运维成本增加
为了解决模块过多,运维成本增加的问题,采用Docker容器化技术来帮助我们管理各个模块的部署,还可以通过CI CD持续集成,持续交付,持续部署。
可以使用Docker来帮助我们快速安装软件

分布式架构下存在的其他问题:

分布式架构帮助我们解决了很多问题,但随之也带来了很多问题
1.分布式事务:
最传统的操作事务的方式是,是通过Connection链接对象的方式操作,spring也提供了声明事务的操作,
为了解决这个问题,会使用到RabbitMQ或者LCN等方式来解决。
2.分布式锁:
传统的锁方式,synchronized|Lock锁,在分布式环境下,传统的锁是没有效果的。
为了解决锁的问题,后会使用到Redis或者Zookeeper来解决。
3.分布式任务:
在传统的定时任务下,由于分布式环境的问题,可能会造成任务重复执行,一个比较大的任务,需要可以拆分。
为了解决这个问题,后续会使用到Redis+Quartz或者Elastic-job框架来解决。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
### 回答1: Spring Cloud 微服务架构实战代码是一个基于 Spring Cloud 微服务解决方案的实践项目。它通过将常见的微服务技术组件和应用场景进行集成和示例演示,使读者能够深入了解和学习 Spring Cloud 微服务架构的实际应用。 该项目包含多个模块,其中包括注册中心(Eureka)、配置中心(Config)、网关(Zuul)、负载均衡(Ribbon)、链路跟踪(Sleuth)、熔断器(Hystrix)等,涵盖了微服务架构中的关键技术组件。在实现过程中,项目采用了 Spring Boot 来简化微服务架构的搭建和开发,并以 Maven 进行依赖管理和构建。 通过该项目的学习,读者可以了解到微服务架构的基本概念、实际应用场景和解决方案,掌握 Spring Cloud 微服务架构的相关技术和工具的实际应用,了解微服务架构的开发和部署流程,掌握基于 Spring Boot 的微服务开发和集成方法,从而提高微服务架构的设计实现和部署能力。 总之,Spring Cloud 微服务架构实战代码是一份完整的微服务架构实践项目,它可以帮助读者深入学习和了解微服务架构的实际应用,并具备较高的实际参考价值。 ### 回答2: Spring Cloud是一个开源的微服务架构实战代码,能够让开发人员在构建分布式系统时快速开发和部署微服务。它诞生于Spring项目之上,提供了基于Spring Boot的一套开发工具和服务,可以方便地管理和实现微服务架构的各项需求。 Spring Cloud包含了许多组件,如Eureka、Feign、Hystrix、Zuul等,这些组件都可以独立使用,也可以混合使用,相互之间的集成非常容易。例如,Eureka提供了服务注册与发现的能力,Feign支持微服务之间的远程调用,Hystrix可以提供服务的自我保护机制,Zuul可以提供API网关的功能,等等。 通过使用Spring Cloud,开发人员可以有效地解决微服务中需要处理的分布式问题,例如服务发现、服务注册、服务负载均衡、熔断、容错、路由、安全等等。此外,Spring Cloud还提供了一些常用的开发工具,如Spring Cloud Config,它可以帮助团队在开发和发布过程中有效地管理和配置系统的环境和配置文件。 总之,Spring Cloud是一套非常完善,且易于集成、扩展的微服务架构实战代码,尤其适用于企业级和大型系统的开发。它能够快速地实现微服务的各项技术需求,提高开发效率,使得开发人员更加专注于业务逻辑的开发,而不用再花费大量时间和精力处理微服务本身的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GuiHaoLe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值