springcloud 入门示例(代码拷贝后可直接运行)

               springcloud是基于springboot开发的,如果想学习springcloud,希望读者有springboot的基础;

   该示例是讲解的springcloud2版本的, 闲言碎语不多讲,对于开发来说最重要的就是想看到代码,所以下面就开始上单机版的简单示例代码,哈哈!!!

     第一步:maven导入需要的jar包文件,请看下面:

    
       org.springframework.boot
       spring-boot-starter-parent
    2.0.1.RELEASE
  

   
   
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                Finchley.M7
                pom
                import
             

     

   

   
      
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-server
            

    
 
                
    
         
               spring-milestones
               Spring Milestones
               https://repo.spring.io/libs-milestone
              
                   false
              

        

   

第二步:搭建eureka服务中心 ,代码如下:

    (1)编写服务中心的启动类:

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

@SpringBootApplication
@EnableEurekaServer//标签的意义是开启注册中心
public class Application9090 {
    public static void main(String[] args) {
        SpringApplication.run(Application9090.class, args);
    }

}

(2)编写application.yml配置文件:

  

###服务设置文件
server:
###服务端口号
 port: 9090
spring:
 application:

###服务的别名
  name: xiaoyin
eureka:
 instance:
 ###注册中心ip地址
  hostname: 127.0.0.1

 client:
  serviceUrl:
  ###注册地址
   defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
   ###因为自己是注册中心,是否需要将自己注册给自己的服务中心(集群的时候需要将该值设置为true)
  register-with-eureka: false
  ###因为自己是注册服务中心所以不需要检索服务信息
  fetch-registry: false

将以上代码复制到你的开发工具中后,只要运行你 Application9090 中的main函数后,在浏览器中访问localhost:9090后就可以看到eureka注册服务中心的控制台了,如下图:

springcloud 入门示例(代码拷贝后可直接运行)_第1张图片

第三步:搭建生产者 ,代码如下:(引入服务中心相同的pom文件)

  (1)、编写生产者启动类,代码如下:

         

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


@SpringBootApplication
@EnableEurekaClient //该标签的 功能是将服务注册到eureka注册服务中
public class applicationUser {
    
    public static void main(String[] args) {
        SpringApplication.run(applicationUser.class,args);
    }   
}

 

(2)、生产者application.yml配置文件代码:

 ###端口号设置
server:
 port: 9092
 ###服务别名
spring:
 application:
  name: xiaoyinUser
eureka:
 client:
  service-url:
  ###将当前服务注册到eureka注册中心中
   defaultZone: http://localhost:9090/eureka/
  register-with-eureka: true
  fetch-registry: true

 

(3)、创建一个服务接口类:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserApiController {
    @Value("${server.port}")
    String port;
    @RequestMapping("/testUserApi")
  public String userApiTest(){
      return "this is test userApiTest,测试springcloud用户中心api服务 +端口号:"+port;
  }
}

到此处,启动该服务的启动类后,就可以在eureka注册服务中心看到如下画面:

  springcloud 入门示例(代码拷贝后可直接运行)_第2张图片

 

到此处你的生产者服务就算是搭建完成了;

 

第四步:搭建消费者 ,代码如下:(引入服务中心相同的pom文件)

(1)、编写消费者启动类,代码如下:

         

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

@SpringBootApplication
@EnableEurekaClient
public class applicationUser2 {

    public static void main(String[] args) {
        SpringApplication.run(applicationUser2.class, args);
    }
    
    @Bean
    @LoadBalanced//该标签可以使RestTemplate能够有负载均衡的功能
    RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

 

(2)、消费者application.yml配置文件代码:

###端口号设置
server:
 port: 9093
 ###服务别名
spring:
 application:
  name: xiaoyinUser2
eureka:
 client:
  service-url:
  ###将当前服务注册到eureka注册中心中
   defaultZone: http://localhost:9090/eureka/
  register-with-eureka: true
  fetch-registry: true

(3)、创建一个服务接口类:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

@RestController
public class user2ApiController {
    
    @Autowired
    RestTemplate restTemplate;

    @RequestMapping("/testUser2Api")
    public String user2Test(){
        //return "this is user2Test,这是一个调用服务";
        String url = "http://xiaoyinUser/testUserApi";
        String ss = restTemplate.getForObject(url, String.class);
        System.out.println("user2调用user1后的结果:::"+ss);
        return ss;
    }
    
}

到此处,启动该服务的启动类后,就可以在eureka注册服务中心看到如下画面:

springcloud 入门示例(代码拷贝后可直接运行)_第3张图片

 

到此处就是讲生产者和消费者都注册到eureka服务中心啦;

下面就是消费者的调用了,当访问localhost:9093的测试接口时,就能看到如下画面:

springcloud 入门示例(代码拷贝后可直接运行)_第4张图片

 

好啦;到这里就证明你的单机版的springcloud服务已经搭建完成啦!集群的我这也有代码,如果想共同研究可以找我要示例源码!

 

 

你可能感兴趣的:(分布式)