springcloud+eureka简单入门案例

springcloud+eureka简单入门案例

一、服务提供者

直接提供服务,入门案例没有特别要设置的地方,注意下端口,由于要启动多个服务,可能会冲突

配置文件(src/main/resources/application.yml)

server:
  port: 8000

二、服务消费者

服务消费者的依赖在这个单独的demo中其实可有可无,亲测不添加,也可以实现demo服务提供能

三、服务消费者启动类里注入RestTemplate,用于调用远程服务

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

@SpringBootApplication
public class MovieApplication {

    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
    public static void main(String[] args) {
        SpringApplication.run(MovieApplication.class, args);
    }
}

四、服务消费者Controller

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import com.xujie.pojo.User;

@RestController
public class UserController {

    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("/getUser")
    public User getUser() {
        return this.restTemplate.getForObject("http://localhost:8000/getUser", User.class);
    }
}

此时可以通过访问消费者,间接调用服务提供者的服务,

五、创建服务注册中心,这里选用Eureka

5.1在springboot基础环境上添加依赖

<!-- springcloud版本声明 -->
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Brixton.SR5</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement> 

<!-- 引入eureka依赖 -->
<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka-server</artifactId>
    </dependency>
</dependencies>

5.2启动类的编码

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer  //声明这是一个Eureka服务器
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }

}

5.3配置文件(src/main/resources/application.yml)

server:
  port: 8761      #声明端口号
eureka:
  client:
    register-with-eureka: false    #默认是true,将自己注册到eureka上
    fetch-registry: false    #是否从eureka上获取信息,由于本案例是单机,无需从别的eureka上获取注册信息
    service-url:
      defaultZone: http://localhost:8761/eureka    #设置与eureka交互的地址,查询服务和注册服务都需要依赖这个地址,默认是:http://localhost:8761/eureka

六、将服务提供者注册到服务注册中心

6.1改造服务提供者

6.1.1添加依赖,便于把服务注册到注册中心Eureka中去:

<!-- springcloud版本声明 -->
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Brixton.SR5</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<!-- eureka的依赖 -->
<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka-server</artifactId>
    </dependency>
</dependencies>

6.1.2修改配置文件,添加下列配置

spring:
  application:
    name: provider   #注册到Eureka Server上的应用名称
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka    #注册的位置
  instance:
    prefer-ip-address: true  #将自己的ip注册到EuekaServer上

6.1.3修改启动类

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient   //也可以用EnableDiscoveryClient代替,前者兼容性更大,后者仅能兼容Eureka
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

此时可以正常启动并将服务注册到了eureka中

**启动Eureka和服务提供者访问:http://localhost:8761,界面如下:**

七、Eureka的高可用

**在这里demo之前,修改本地hosts文件,为了区分本地的两个eureka节点,分别通过:http://peer1:8761和http://peer2:8762访问**

7.1将刚才的eureka项目复制一份,修改两个的配置文件如下:

eureka1的配置:

server:
  port: 8761      #声明端口号
eureka:
  instance:
    hostname: peer1
    appname: peer1
  client:
    #register-with-eureka: false    #默认是true,将自己注册到eureka上,这里设置eureka的高可用,所以需要将自己注册到eureka上
    #fetch-registry: false    #是否从eureka上获取信息,由于本案例是单机,无需从别的eureka上获取注册信息,这里设置eureka的高可用,所以需要在eureka上获取服务
    service-url:
      defaultZone: http://peer2:8762/eureka    #设置与eureka交互的地址,查询服务和注册服务都需要依赖这个地址,默认是:http://localhost:8761/eureka 

eureka2的配置:

server:
  port: 8762      #声明端口号
eureka:
  instance:
    hostname: peer2
    appname: peer2

  client:
    #register-with-eureka: false    #默认是true,将自己注册到eureka上,这里设置eureka的高可用,所以需要将自己注册到eureka上
    #fetch-registry: false    #是否从eureka上获取信息,由于本案例是单机,无需从别的eureka上获取注册信息,这里设置eureka的高可用,所以需要在eureka上获取服务
    service-url:
      defaultZone: http://peer1:8761/eureka    #设置与eureka交互的地址,查询服务和注册服务都需要依赖这个地址,默认是:http://localhost:8761/eureka

此时启动两个服务,界面如下

这是peer1:

