Nacos 是 Alibaba 公司推出的开源工具,用于实现分布式系统的服务发现与配置管理。Nacos 作为 Dubbo 生态系统中重要的注册中心实现。
Nacos 官 :https://nacos.io/zh-cn/
Github:https://github.com/alibaba/nacos
Dubbo开发实践:Nacos 1.4.3 单机模式安装部署
Dubbo开发实践:使用Nacos 作为Dubbo服务提供者的注册中心
Dubbo开发实践:使用Nacos 作为Dubbo服务消费者的注册中心
一、启动服务提供者和消费者
启动前面开发的Dubbo应用,如图所示,是我们将要演示的Dubbo应用。
项目结构:
book-service-api:公共API 接口定义;
book-service-provider:dubbo 服务提供者;
book-service-consumer:dubbo 服务消费者;
顺序启动book-service-provider、book-service-consumer等模块。
Dubbo 服务提供和消费信息在 Nacos 控制台中可以显示,如图所示:
如图所示,服务名前缀为 providers: 的信息为服务提供者的元信息,consumers: 则代表服务消费者的元信息。图中Dubbo 是以接口粒度来注册的。
点击“详情”可查看服务状态详情:
二、完善BookServiceImpl 实现类
前面我们使用了BookServiceImpl 的默认实现,下面继续完善一下,便于后面的测试验证。
BookServiceImpl 实现类的代码如下所示:
@Servicepublic class BookServiceImpl implements IBookService { private List<Book> books = Stream.of( new Book("01", "COLA 4.x架构入门和项目实践", "内容由浅入深,从开发实战出发,逐步掌握基于COLA架构和DDD领域建模思想构建复杂业务应用系统。", "软件架构", new Date(), 360, 66), new Book("02", "Elasticsearch 8.0 快速入门", "具体使用细节和实践,可以访问《Elasticsearch 8.0 快速入门》技术专栏。", "es8", new Date(), 166, 55) ).collect(Collectors.toList()); @Override public List<Book> getBooks() { return books; } @Override public List<Book> getBookById(String id) { return books.stream().filter(book -> book.getId().equals(id)).collect(Collectors.toList()); } @Override public boolean addNewBook(Book book) { return books.add(book); }}
三、测试验证
启动dubbo服务提供者和消费者之后,就可以通过postman 发起请求,验证返回结果。
如图所示,EchoService返回结果符合预期。
在看看BookService 的测试结果:
(1)获取所有books列表
通过传入的id 参数获取指定的book,如图所示:
发起POST 请求,新增一条book 记录,如图所示:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!