相爱八年,却因为一篇Nacos,我们分手了

前言

“我们分手吧,我们已经不适合在一起了”。

夕阳西下,我和她静静的走在湖边的小路上,今天的晚霞特别红,阳光照在微风吹过的湖面上,一闪一闪的,倒映在她的脸上是那么的美。今天难得清闲,她下班很早,微信和我说要出去走走,时间过的很快,这已经是我们在一起的第八个年头,她是一个女强人,一直在商界打拼,根本顾不上家,所以她很感谢我一直默默支持着自己。

她的努力没有白费,事业上做的也是风生水起,而我的工作不忙,在一家不大的公司每天搬搬砖,回家就做做饭,生活过得还算惬意,就在我觉得我们可以这样一直这样惬意下去的时候,今天她对我说:”我们分手吧”。

我愣了一下,没有说话,默默的向前走着,我不明白,前一秒还那么美好,下一秒却像是晴空霹雳。八年前,我们在老街第一次见面,至今为止我们相识相爱了八年,期间经历了很多风风雨雨,就在昨天我还在想着八周年纪念日该怎么过,现在感觉都是笑话。

看着我没有说话,她开口说起了这八年来的点点滴滴,我静静的听着,听她如数家珍的述说着我们的过去,我知道这是最后一次我们一起翻开这本记忆手册,我没有咆哮,没有愤怒,因为我知道,我在你身边,只会是累赘,我们更应该好聚好散。

人生若只如初见,何事秋风悲画扇。如果有来生,我还是会毫不犹豫选择你,因为,即使分手,我也爱你。

今天可能是我最后一篇文章,明天我将会去哪,我也不得而知。

正当我陷入无尽的哀伤之中时,我感到背后有那么一丝凉意,这时只听见‘啪’的一声,帅气的脸颊成功拿下五杀,“你特么又在这给我编故事,是不是又把自己写的弱小无助,来这做标题党呢”。

擦,原来一切都是一场白日梦,还以为要分一大波家产了呢,差点都规划美好的未来了。

正文

说归说,闹归闹,别拿技术开玩笑,就像读淘宝技术这十年一样,技术一直在革新,在丢弃一些东西,同时又找到更强大的替代品。今天牛批哈的有点多,言归正传,今天就要给大家介绍Nacos的另一个功能—注册中心,为了她,我狠心的抛弃了了Eureka,感觉十分的渣男。

image.png

启动Nacos服务

启动方式上篇Nacos已经说明,这里不再赘述。

注册中心demo搭建

本文用三个子项目来演示Nacos作为配置中心,来集成dubbo的简单案例。整体项目结构介绍

  1. 新建父项目(HuaGieProject)

父项目主要是为子项目提供依赖,这里共有三个子项目:nacos-api、nacos-provider、nacos-consumer。

父项目pom依赖:

<properties>
    <java.version>1.8</java.version>
    <revision>2.7.3</revision>
    <nacos.version>1.0.1</nacos.version>
</properties>
<modules>
    <module>nacos-provider</module>
    <module>nacos-api</module>
    <module>nacos-consumer</module>
</modules>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>${revision}</version>
    </dependency>

    <!-- Dubbo Registry Nacos -->
    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo-registry-nacos</artifactId>
        <version>${revision}</version>
    </dependency>

    <dependency>
        <groupId>com.alibaba.nacos</groupId>
        <artifactId>nacos-client</artifactId>
        <version>${nacos.version}</version>
    </dependency>
</dependencies>
  1. 公共服务接口子项目构建(nacos-api)

nacos-api用于暴露服务,供消费者调用。这里只简单写一个获取用户名的方法。

public interface DubboServiceDemo {
    //获取用户名称
    ResponseDemo getName(RequestDemo requestDemo);
}
  1. 生产者服务(nacos-provider)

主要用于实现nacos-api中的接口,所以它是依赖于公共服务接口。

  • 在pom依赖文件中引入nacos-api:
<dependencies>
    <dependency>
        <groupId>com.huage.nacos</groupId>
        <artifactId>nacos-api</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
