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

芜湖市网站建设优秀网页设计案例赏析之淘宝

芜湖市网站建设,优秀网页设计案例赏析之淘宝,网站html模板,ui平面设计注册中心原理 注册中心可以统一管理项目中的所有服务 服务治理中的三个角色分别是什么? 服务提供者: 暴露服务接口,供其它服务调用服务消费者: 调用其它服务提供的接口注册中心: 记录并监控微服务各实例状态,推送服务变更信息 消费者如何知道提供者的…

注册中心原理

注册中心可以统一管理项目中的所有服务

  1. 服务治理中的三个角色分别是什么?
  • 服务提供者: 暴露服务接口,供其它服务调用服务
  • 消费者: 调用其它服务提供的接口
  • 注册中心: 记录并监控微服务各实例状态,推送服务变更信息
  1. 消费者如何知道提供者的地址?
  • 服务提供者会在启动时注册自己信息到注册中心,消费者可以从注册中心订阅和拉取服务信息
  1. 消费者如何得知服务状态变更?
  • 服务提供者通过心跳机制向注册中心报告自己的健康状态,当心跳异常时注册中心会将异常服务剔除,并通知订阅了该服务的消费者
  1. 当提供者有多个实例时,消费者该选择哪一个?
  • 消费者可以通过负载均衡算法,从多个实例中选择一个

Nacos注册中心

Nacos是目前企业中占比最多的注册中心组件。它是阿里巴巴的产品,目前已经加入SpringcloudAlibaba中。

  • 官网: Nacos 快速开始

我们基于Docker来部署Nacos的注册中心,首先要准备MySQL数据库表,用来存储Nacos的数据。

  1. 执行资料中的nacos.sql文件, 创建数据库环境

  1. 资料中提供了nacos的配置文件, 主要配置了nacos与mysql的连接信息
PREFER_HOST_MODE=hostname
MODE=standalone
SPRING_DATASOURCE_PLATFORM=mysql //数据库类型
// MYSQL_SERVICE_HOST=192.168.1.97  //MySql服务地址, 改为自己的虚拟机IP地址
MYSQL_SERVICE_HOST=mysql            //mysql使用了自定义网络, 所以要通过网络名连接
MYSQL_SERVICE_DB_NAME=nacos      //数据表名称
MYSQL_SERVICE_PORT=3306          //数据库端口
MYSQL_SERVICE_USER=root          //数据库用户名
MYSQL_SERVICE_PASSWORD=123       //数据库登录密码
MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
  1. 资料中提供了nacos镜像文件, 和配置文件一起上传至root目录下

  1. 加载本地镜像

  1. 启动nacos服务
docker run -d \
--name nacos \
--env-file ./nacos/custom.env \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--restart=always \
--network hm-net \
nacos/nacos-server:v2.1.0-slim
  • --restart=always 设置开机自启

  1. 查看nacos日志

  1. 访问nacos服务 http://192.168.1.97:8848/nacos/#/login

默认账密: nacos/nacos

服务注册

引入nacos discovery依赖

<!--nacos 服务注册发现-->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

配置Nacos地址

spring:application:name: item-service #服务名称cloud:nacos :server-addr:192.168.150.101:8848 #nacos地址

模拟多实例部署

服务发现

消费者需要连接nacos以拉取和订阅服务,因此服务发现的前两步与服务注册一样,后面再加上服务调用

  1. 引入nacos discovery依赖
<!--nacos 服务注册发现-->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
  1. 配置nacos地址
spring:application:name: cart-service #服务名称cloud:nacos :server-addr: 192.168.1.97:8848 #nacos地址
  1. 服务发现
@Service
@RequiredArgsConstructor
public class CartServiceImpl extends ServiceImpl<CartMapper, Cart> implements ICartService {// 使用discoveryClient客户端进行服务拉取private final DiscoveryClient discoveryClient;... ...private void handleCartItems(List<CartVO> vos) {// 1.获取商品idSet<Long> itemIds = vos.stream().map(CartVO::getItemId).collect(Collectors.toSet());// 2.查询商品// 2.1 根据服务名称获取服务的实例列表List<ServiceInstance> instances = discoveryClient.getInstances("item-service");if(CollUtil.isEmpty(instances)) {return;}// 2.2 手写负载均衡,从实例列表中随机挑选一个实例ServiceInstance instance = instances.get(RandomUtil.randomInt(instances.size()));//2.3 使用restTemplate远程调用商品服务ResponseEntity<List<ItemDTO>> response = restTemplate.exchange(instance.getUri() + "/items?ids={ids}",HttpMethod.GET,null,new ParameterizedTypeReference<List<ItemDTO>>() {},Map.of("ids", CollUtil.join(itemIds, ",")));... ...}}
  1. 购物车模块调用商品模块, 2个商品服务实例被随机访问

http://www.yayakq.cn/news/713019/

相关文章:

  • 设计师做帆布包网站广州海珠区二手房
  • 电子商务网站建设一般流程wordpress小工具安装
  • 网站建设公司在哪里什么是管理
  • 备案时的网站名称淘宝网店代运营正规公司
  • 株洲网站优化哪家强老城网站建设
  • 晋安福州网站建设北京推广营销
  • c2c网站的盈利模式有哪些男女做特别污污的事情网站
  • 网站可以在外地备案吗小程序游戏源码
  • 宁波企业品牌网站建设做一个小程序要多少钱
  • 专业杭州网站建设小迪网站建设
  • 威海住房建设部官方网站开发网站公司交税
  • 四川德阳做网站和app工程造价信息期刊
  • 专教做蛋糕的网站网站开发的现状分析
  • 网站建设与网络推广网站建设教程详解
  • 为何网站打不开中国建设教育协会是什么网站
  • 经典的jq查询网站中国建设银行网站查工资
  • 西宁圆井模板我自己做的网站免费应用软件下载
  • 巨人科技网站建设织梦cms和帝国cms
  • 梁山网站建设哪家好seo双标题软件
  • 怎么选择五屏网站建设四川网站建设 旋风
  • 网站的关键字 设置物流网络名词解释
  • 专业网站制作流程个人网站备案幕布
  • 什么网站能免费做推广基于vue的开源cms
  • 购物网站前台功能自己制作网站做外贸赚钱吗
  • 小本本教你做网站怎么在百度上推广自己的产品
  • 一起做网店类似网站江苏网站建设找哪家
  • dede关闭网站wordpress 中文标题 404
  • 做网站源代码政务网站建设要求
  • 顺庆移动网站建设中国发达国家投票
  • 宝塔做两个网站6网站目录设计