Nacos 配置
Nacos 上创建配置文件名称格式:${prefix}-${spring.profile.active}.${file-extension},如上一步bootstrap.yml的配置可知,我要创建的配置名为:nacos-config-dev.yaml,内容如下:
文章插图
创建 Controller
动态获取用户名称的功能为例:
创建一个对外接口 /username 代码如下:
@RestController@RefreshScopepublic class ConfigController { @Value("${username:wangzg}") private String username; @RequestMapping("/username") public String userNameInfo() { return username; }}
注意:Controller 上要添加 @RefreshScope注解 它实现了配置的热加载 。验证结果
本地运行项目,可以看到项目的启动时,端口已变为我们在 Nacos 上配置的端口8090 。
文章插图
在浏览器访问链接:http://localhost:8090/username,返回 testuser 。修改 Nacos 上 username 的值,不需要重启微服务,重新请求链接 username 的值会动态变 。可见 Nacos 作为配置中心实现了热加载功能 。
2.3 注册中心
- 创建服务提供者
@RestControllerpublic class ProviderController { @GetMapping("/sayHello") public String sayHello(@RequestParam(value = "name",defaultValue = "helloword")String sayHello){ return "tom say: " + sayHello; }}
启动服务,访问地址:http://localhost:8099/sayHello,可输出:tom say: helloWord,表示微服务已创建成功 。- 创建服务消费者
pom 文件
在 nacos-consumer 的 pom 文件要添加 Feigin-Client 的 maven 依赖 。
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId></dependency>
添加注解在微服务启动类 *Application.java 添加注解 @EnableFeignClients 。
创建 FeignClient
@FeignClient("nacos-provider")public interface ProviderClient { @GetMapping("/sayHello") String sayHello(@RequestParam(value = "name", defaultValue = "wangzg", required = false) String name);}
说明:FeignClient 注解传入的 name ,指定FeignClient的名称,如果项目使用了 Ribbon,name 属性会作为微服务的名称,用于服务发现 。创建 ConsumerController
@RestControllerpublic class ConsumerController { @Autowired ProviderClient providerClient; @GetMapping("/hi-feign") public String hiFeign(){ return providerClient.sayHello("feign"); }}
重启工程,在浏览器上访问 http://localhost:8090/hi-feign,可以在浏览器上展示正确的响应,这时 nacos-consumer 调用 nacos-provider 服务成功 。下面一张请求流转的时序图,这样理解清晰一些 。
文章插图
项目地址:https://github.com/hellowHuaairen/wangzgSpringBootTest
三、最后微服务有四大特点:
- 小(微服务粒度小)
- 独(独立部署运行和扩展)
- 轻(系统简洁轻量化)
- 松(高内聚低耦合)
教程至此,你应该也能对 Nacos 有一些了解!光看不练假把式,最快的学习方式莫过于模仿,再通过举一反三才能融会贯通 。每一种新工具都是对老工具的革新,有兴趣的小伙伴可以参考我上面的案例,在实践中会发现更多乐趣!
推荐阅读
- Spring Boot Debug 调试秘籍,日后必定有用
- 随机数大家都会用,但是你知道生成随机数算法吗?
- 现在全是Mesh组网?选购家用路由怎么办?
- .NET 5.0 正式版发布:应用可在ARM64设备上原生运行
- Redis、MongoDB、HBase应用场景分析
- 运维人员常用的 Linux 命令汇总
- 白毛尖茶的图片,喝毛尖茶的好处(经常饮用信阳毛尖茶有哪些好处
- 波轮洗衣机与滚筒洗衣机图片 滚筒洗衣机还是波轮洗衣机好用
- 化妆品|实惠又好用的护肤品有哪些 推荐十款性价比高好用的化妆品
- 儿童外痔用的药膏有哪些