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

青岛网站设计制作婚纱摄影网页制作

青岛网站设计制作,婚纱摄影网页制作,dede页码的调用 网站,做美食视频的网站文章目录搭建 Eureka Server创建 eureka-server 子模块引入依赖项目构建插件完善启动类编写配置文件启动服务服务注册引入 eureka-client 依赖完善配置文件启动服务服务发现引入依赖完善配置文件远程调用启动服务Eureka 和 Zookeeper 区别搭建 Eureka Server Eureka Server 是…

文章目录

  • 搭建 Eureka Server
    • 创建 eureka-server 子模块
    • 引入依赖
    • 项目构建插件
    • 完善启动类
    • 编写配置文件
    • 启动服务
  • 服务注册
    • 引入 eureka-client 依赖
    • 完善配置文件
    • 启动服务
  • 服务发现
    • 引入依赖
    • 完善配置文件
    • 远程调用
    • 启动服务
  • Eureka 和 Zookeeper 区别

搭建 Eureka Server

Eureka Server 是一个独立的微服务

创建 eureka-server 子模块

image.png|311

引入依赖

<dependency>  <groupId>org.springframework.cloud</groupId>  <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>  
</dependency>

项目构建插件

<build>  <plugins>        <plugin>           <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-maven-plugin</artifactId>  </plugin>    </plugins>
</build>

完善启动类

package org.example.eureka;  import org.springframework.boot.SpringApplication;  
import org.springframework.boot.autoconfigure.SpringBootApplication;  
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;  @EnableEurekaServer  
@SpringBootApplication  
public class EurekaServerApplication {  public static void main(String[] args) {  SpringApplication.run(EurekaServerApplication.class, args);  }  
}

编写配置文件

server:  port: 10010  
spring:  application:  name: eureka-server  
eureka:  instance:  hostname: localhost  client:  fetch-registry: false  register-with-eureka: false  service-url:  defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
  • fetch-registry:表示是否从 Eureka Server 获取注册信息,默认为 true。因为这是一个单点的 Eureka Server,不需要同步其他的 Eureka Server 节点的数据,这里设置为 false
  • register-with-eureka:表示是否将自己注册到 Eureka Server,默认为 true。由于当前应用就是 Eureka Server,故而设置为 false

启动服务

启动服务,访问注册中心: http://127.0.0.1:10010/
image.png

  • 可以看到,eureka-server 已经启动成功了

服务注册

接下来我们把 product_service 注册到 eureka—server

引入 eureka-client 依赖

<dependency>  <groupId>org.springframework.cloud</groupId>  <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>  
</dependency>

完善配置文件

spring: application: name: product-service
eureka:  client:  service-url:  defaultZone: http://127.0.0.1:10010/eureka

启动服务

刷新注册中心: http://127.0.0.1:10010/
image.png|442

  • 可以看到 product-service 已经注册到 eureka 上了

服务发现

接下来我们修改 order-service,在远程调用时,从 eureka-server 拉取 product-service 的服务信息,实现服务发现

引入依赖

<dependency>  <groupId>org.springframework.cloud</groupId>  <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>  
</dependency>

完善配置文件

服务发现也需要知道 eureka 地址,因此配置内容依然与服务注册一致,都是配置 eureka 信息

spring: application: name: order-service
eureka:  client:  service-url:  defaultZone: http://127.0.0.1:10010/eureka

远程调用

远程调用时,我们需要从 eureka-server 中获取 product-service 的列表(可能存在多个服务),并选择其中一个进行调用

package org.example.order.service;  import jakarta.annotation.Resource;  
import lombok.extern.slf4j.Slf4j;  
import org.example.order.mapper.OrderMapper;  
import org.example.order.model.OrderInfo;  
import org.example.order.model.ProductInfo;  
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.cloud.client.ServiceInstance;  
import org.springframework.cloud.client.discovery.DiscoveryClient;  
import org.springframework.cloud.netflix.eureka.EurekaServiceInstance;  
import org.springframework.stereotype.Service;  
import org.springframework.web.client.RestTemplate;  import java.util.List;  @Slf4j  
@Service  
public class OrderService {  @Autowired  private OrderMapper orderMapper;  @Resource  private DiscoveryClient discoveryClient;  @Autowired  private RestTemplate restTemplate;  public OrderInfo selectOrderById(Integer orderId) {  OrderInfo orderInfo = orderMapper.selectOrderById(orderId);  //String url = "http://127.0.0.1:9090/product/" + orderInfo.getProductId();  // 根据应用名称获取服务列表  List<ServiceInstance> instances = discoveryClient.getInstances("product-service");  // 服务可能有多个,获取第一个  EurekaServiceInstance instance = (EurekaServiceInstance) instances.get(0);  log.info(instance.getInstanceId());  // 拼接 URL        String url = instance.getUri() + "/product/" + orderInfo.getProductId();  ProductInfo productInfo = restTemplate.getForObject(url, ProductInfo.class);  orderInfo.setProductInfo(productInfo);  return orderInfo;  }  
}

启动服务

刷新注册中心: http://127.0.0.1:10010/
image.png|420

  • 可以看到 order-service 已经注册到 eureka 上了

访问接口: http://127.0.0.1:8080/order/1
可以看到,远程调用也成功了:image.png|399

Eureka 和 Zookeeper 区别

EurekaZookeeper 都是用于服务注册和发现的工具,区别如下:

  1. EurekaNetFlix 开源的项目,而 ZookeeperApache 开源的项目
  2. Eureka 基于 AP 原则,保证高可用,Zookeeper 基于 CP 原则,保证数据一致性
  3. Eureka 每个节点都是均等的,Zookeeper 的节点区分 LeaderFollowerObserver,也正因为这个原因,如果 ZookeeperLeader 发生故障时,需要重新选举,选举过程集群会有短暂时间的不可用
http://www.dtcms.com/a/539737.html

相关文章:

  • 单页网站 产品放哪saas建站是什么意思
  • 网络专业的网站建设广西seo搜索引擎优化
  • 网站商品图片怎么做ps免费模板网站
  • 新网站怎样做优化建设网站空间多少钱
  • 响应式网站移动端排名网站怎么做seo步骤
  • 网站如何做301转向wordpress ios7
  • 网站设计制作是什么icp备案网站快速备案专家
  • 建设银行网站上不去了wordpress 后台添加js
  • 合肥知名网站制作手机网站懒人模板
  • 界面做的最好的网站wordpress阅读全部功能
  • 网站做好了如何发布文创产品设计是什么意思
  • 手机怎么搭建网站北京别墅设计网站
  • 淮安汽车网站制作有专门做几口农机的网站
  • 珠海市建设局网站きょこんきょうしゃ在线
  • 公司网站制作与推广青海汽车网站建设
  • 网站开发职业技能简历加油站网站大全
  • 龙华做网站哪家好的网站建设公司哪家好
  • 海外域名注册网站做网站为什么需要购买域名
  • 网站开发与设计实训报告总结舆情分析工具
  • 搜狗站长工具平台做直播网站用什么网上空间好
  • 绍兴企业免费建站宝塔wordpress安装
  • 湛江网站建设公司哪个好个人网站做淘宝客会怎样
  • 一级a做爰片免费网站冫如何做网站图标
  • 专门做本子的网站昆明做整站优化
  • 有什么搜图片的网站好帝国cms 做网站地图
  • 长沙营销型网站中国菲律宾引渡
  • 北京网站建设联系兴田德润百度竞价个人开户
  • 程序员会搭建非法网站吗中小微企业查询平台
  • 广州网站建设公司推荐网站建设及目标
  • 万网云服务器怎么上传网站吗网站 平均加载时间