黑马微服务开发与实战学习笔记_导论

微服务学习:定义、问题与实战方案

系列博客目录



为什么学微服务?

从下图搜索指数可以看出,微服务热度不减
在这里插入图片描述
公司中很多微服务的应用。
在这里插入图片描述
公司岗位要求中很多微服务的身影。
在这里插入图片描述

定义

 微服务是一种软件架构风格,它是以专注于单一职责的很多小型项目为基础,组合出复杂的大型应用。
之前开发项目大多采用单体架构,最大特点,开发过程中,不过多少功能,都写在一个项目中,但对于大型互联网项目不适用。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
 随着项目功能越来越多,小项目变成大项目,开发人员成千上万,一起开发会很混乱。此时微服务就很适合了。这时候我们就要打破单体架构的边界,每一个小的项目就变成微服务,微服务在一起就构成了微服务集群,这种架构就是微服务架构。

 微服务中的每一个小的项目,都要做到单一职责(每一种微服务只能负责一部分功能,比如商品的服务,只做商品管理的内容),这时候每一个小项目里面代码的量就小了很多,由一个专门的团队维护和开发。耦合度降低了。

 后续会继续介绍更多微服务的优点。如何拆分单体架构,形成微服务的架构呢,这就是服务拆分问题。虽然每一个小项目只干自己相关的东西,但是有一些业务很复杂,往往需要多个小项目大家共同合作,比如订单要调用商品,这时候由于商品和订单已经部署在不同的tomcat上了,物理上已经隔绝了,订单如何查商品的信息呢,这是需要跨comcat,实现跨服务的远程调用,这就是远程调用问题。我们还需要管理,哪些服务还活着呀,端口号是多少呀等等,这就是服务治理问题。而且之前单体项目,只有一个端口,前端直接调用即可,现在每个服务都有自己的端口,前端该访问谁,这就是请求路由问题。类似地还有很多问题。如下所示。

  • 服务拆分
  • 远程调用
  • 服务治理
  • 请求路由
  • 身份认证
  • 配置管理
  • 服务保护
  • 分布式事务
  • 异步通信
  • 消息可靠性延迟消息
  • 分布式搜索
  • 倒排索引
  • 数据聚合

 学习微服务技术最佳的方案是:给你一个真实单体项目,你自己把它拆成微服务,在拆的过程之中,碰到这些问题,然后学习哪个微服务技术可以解决这些问题,学习才能深刻。其他教程都是针对每个微服务问题给出拆好的demo,本教程不一样,是给一个真实的单体项目(黑马商城)。我们来亲自拆分,碰到问题,学习技术,解决问题,使其变成微服务项目。

 课程安排如下图所示。全面偏向企业实战,面试原理源码相关内容前期不讲。面试相关问题最后讲解。学完本教程,不管是搭建微服务还是把单体项目改造成微服务等如下图所示都没问题,满足微服务开发对中高级程序员的各种要求。
在这里插入图片描述

### 黑马程序员微服务开发实战教程概述 黑马程序员提供了全面的微服务技术栈教程,涵盖了从基础到高级的各种主题。对于希望深入理解并实践微服务架构的学习者来说,这些资源非常有价值。 #### 课程内容概览 - **环境搭建**:在开始之前,需要准备好CentOS7的操作系统以及配置好Docker环境[^1]。这一步骤至关重要,因为后续所有的操作都将基于此平台展开。 - **Spring Cloud微服务治理**:该部分介绍了如何利用Spring Cloud框架来管理和协调多个微服务实例之间的交互。具体原则包括但不限于避免重复开发相同的业务逻辑、保持各微服务的数据独立性和通过API网关暴露必要的接口给其他服务调用[^2]。 - **防止循环依赖问题**:当不同服务间存在互相调用的情况时,可能会引发循环依赖的问题。为此,MyBatis Plus提供了一个名为`Db`的静态工具类,它能够有效地简化CRUD操作的同时减少此类风险的发生概率[^3]。 - **常见错误处理**:开发者们经常会在实际编码过程中碰到各种意想不到的小麻烦。为了节省时间成本,在官方文档里还特别整理了一份针对这些问题的有效解决方案列表,使得大家可以快速定位并解决问题而不必花费过多精力在网上搜索答案[^4]。 - **Elasticsearch集成案例**:视频教程展示了如何使用Java REST Client完成对Elasticsearch索引设置的任务,这对于构建高效搜索引擎或者日志分析系统具有重要意义[^5]。 ```java // Java代码示例:创建一个新的索引,并定义其mapping结构 RestHighLevelClient client = new RestHighLevelClient( RestClient.builder(new HttpHost("localhost", 9200, "http"))); CreateIndexRequest request = new CreateIndexRequest("product"); request.mapping("{\n" + " \"properties\": {\n" + " \"name\": {\"type\": \"text\"},\n" + " \"price\": {\"type\": \"float\"}\n" + " }\n" + "}", XContentType.JSON); client.indices().create(request, RequestOptions.DEFAULT); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值