• 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作反向代理,将接口地址抽离出来,但当服务较多时。接口也增多,维护也麻烦)

    所以:

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

      只当做笔记用。。。。

  • 相关阅读:
    经典游戏--24点--c++代码实现和总体思路(简单暴力向)
    这么多TiDB负载均衡方案总有一款适合你
    思杰( Citrix)证书的正确处置方式
    从本质彻底精通Git——4个模型1个周期1个史观1个工作流
    HttpClient客户端网络编程——高可用、高并发
    Netty之数据编码
    维吉尼亚密码加解密原理及其实现
    无网环境安装docker之--rpm
    centos7无网环境安装docker
    CentOS8.3最小化安装后安装GNome桌面
  • 原文地址:https://www.cnblogs.com/x-ph/p/9388158.html
Copyright © 2020-2023  润新知