首页 > 其他分享 >【SpringCloud】 Eureka 单机模式

【SpringCloud】 Eureka 单机模式

时间:2023-05-04 15:24:31浏览次数:42  
标签:单机 SpringCloud eureka halo spring Eureka server port cloud

系统配置信息

  • springboot版本:2.1.6.RELEASE
  • jdk:1.8
  • 系统:Windows10

工程结构

  • 父工程 halo-cloud-parent
  • 子工程<注册中心> halo-cloud-server
  • 子工程<服务消费者> halo-cloud-consumer
  • 子工程<服务提供者> halo-cloud-provider

halo-coud-parent

  • 依赖引入
  <!--打包方式-->
  <packaging>pom</packaging>
  <modules>
        <!--moudle-->
        <module>halo-cloud-server</module>
    </modules>
  <!--web依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-commons</artifactId>
        </dependency>
 <dependencyManagement>
        <!--引入springcloud依赖的-->
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

halo-cloud-server

  • 依赖
  <!--将其对应的父工程换为parent即可-->
    <parent>
        <groupId>com.cloud</groupId>
        <artifactId>halo</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
     <!--eureka server 依赖坐标-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

application.yml

server:  # 服务端口
  port: 9090
spring:
  application:  # 应用名字,eureka 会根据它作为服务id
    name: EurekaServer
eureka:
  instance:
    hostname: localhost
  client:
    service-url:   #  eureka server 的地址, 咱们单实例模式就写自己好了
      defaultZone:  http://${eureka.instance.hostname}:${server.port}/eureka
    register-with-eureka: false# 不向eureka server 注册自己
    fetch-registry: false# 不向eureka server 获取服务列表

修改启动类,加上注解:@EnableEurekaServer或者

启动

遇到的问题:

  • 第一次启动启动的时候,会出现一下的错误,不要慌!

打开IDEA最右边maven,找到server,clean、install,重新启动即可。

halo-cloud-provider

  • pom.xml
 <parent>
        <groupId>com.cloud</groupId>
        <artifactId>parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>

    <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
      </dependency>
  • application.yml
server:
  port: 7070
spring:
  application:
    name: spring-cloud-provider
eureka:
  client:
    service-url:
      defaultZone: http://localhost:9090/eureka
    fetch-registry: true
    register-with-eureka: true

启动类添加注解:@EnableEurekaClient

halo-cloud-consumer

  • pom.xml
 <parent>
        <groupId>com.cloud</groupId>
        <artifactId>parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>

   <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
  • application.yml
server:
  port: 8080

spring:
  application:
    name: spring-cloud-consumer

eureka:
  client:
    service-url:
      defaultZone: http://localhost:9090/eureka
    fetch-registry: true
    register-with-eureka: true

启动类添加注解:@EnableEurekaClient

我们可以看到服务提供者个消费者都注册到了注册中心。

消费者调用服务

服务提供者 halo-cloud-provider

修改内容

  • 新增 ProviderController
@RestController
@RequestMapping("/provider")
public class ProviderController {

    @Value("${server.port}")
    private Integer port;


    @GetMapping("/helloProvider")
    public Integer helloProvider(){
        return port;
    }
}

测试:

服务消费者 halo-cloud-consumer

修改内容

  • 新增 RestTemplateConfiguration
  • 新增 ConsumerController
@Configuration
public class RestTemplateConfiguration {
    @Bean
    public RestTemplate getRestTemplate(){
        return  new RestTemplate();
    }
}
@RestController
@RequestMapping("/consumer")
public class ConsumerController {

    @Autowired
    private RestTemplate restTemplate;

    @Autowired
    private DiscoveryClient discoveryClient;

    @GetMapping("/helloConsumer")
    public Integer getTodayStatistic() {
        // 使用discoveryClient 类能够与eureka server 交互, getInstances 获取注册到eureka server
        // 的"spring-cloud-order-service-provider" 实例列表
        List<ServiceInstance> instances = discoveryClient.getInstances("spring-cloud-provider");

        // 获取第一个服务信息
        ServiceInstance instanceInfo = instances.get(0);
        //获取ip
        String ip = instanceInfo.getHost();
        //获取port
        int port = instanceInfo.getPort();
        String url = "http://" + ip + ":" + port + "/provider/helloProvider/";
        return restTemplate.getForObject(url, Integer.class);

    }
}