下面这个是peer2:

原文地址:https://www.cnblogs.com/xujie09/p/8469735.html

时间: 2024-11-06 03:45:48

springcloud+eureka简单入门案例的相关文章

javaweb 基于java Servlet登入 简单入门案例

项目流程 第一步:创建一个java webproject第二步:创建三个界面,1,login.jsp 2 success.jsp 3 fail.jsp第三步:更改新建界面编码格式,utf-8 默然编码格式会中文乱码.第四步:把当前新建项目添加到tomcat服务器,并启动服务器,查看界面效果第五步:浏览器访问http://127.0.0.1:8080/HelloServlet/login.jsp 127.0.0.1 本地ip 8080端口号,tomcat默认端口号 后面就是项目名称加指定界面名称界

spring AOP 简单入门案例

TestServiceinter.java 1 package com.frank.aop; 2 3 public interface TestServiceinter { 4 public void SayHello(); 5 6 } TestServiceImp.java 1 package com.frank.aop; 2 3 public class TestServiceImp implements TestServiceinter { 4 5 private String name;

Servlet简要介绍及入门案例。

什么是Servlet呢? Servlet 试运行在服务器端的一个小的java程序,接收和相应从客户端发送的请求. 那么Servlet的作用是什么呢? 处理客户端的请求,并且对请求作出相应. 下面是Servlet的简单入门案例: //编写一个类实现Servlet接口 public  class ServletTest1  implements   Servlet{ public  void  service(ServletRequest request , ServletResponse  res

1.Spring框架入门案例

一.简单入门案例 入门案例:IoC 1.项目创建与结构 2.接口与实现类 User.java接口 package com.jd.ioc; /** * @author weihu * @date 2018/8/8/008 22:29 * @desc 用户接口 */ public interface User { void addUser(); } UserImpl.java实现类 package com.jd.ioc.impl; import com.jd.ioc.User; /** * @aut

jquery非常简单入门的登录案例

非常简单的入门案例,jquery实现验证. 用户名13 14 15 16开头,以8 9 结束,总共11位 密码 a-z,A-Z,0-9 ,! # $ % ^ & * . ~等这些, 在6-22位 1 *{ 2 margin:0; 3 padding:0; 4 } 5 form{ 6 border:1px solid #303a40; 7 width: 400px; 8 height: 300px;; 9 margin:200px auto; 10 } 11 ul{ 12 margin:40px

_00019 Storm的体系结构介绍以及Storm入门案例(官网上的简单Java案例)

博文作者:妳那伊抹微笑 博客地址:http://blog.csdn.net/u012185296 个性签名:世界上最遥远的距离不是天涯,也不是海角,而是我站在妳的面前,妳却感觉不到我的存在 技术方向:Flume+Kafka+Storm+Redis/Hbase+Hadoop+Hive+Mahout+Spark ... 云计算技术 转载声明:可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明,谢谢合作! qq交流群:214293307  (期待与你一起学习,共同进步) # Storm

ActiveMQ入门案例以及整合Spring的简单实用

先来个ActiveMQ介绍哈: MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法,是一个消息中间件. 应用场景:为了实现系统之间的通信,把系统之间的调用耦合度降低就可以使用MQ. 1) activeMQ 是Apache出品,最流行的,能力强劲的开源消息总线. 2) avtiveMQ主要特点:完全支持JMS1.1和J2EE 1.4规范:支持spring,很容易内嵌到spring中:支持ajax. 3) activeMQ的消息形式: a) 点对点形式,即生产

Mybatis入门案例中设计模式的简单分析

Talk is cheap, show me the code! public class TestMybatis { public static void main(String[] args) throws IOException { //1. 读取配置文件 InputStream resource = Resources.getResourceAsStream("mybatis.xml"); //2. 创建sqlSessionFactory工厂 SqlSessionFactory

Asp.Net MVC学习总结(一)——Asp.Net MVC简单入门

出处:http://www.cnblogs.com/SeeYouBug/p/6401737.html 一.MVC简单入门 1.1.MVC概念 视图(View) 代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML.XML和Applet. 模型(Model) 表示用户对其数据的操作的一个封转.可以分为视图模型(view model)和领域模型(domain models),视图模型就是在视图与控制器之间传输数据的一个封转,而领域模型就是业务逻辑,后台数据模型等的一个集