• Spring Cloud入门(一) 服务提供者和服务消费者


    微服务的概念什么。。。。。。百度吧

    第一步:麻烦自己先准备两个普通的Spring boot 简单的 demo

      我写的demo是这两个

        

      Spring Boot 中,服务消费者可以直接远程调用 服务提供者,代码如下

       假设服务一 用户服务中 UserApplication中有一个查询用户信息的接口(其他简单的连接数据库,mapper文件不做多解释)

    @RestController
    public class UserController {
    	@Resource
    	private UserService userService;
    	@GetMapping("/queryOne/{id}")
    	public User queryOne(@PathVariable Long id) {
    		return userService.queryOne(id);
    	}
    }
    

      现在服务二 纪念品服务 SouvenirApplication中, 需要调用服务一 中的获取用户信息的接口

        则需要做 以下的 操作

    @RestController
    public class SouvenirController {
    	//个人理解为远程调用的模板对象
    	@Resource
    	private RestTemplate restTemplate;
    	@GetMapping("/buySouvenir/{id}")
    	public User buySouvenir(@PathVariable Long id) {
    						//服务一中的接口地址                      
    		return restTemplate.getForObject("http://localhost:8080/queryOne/"+id, User.class);
    	}
    }
    

      其中 restTemplate需要自己手动创建对象注入

      在SouvenirApplication中 加入代码

      

        @Bean
    	public RestTemplate getRestTemplate() {
    		return new RestTemplate();
    	}
    

      此时,访问服务二中的接口 ,便可以调用服务一中的接口查询数据

      好吧,之前不知道居然可以直接调用,

      不过 缺点很明显, 接口地址硬编码到代码中,难以维护,

        即使抽取为配置文件,当一个接口变动时,也需要更改其他服务调用者中的接口地址,重启其他的服务器(当然,可以使用nginx作反向代理,将接口地址抽离出来,但当服务较多时。接口也增多,维护也麻烦)

    所以:

        需要一个专门,管理,治理服务的中间件。。。具体是啥。。我还没看到。回头看到了再说

      只当做笔记用。。。。

  • 相关阅读:
    修改linux的ssh默认端口号22的方法
    centos6 配置静态IP
    homebrew 无法安装提示不能在根目录下使用
    MySQL Replication 详解MySQL数据库设置主从同步的方法
    两台Mysql数据库数据同步实现
    MySql主从同步和延迟同步
    c#委托和事件
    C# Out和Ref区别
    MVC与三层架构
    经典数据库题
  • 原文地址:https://www.cnblogs.com/x-ph/p/9388158.html
Copyright © 2020-2023  润新知