SpringBoot 整合Nats[笔记]

Nats
要使用Nats首先下载一下NATS的服务器

https://pan.baidu.com/s/1-rIxk6X2k22e8AEQEFIcUA
密码: x4fx

首先介绍一下Nats

	Nats有三种模式
		1.订阅者模式
			发布者在主题上发布消息,只要是订阅了该主题,跟在线的都能收到发布者发布的消息.如果没有订阅该主题或者不在线的,那么就不能收到发布者发布的消息.
		2.消息队列
			消息队列是基于订阅者模式,所有按照订阅者来发送消息
			发布者发送消息时所有订阅该主题以及在线的订阅者都能收到发布者发布的消息,然而这些订阅者如果形成一个队列时,那么发布者发布消息,NATS会随机选择一个订阅者来接收消息而不是所有的订阅者都能收到消息.
		3.请求响应
			发布者使用Request()到订阅者的同时,内部又自己订阅了Message.getRepelyTo然而这个ReplyTo当完成一次请求响应就会失效.
			使用Request()会订阅另外一个主题,然而只要往ReplyTo发送消息发布者就会接收订阅者的响应

二话不说线上代码
首先是导包:

maven加上依赖
	<dependency>
            <groupId>io.nats</groupId>
            <artifactId>java-nats-streaming</artifactId>
            <version>0.5.0</version>
       </dependency>

订阅者生产者代码:

public class getUserJob implements Job {
    

    @Autowired
    private UserService userService;

    @Override
    public void execute(JobExecutionContext jobExecutionContext) {

        ConnectionFactory cf = new ConnectionFactory();
        Connection connection = null;
        try {
            connection = cf.createConnection();
            Message msg = new Message();
            msg.setSubject("subscribe");//订阅主题
            UserEntity entity = userService.getById("1");
            msg.setData(entity.toString().getBytes());//发送得消息
            // 发布消息
            connection.publish(msg);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

订阅者消费者代码

public class Subsceber1 {
    public static void main(String[] args) throws IOException {
       Subsceber1 subsceber1 = new Sub
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值