docker 安装nacos_拥抱开源Nacos 实战篇

edb6ea291faaab20cb0860fa33cd2a02.png

超级马里奥兄弟,35周年! 

库巴,一如既往的迷恋碧奇公主?!

又是一年金九银十。

最近在梳理面试题,发现微服务、服务治理相关的内容还是非常多的。

于是,将国产开源产品 Nacos 研究了下,写了点内容分享给大家。

祝大家在芜湖起飞的时候,更有底气。93353e93d5d37092b0f81c3c0a63bcc6.png


01 Nacos 准备

首先启动 Nacos Derby。

$ docker-compose -f example/standalone-derby.yaml up

docker 安装参考上周的「拥抱开源」注册中心 Nacos 。

启动之后,使用浏览器打开 http://localhost:8848/nacos。

使用默认的登录账号:nacos,密码:nacos

9d04d838a8709167cfdb1f32111bc6f4.png


02 Nacos 界面

Nacos 管理界面是一个平平无奇的 HTML。

配置管理

可以将一些敏感的配置信息进行妥善管理,例如:生产数据库的地址账号密码。

14766cc8e6f7614993f58ddd55b58ed7.png

服务列表

查看当前在线的微服务信息。

ca0d1528b97a6ddd5aed277ca36a7e5c.png

同时提供了服务编辑与上下线功能。

bbe28caeb148e236a01783ed3a1184c7.png

命名空间

提供了自定义命名空间的配置。

3c84b8d0b4cd443ee615f039c66853c2.png

集群管控

生产环境可以选择使用3台或3台以上的服务器进行部署。

00f05278ce92dc33b42b6ce83585cefe.png


03 Spring Cloud Nacos

服务的提供者

1. application.yml 

指定服务提供者应用的别名,用于服务调用使用。

spring:  application:    name: oPos-center

2. application-dev.yml

配置 Nacos 服务的地址。

spring:  cloud:    nacos:      discovery:        server-addr: 127.0.0.1:8848

3. Application.java

增加启用服务发现注解。

@EnableDiscoveryClientpublic class Application {

4. EchoController.java

假装提供一个分布式服务,即一个 Get 的请求链接。

@RestControllerpublic class EchoController {  @RequestMapping(value = "/echo/{str}", method = RequestMethod.GET)  public String echo(@PathVariable String str) {    return "Hello Nacos Discovery " + str;  }}

服务的调用者

1. application.yml 

指定服务提供者应用的别名,用于服务调用使用。

spring:  application:    name: oPos-client

2. application-dev.yml

配置 Nacos 服务的地址。

spring:  cloud:    nacos:      discovery:        server-addr: 127.0.0.1:8848

3. Application.java

增加启用服务发现注解。

@EnableDiscoveryClientpublic class Application {  @LoadBalanced  @Bean  public RestTemplate restTemplate() {    return new RestTemplate();  }

4.HomeController.java

假装提供一个分布式服务,即一个 Get 的请求链接。

@Controllerprivate final RestTemplate restTemplate;  @Autowired  public HomeController(RestTemplate restTemplate) {    this.restTemplate = restTemplate;  }  @ResponseBody  @RequestMapping(value = "/echo/{str}", method = RequestMethod.GET)  public String echo(@PathVariable String str) {    return restTemplate.getForObject("http://oPos-center/echo/" + str, String.class);  }}

最终效果:

通过访问服务调用者,返回服务提供者的消息。

69420841d5a3d1b0e111a0e3e590ed16.png

一个简易的分布式服务调用就制作好了。

PS. 完整示例代码,见 https://github.com/FoamValue/oPos.git


04 小结

Nacos 自2018年8月5日开源以来,在社区两年的共同努力之下,获得了13400+ stars,发布了30个版本,吸引了 125 位优秀贡献者。

今天体验下来,发现 1.3.2 版本的 Nacos 基本的核心功能都已经完备,也有成功的生产案例。

让我们下周再见。?

这个周末,又一次成功“强迫”自己学习。

感谢各位小伙伴的阅读,这里是一个技术人的学习与分享。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值