测试:

标签:单机,SpringCloud,eureka,halo,spring,Eureka,server,port,cloud
From: https://www.cnblogs.com/HelloWxl/p/17371329.html

相关文章

  • 基于springcloud实现的医院信息系统
    访问【WRITE-BUG数字空间】_[内附完整源码和文档]医疗信息就诊系统,系统主要功能按照数据流量、流向及处理过程分为临床诊疗、药品管理、财务管理、患者管理。诊疗活动由各工作站配合完成,并将临床信息进行整理、处理、汇总、统计、分析等。本系统包括以下工作站:门诊医生工作站、药房......
  • SpringCloud gateway谓词
    1、AfterRoutePredicateFactoryAfter路由谓词工厂接受一个参数,一个日期时间(它是一个javaZonedDateTime)。此谓词匹配在指定日期时间之后发生的请求。例如:spring:cloud:gateway:enabled:trueroutes:-id:Goods-Server#路由id,唯一标识......
  • SpringCloud之gateway使用
    使用SpringCloudGateway是为了取代Zuul而开发出来的新一代网关,采用了响应式编程。 新建ModuleGatewayServer,添加依赖:<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></depe......
  • SpringCloud服务注册与发现(Eureka)
    0、前言   微服务是近两年比较火的概念,被称为程序员必备技能之一了,可见其运用之广。最近整理下资料进行系统的学习,与大家一一分享。    微服务是相对于传统单体式架构而言的。单体式架构是一份代码,部署都是基于单个单元进行的,它的优点是易于部署,但面临的就是可用性低......
  • SpringCloud服务注册中心双节点集群(Eureka集群)
    0、前言    最近在进行重构一个新项目,为了后续更好的落地,适应于日新月异的技术更新,进行了各方的技术选型及技术预研,最终选型基于微服务架构体系进行开发重构。项目构建前最重要的一步就是要想清楚,整体的部署架构、高可用性(HA)等等,做好前期的部署架构技术调研,确定最终方案......
  • SpringCloud之Seata(一)
    思维导图1.概述1.1概念Seata是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。2.事务概述2.1角色TC((TransactionCoordinator)):事务协调者:维护全局和分支事务的状态,驱动全局事务提交或回滚。TM(TransactionManager):事务管理器:定义全局事务的范围:开......
  • openGauss单机+主从集群部署_万能场景安装_搭建_适用所有场景_openGauss3.0.0_openGau
    一、opengauss的背景和行业现状2022年,七大openGauss商业版发布,是基于openGauss3.0推出商业发行版目前海量数据库Vastbase表现最佳,一直是TOP1作者认为之所以海量数据库Vastbase目前无法被同行超越,和各家研发实力和技术背景有关众所周知,opengauss起源于postgresql,在......
  • Hive单机安装与测试
    安装MySQL并运行在当前用户下运行sudoaptupdatesudoaptinstallmysql-server安装成功后启动MySQL服务,运行sudoservicemysqlstart查看MySQL的默认用户名和密码,运行sudocat/etc/mysql/debian.cnf结果如下:修改MySQL密码,运行mysqladmin-udebian-sys-maint-ppa......
  • 单机版hadoop在Linux环境下的安装和配置
    创建hadoop用户首先打开终端窗口,输入如下命令创建hadoop用户,这条命令创建可以登录的hadoop用户,并使用/bin/bash作为shell:$sudouseradd-mhadoop-s/bin/bash接着为hadoop设置登录密码,可简单设为123456,按提示输入两次:$sudopasswdhadoop为hadoop用户增加管理员权限,......
  • SpringCloud学习笔记
    Eureka基本知识Eureka主要学习的是微服务的一些基本概念之类的,至于具体的操作其实都是在配置appolication.yml文件了,多看文档以及自己写过的demo就懂了。Eureka在微服务中承担的角色有三个,一个是注册中心server,一个是服务供给方porvider,以及接受用户请求的consumer,如果从启动类......