</dependencies>
  • 配置properties文件:
spring.application.name=provider
server.port=8083
# nacos地址
nacos.server-address=127.0.0.1
nacos.port=8848
#接口实现类包路径
dubbo.scan.base-packages=com.huage.productor.dubbo
dubbo.protocol.name=dubbo
dubbo.protocol.port=-1
## Dubbo地址
dubbo.registry.address=nacos://${nacos.server-address}:${nacos.port}
##dubbo服务名称
dubbo.application.name=${spring.application.name}
## 服务版本
demo.service.version=2.0.1
  • 在启动类ProviderApplication增加注解@EnableDubbo

  • 实现nacos-api中的接口

@Service(version = "${demo.service.version}")
public class DubboServiceImpl implements com.huage.nacos.nacosapi.service.DubboServiceDemo {
    @Override
    public ResponseDemo getName(RequestDemo requestDemo) {
        return new ResponseDemo("花Gie");
    }
}
  1. 消费者服务(nacos-consumer)

消费者同样依赖于公共服务接口,来实现rpc调用。

  • 在pom依赖文件中引入nacos-api:
<dependencies>
    <dependency>
        <groupId>com.huage.nacos</groupId>
        <artifactId>nacos-api</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
</dependencies>
  • 配置properties文件:
server.port=8082
spring.application.name=consumer
nacos.service.version=2.0.1
nacos.host=127.0.0.1
nacos.port=8848
dubbo.registry.address=nacos://${nacos.host}:${nacos.port}
nacos.config.server-addr=127.0.0.1:8848
  • 在启动类ConsumerApplication增加注解@EnableDubbo

  • 实现nacos-api中的接口

@Reference(check = false, version = "${nacos.service.version}")
private DubboServiceDemo dubboServiceDemo;

@RequestMapping(value = "/getDubboResult", method = RequestMethod.GET)
@ResponseBody
public ResponseDemo getDubboResult() {
    return dubboServiceDemo.getName(new RequestDemo());
}

启动调试

  • 启动nacos-consumer、nacos-provide服务

启动服务后,在浏览器打开Nacos控制台(http://127.0.0.1:8848/nacos/index.html),在服务管理下的【服务列表】中可以看到刚刚注册进来的两个服务。

image.png

  • 使用消费者测试服务

调用子项目nacos-consumer中的测试接口http://127.0.0.1:8082/getDubboResult进行测试,能够正确获取到预期结果。

image.png

注意事项

  • Nacos相对于Eureka的对比,主要增加了配置中心,并且配置中心可以设置自动刷新,减少了服务重启次数。而且nacos 的注册的实例数是大于eureka的,因为nacos使用的raft协议,所以一致性要远大于eureka。

image.png

  • 作为配置中心时,nacos和apollo类似,都有使用长轮询, 配置变动后通知非常的迅速。 就配置中心这块功能来说,相较于Apollo有些差距,Nacos更适合中小型企业使用,而Apollo能够满足大型公司的需求。

image.png

总结

互联网技术革新很快,要想存活的更好,就要不断注入新的知识。但是爱人之间就好比一谈老酒,越久越香醇绵长,越久越能品出他的味道,希望小伙伴们珍惜眼前人呐。好了,今天的分享就到这里了,下期花Gie继续探索更多好玩的内容,继续输出。

项目已上传至github,小伙伴们自提:https://github.com/zsh577531737/HuaGieProject.git

博客文章pdf版本地址:https://github.com/zsh577531737/JavaGieGie.git

点关注,防走丢

以上就是本期全部内容,如有纰漏之处,请留言指教,非常感谢。我是花Gie,有问题大家随时留言讨论 ,我们下期见🦮。

文章持续更新,可以微信搜一搜 Java开发零到壹 第一时间阅读,并且可以获取面试资料学习视频等,有兴趣的小伙伴欢迎关注,一起学习,一起哈🐮🥃。

原创不易,你怎忍心白嫖,如果你觉得这篇文章对你有点用的话,感谢老铁为本文点个赞、评论或转发一下,因为这将是我输出更多优质文章的动力,感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旭仔儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值