微服务springcloud搭建教程

eureka注册中心的搭建 博主使用IDEA搭建

文章有点长,但不要怕,图多字少,步骤超详细,满足您的需要 ~废话不多说,直接上图 ~

1.首先新建一个空的maven项目,如图:
在这里插入图片描述
在这里插入图片描述
填入参数,如图:
在这里插入图片描述
在这里插入图片描述
2.点击finish之后,cloudDemo项目就创建成功了;
删除目录下src文件夹以及pom.xml文件,如图:
在这里插入图片描述
3.然后在cloudDemo项目下创建一个springboot项目作为项目cloudDemo的一个module 模块,module的名字叫做eureka如图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此时的项目结构如下:
在这里插入图片描述
4.启动eureka注册中心:只需要在EurekaApplication启动类上加上注解@EnableEurekaServer即可,如图:
在这里插入图片描述
5.配置springboot启动:
将resource下面的 application.properties文件改 为application.yml文件并添加如下配置:
在这里插入图片描述
需要在application.yml文件中添加的配置如下:

server:
  port: 8801

eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

添加完配置之后如图:
在这里插入图片描述
6.然后启动项目,项目启动后访问localhost:8801,看到这个界面(如图),Eureka注册中 心就已经启动成功。
在这里插入图片描述
7.接下来我们可以编写一个提供者(ribbon模块),一个消费者 (ribbon-consumer模块):
spring cloud的消费者也可以是提供者,二者只有逻辑上的区别,它 是链式的存在。在spring boot中有两种消费方式:
1.rest+ribbon
2.Feign
接下来我们编写消费者:
A、rest+ribbon消费:
1.首先保持Eureka的启动不变,然后在cloudDemo下新建一个 module 叫做ribbon,它也是spring boot结构,如图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.创建完成后,编写RibbonApplication启动类,在该启动类中添加注解 @EnableDiscoveryClient 注册服务,然后注入RestTemplate对象,@LoadBalanced 表示开启负载均衡,如图:
在这里插入图片描述
RibbonApplication启动类中的完整代码如下:

@SpringBootApplication
@EnableDiscoveryClient //注册服务
public class RibbonApplication {
    public static void main(String[] args) {
        SpringApplication.run(RibbonApplication.class, args);
    }
    @Bean
    @Autowired
    @LoadBalanced
    RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

3.在ribbon模块下创建一个测试用的service文件,如图:
在这里插入图片描述
HelloService类中的完整代码如下:

		@Service
		public class HelloService {
   		 public String sayHello(){
        		return "helloWorld"; // 提供一个hello World
    		}
	      }

4.然后我们再编写一个controller,提供一个hello的 controller,如图:
在这里插入图片描述
5.HelloController类中的完整代码如下:

		@RestController
		public class HelloController {
    		@Autowired
   		 private HelloService helloService;
    		@GetMapping("/hello")
    		public String sayHello(String name){
        		return helloService.sayHello() + " " + name;
   		 }
		}

然后我们再配置application.yml , 一样的 将配置文件改为yml格式,然后输入配置,如图:
在这里插入图片描述
在application.yml配置文件中添加一下配置,如图:
在这里插入图片描述
添加的配置的完整的信息如下:

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8801/eureka/
server:
  port: 8802
spring:
  application:
name: ribbon-provider

7.然后在启动eureka服务的同时启动ribbon服务,如图:
在这里插入图片描述
两个服务都启动后访问 localhost:8802/hello?name=zhangtaifeng,如图 :
在这里插入图片描述
8.测试完成,这个服务(ribbon模块)我们把他叫做服务提供者,然后我们再重新建一个module,可以叫做 ribbon-consumer,我们把他叫做服务的消费者,整体配置与上边新建模块配置一致,我们只需要修改service和controller部分(注意package):
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
完整的配置信息如下:

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8801/eureka/
server:
  port: 8803
spring:
  application:
    name: ribbon-consumer

RibbonConsumerApplication启动类中的代码如图:

在这里插入图片描述
RibbonConsumerApplication启动类中的完整代码如下:

@SpringBootApplication
@EnableDiscoveryClient //注册服务
public class RibbonConsumerApplication {

    public static void main(String[] args) {
        SpringApplication.run(RibbonConsumerApplication.class, args);
    }

    @Bean
    @Autowired
    @LoadBalanced
    RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

编写service,如图:
在这里插入图片描述
HelloService类中的完整代码如下:

@Service
public class HelloService {

   @Autowired
    RestTemplate restTemplate;//注入restTemplate
    public String sayHello(){
        //通过rest调用 调用provider服务
        return restTemplate.getForObject("http://ribbon-provider/hello?name=zhangtaifeng",String.class);
    }
}

编写controller,如图:
在这里插入图片描述
HelloController类中的完整代码如下:

@RestController
public class HelloController {
    @Autowired
    private HelloService helloService;
    @GetMapping("/hello")
    public String sayHello(String name){
        return helloService.sayHello() + " " + name;
    }
}

启动该应用:运行该启动类(前两个启动类也要启动起来),效果如图:
在这里插入图片描述
所以,RestTemplate成功调用了8802端口上的provider。
到了这里,相信大家对spring cloud调用服务有了一定的了解,cloud通过rest调用服务进行服务间的通信,每一个controller的方法对外提供对应的服务接口。

B、Feign消费
1、feign消费是通过注解的方式进行的消费模式,它默认打开了负载均衡,还是在cloudDemo下创建一个module,名字叫feign:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2、feign模块创建成功后,在FeignApplication启动类上加两个注解,如下:(这两个注解,用于注册和发现服务。)
@EnableDiscoveryClient:
@EnableFeignClients
在这里插入图片描述
3.在feign模块的目录下创建controller
在这里插入图片描述
HelloController类中的完整代码如下:

@RestController
public class HelloController {
    @Autowired
    private HelloService helloService;
    @GetMapping("/hello")
    public String sayHello(String name){
        return helloService.sayHello() + " " + name;
    }
}

4.在feign模块的目录下创建service
在这里插入图片描述
HelloService类中的完整代码如下:

@Service
public class HelloService {

    @Autowired
    private GetHello getHello; //注入rpc

    public String sayHello(){
        return getHello.sayHello(); // 提供一个hello World
    }
}}

5.在feign模块的目录下新建一个rpc文件夹,然后在rpc下新建一个GetHello接口:
在这里插入图片描述
GetHello接口中的完整代码如下:

@FeignClient(value = "ribbon-consumer")
public interface GetHello {
    @RequestMapping(value = "/hello?name=feign",method = RequestMethod.GET)
    public String sayHello();
}

6.修改application.yml文件如下:
在这里插入图片描述
application.yml文件中的完整配置如下:

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8801/eureka/
server:
  port: 8804
spring:
  application:
    name: feign-consumer

7.启动所有服务,分别是:eureka模块、ribbon模块、ribbon-consumer模块和feign模块,启动后效果图如图所示:
在这里插入图片描述
到此,springcloud微服务就搭建完成了!
有问题请留言~
希望我的文章能对你有所帮助!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值