当前位置: 首页 > news >正文

美橙网站建设南的如何注册一家公司要多少钱

美橙网站建设南的,如何注册一家公司要多少钱,网站建设工单系统,交换链接网站1 微服务的概念 区别于单体项目 单体项目拆分成微服务项目的目标:高内聚、低耦合 拆分思路 纵向拆分:根据功能模块 横向拆分:抽取可复用模块 2 微服务拆分——远程调用 背景:微服务单一职责,每个服务只有自己的功能…

1 微服务的概念

  • 区别于单体项目

  • 单体项目拆分成微服务项目的目标:高内聚、低耦合

  • 拆分思路

    • 纵向拆分:根据功能模块

    • 横向拆分:抽取可复用模块

2 微服务拆分——远程调用

背景:微服务单一职责,每个服务只有自己的功能和数据,拆分出来的模块需要用到其他模块的功能,如查询购物车时也需要查询商品信息,但是两个模块不能直接调用

  • 模拟前端向后台发送请求

  • RestTemplate:通过远程调用,发送 HTTP 请求,得到 HTTP 响应

3 服务治理

服务远程调用存在问题:

  1. 写代码时还不知道要调用的服务地址(还没启动):例如 cart-service 不知道 item-service 启动的地址 / 端口

  2. 如果知道了地址,集群模式下 item-service 部署在多台服务器上(多实例部署),开启了负载均衡,cart-service 不知道该访问哪个端口

  3. 选了一个进行访问,如果该服务挂了,怎办?

  4. 写死了访问地址,item-service 又在新的服务器 / 端口上启动了,怎么知道新启动的服务的地址?无法感知服务状态的变更

以上问题统称为 服务治理

3.1 注册中心原理

如何解决服务治理问题?1 2 3 4

三个角色

  • 每个服务既可以作为服务的调用者

  • 也可以作为服务的提供者

  • 注册中心(家政中心)

    • 服务提供者到注册中心注册服务信息

    • 服务调用者访问注册中心,订阅所需服务的信息

      • 负载均衡:随机、轮询、加权随机、加权轮询、哈希

    • 监控服务状态变更

      • 服务提供者需要与注册中心进行 心跳续约,如果服务挂了(不再发送续约消息)就会将该服务从服务注册表中移除,并向服务调用者推送变更

      • 注册中心会向服务调用者推送服务状态变更(有服务挂了、有新的服务启动)的新消息

3.2 搭建 Nacos 实现注册中心

  • Nacos 是一个注册中心组件

  • 使用 Docker 部署 Nacos 服务

  • 可以进入 Nacos 控制面板监控服务的健康状态和服务详情(如启动服务器 IP 和端口等)

3.3 服务注册

步骤

  1. 引入 nacos discovery 依赖

  2. 配置要注册的服务名称和 Nacos 的地址

  3. 启动服务实例(IDEA 的多个端口)

3.4 服务发现

步骤

  1. 引入 nacos discovery 依赖

  2. 配置 Nacos 地址

  3. 服务发现:到 Nacos 注册中心获取服务注册列表(可以使用 Spring Cloud 提供的 API)

    • 根据服务名称,获取服务实例列表

    • 负载均衡,选择一个实例进行请求

    • 获取实例的 IP 和端口,发起远程调用

3.5 治理结果

  • 服务调用者不再需要记住服务提供者的 IP 地址和端口号,而是根据服务名称 动态拉取 服务实例列表,并通过负载均衡选择随机选择一个服务实例进行调用

  • 服务挂了 ✔ 心跳续约

  • 新启动的服务 ✔ 推送变更

4 OpenFeign 的使用

1. 基本介绍

  • 声明式的 HTTP 客户端,基于 SpringMVC 的常见注解,更简单地实现 HTTP 请求的发送

2. 使用步骤

  • 引入依赖

负载均衡的实现早期用的是 Spring Cloud 的 Ribbon,现在用的是 loadbalancer

  • 项目主类 / 启动类使用注解 @EnableFeignClients 开启 OpenFeign 功能

  • 编写 FeignClient:使用 @FeignClient(value = "item-service"),@FeignClient 会将该类标记为一个 FeignClient 客户端,value 是服务名称, OpenFeign 会根据该 value 到注册中心去拉取实例列表

注意:这是一个不需要实现的接口,OpenFeign 会自动帮我们实现该接口

  • 使用 FeignClient,实现远程调用:配置好 FeignClient 接口后就可以像使用本地方法一样实现远程调用

List<ItemDTO> items = itemClient.queryItemByIds(List.of(1,2,3));
http://www.yayakq.cn/news/388995/

相关文章:

  • 上饶做网站的什么是网络营销推广三板斧
  • 广州站长word上下页纸张方向
  • 福建省城市建设厅网站网站建设规划书河北
  • 光华路网站建设威海外贸网站建设怎么样
  • 容城网站建设徐州好点的做网站的公司有哪些
  • 网站引导页案例做网站的属于什么
  • 休闲度假村网站建设方案wordpress用户访问频率
  • 酒店网站建设方案书上海住房和城乡建设部网站首页
  • 网上商城运营推广思路网站优化加盟
  • 网站优化怎样的松江工业区网站建设
  • 做壁纸网站深入解析wordpress(原书第2版)
  • 网站的布局贵州省住房和城乡建设部官方网站
  • 宁城县建设局网站办公家具网站建设公司
  • 上海做网站多少钱外贸企业官网建站
  • 建站之星 discuz宁夏网站设计
  • 零基础自己建网站代理公司注册公司坑人
  • 摄影网站知乎河南龙王建设集团网站
  • 太仓住房与城乡建设局网站网站被泛解析
  • 手机网站优化如何布置网站
  • 二季域名做网站网络公司可以做哪些业务
  • 建筑设计网站排行榜文章转载到wordpress
  • 6617网址导航彩票网站大全在线设计平台的用户群分析
  • 网站过度优化单一本地门户网站源码
  • 做网站一般图片的比例仙踪林老狼网站欢迎您拍照
  • 怎么把网页放到网站上免费制作小程序的平台
  • 网站开发报告多少页合适微信自媒体网站建设
  • 商城网站大概多少钱生活馆网站开发背景
  • 临汾推广型网站建设德语网站建设注意事项
  • 企业网站建设一般考虑哪些因素?个人网站建设好之后怎么赚钱
  • 企业网站 设网站建设结课