一文看懂微服务架构之注册中心Consul、Nacos( 二 )

然后yml配置文件如下:
server:  port: 8601spring:  Application:    name: user  cloud:    consul:      port: 8500      host: 127.0.0.1      discovery:        service-name: user        instance-id: ${spring.application.name}:${spring.cloud.consul.host}:${server.port}        health-check-path: /actuator/health        health-check-interval: 10s        prefer-ip-address: true        heartbeat:          enabled: true在启动类加上开启服务注册的注解:
@SpringBootApplication@EnableDiscoveryClientpublic class UserApplication {    public static void main(String[] args) {        SpringApplication.run(UserApplication.class, args);    }}最后启动项目即可 , 我这里启动两个user , 端口号分别是8601 , 8602:

一文看懂微服务架构之注册中心Consul、Nacos

文章插图
 
3.3 服务调用再创建一个订单项目(order) , 和user配置类似 , 注册服务到consul中 。
一文看懂微服务架构之注册中心Consul、Nacos

文章插图
 
下面演示一下用order服务调用user服务 , 首先定义user的接口:
@RestController@RequestMapping("/mall/user")public class UserController {    @RequestMapping("/list")    public Map<String, Object> list() throws Exception {        Map<String, Object> userMap = new HashMap<>();        userMap.put("1号佳丽", "李嘉欣");        userMap.put("2号佳丽", "袁咏仪");        userMap.put("3号佳丽", "张敏");        userMap.put("4号佳丽", "张曼玉");        return userMap;    }}接着在order服务调用user服务 , 使用RestTemplate的方式:
@RestController@RequestMapping("/mall/order")public class OrderController {    @Resource    private LoadBalancerClient loadBalancerClient;    @RequestMapping("/callUser")    public String list() throws Exception {        //从注册中心中获取user服务实例 , 包括服务的IP , 端口号等信息        ServiceInstance instance = loadBalancerClient.choose("user");        //调用user服务        String userList = new RestTemplate().getForObject(instance.getUri().toString() + "/mall/user/list", String.class);        return "调用" + instance.getServiceId() + "服务 , 端口号:" + instance.getPort() + ",返回结果:" + userList;    }}启动两个user服务 , 一个order服务 , 调用order的接口 , 可以看到结果:
一文看懂微服务架构之注册中心Consul、Nacos

文章插图
 

一文看懂微服务架构之注册中心Consul、Nacos

文章插图
 
负载均衡默认是轮询访问 , 所以交替调用8601和8602的user服务 。
consul的简单入门就讲到这里了 , 除了服务治理之外 , consul还可以用于做配置中心 , 读者有兴趣可以自己探索一下 。我这里用的是dev模式 , 相当于单机模式 , 仅用于学习 , 实际生产的话肯定是集群模式 , 后面如果有时间我再专门写一篇演示一下consul集群的搭建 。
下面讲另一款注册中心 , 阿里出品的Nacos 。


推荐阅读