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

启动类加上注解@EnableDiscoveryClient 。
@SpringBootApplication@EnableDiscoveryClientpublic class UsernacosApplication {    public static void main(String[] args) {        SpringApplication.run(UsernacosApplication.class, args);    }}配置文件application.properties文件加上配置 。
server.port=8070spring.application.name=usernacosspring.cloud.nacos.discovery.server-addr=127.0.0.1:8848创建一个UserController接口 , 提供给其他微服务调用 。
@RestController@RequestMapping("/mall/userNacos")public class UserController {    @RequestMapping("/list")    public Map<String, Object> list() {        Map<String, Object> userMap = new HashMap<>();        userMap.put("周杰伦", "爱在西元前");        userMap.put("张学友", "只想一生跟你走");        userMap.put("刘德华", "忘情水");        userMap.put("陈奕迅", "K歌之王");        userMap.put("卫兰", "就算世界没有童话");        return userMap;    }}运行启动类的main方法 , 可以看到注册中心多了一个usernacos服务 。

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

文章插图
 
4.3 服务调用相同的配置和方法 , 再创建一个ordernacos服务 , 作为消费者 。
@RestController@RequestMapping("/mall/orderNacos")public class OrderController {    @Resource    private LoadBalancerClient loadBalancerClient;    @RequestMapping("/callUser")    public String callUser() {        ServiceInstance instance = loadBalancerClient.choose("usernacos");        String url = instance.getUri().toString() + "/mall/userNacos/list";        RestTemplate restTemplate = new RestTemplate();        //调用usernacos服务        String result = restTemplate.getForObject(url, String.class);        return "调用" + instance.getServiceId() + "服务 , 端口号:" + instance.getPort() + ",返回结果:" + result;    }}启动2个usernacos服务 , 1个ordernacos服务 。
一文看懂微服务架构之注册中心Consul、Nacos

文章插图
 
测试接口http://localhost:8170/mall/orderNacos/callUser , order能顺利调用user , 默认负载均衡策略也是轮询机制 。
一文看懂微服务架构之注册中心Consul、Nacos

文章插图
 

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

文章插图
 
五、总结国内用的比较多的是Nacos , 我觉得原因有几点:
  • 因为阿里目前用的就是Nacos , 经历过双十一 , 各种秒杀活动等高并发场景的验证 。
  • 文档比较齐全 , 关键有中文文档 , 对于国内很多英文水平不是很好的开发者看起来真的很爽 。
  • 很多从阿里出来的程序员 , 把阿里的技术带到了各个中小型互联网公司 , 一般技术选型肯定选自己熟悉的嘛 。
  • 管理界面有中(英)文版本 , 易于操作 。
  • 还有社区比较活跃 , 很多问题可以在网上找到解决方案 。
这篇文章主要介绍了SpringCloud微服务关于注册中心的两种流行的实现方案 , 接下来还会继续介绍其他关于微服务的组件 , 敬请期待 。
上面所有例子的代码都上传Github了:
https://github.com/yehongzhi/mall
觉得有用就点个赞吧 , 你的点赞是我创作的最大动力~
拒绝做一条咸鱼 , 我是一个努力让大家记住的程序员 。我们下期再见!!!


推荐阅读