相爱八年,却因为一篇Nacos,我们分手了
Posted JAVA炭烧
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了相爱八年,却因为一篇Nacos,我们分手了相关的知识,希望对你有一定的参考价值。
前言
“我们分手吧,我们已经不适合在一起了”。
夕阳西下,我和她静静的走在湖边的小路上,今天的晚霞特别红,阳光照在微风吹过的湖面上,一闪一闪的,倒映在她的脸上是那么的美。今天难得清闲,她下班很早,微信和我说要出去走走,时间过的很快,这已经是我们在一起的第八个年头,她是一个女强人,一直在商界打拼,根本顾不上家,所以她很感谢我一直默默支持着自己。
她的努力没有白费,事业上做的也是风生水起,而我的工作不忙,在一家不大的公司每天搬搬砖,回家就做做饭,生活过得还算惬意,就在我觉得我们可以这样一直这样惬意下去的时候,今天她对我说:”我们分手吧”。
我愣了一下,没有说话,默默的向前走着,我不明白,前一秒还那么美好,下一秒却像是晴空霹雳。八年前,我们在老街第一次见面,至今为止我们相识相爱了八年,期间经历了很多风风雨雨,就在昨天我还在想着八周年纪念日该怎么过,现在感觉都是笑话。
看着我没有说话,她开口说起了这八年来的点点滴滴,我静静的听着,听她如数家珍的述说着我们的过去,我知道这是最后一次我们一起翻开这本记忆手册,我没有咆哮,没有愤怒,因为我知道,我在你身边,只会是累赘,我们更应该好聚好散。
人生若只如初见,何事秋风悲画扇。如果有来生,我还是会毫不犹豫选择你,因为,即使分手,我也爱你。
今天可能是我最后一篇文章,明天我将会去哪,我也不得而知。
正当我陷入无尽的哀伤之中时,我感到背后有那么一丝凉意,这时只听见‘啪’的一声,帅气的脸颊成功拿下五杀,“你特么又在这给我编故事,是不是又把自己写的弱小无助,来这做标题党呢”。
擦,原来一切都是一场白日梦,还以为要分一大波家产了呢,差点都规划美好的未来了。
正文
说归说,闹归闹,别拿技术开玩笑,就像读淘宝技术这十年一样,技术一直在革新,在丢弃一些东西,同时又找到更强大的替代品。今天牛批哈的有点多,言归正传,今天就要给大家介绍Nacos的另一个功能—注册中心,为了她,我狠心的抛弃了了Eureka,感觉十分的渣男。
启动Nacos服务
启动方式上篇Nacos已经说明,这里不再赘述。
注册中心demo搭建
本文用三个子项目来演示Nacos作为配置中心,来集成dubbo的简单案例。整体项目结构介绍
- 新建父项目(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>
- 公共服务接口子项目构建(nacos-api)
nacos-api用于暴露服务,供消费者调用。这里只简单写一个获取用户名的方法。
public interface DubboServiceDemo {
//获取用户名称
ResponseDemo getName(RequestDemo requestDemo);
}
- 生产者服务(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");
}
}
- 消费者服务(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),在服务管理下的【服务列表】中可以看到刚刚注册进来的两个服务。
- 使用消费者测试服务
调用子项目nacos-consumer
中的测试接口http://127.0.0.1:8082/getDubboResult
进行测试,能够正确获取到预期结果。
注意事项
- Nacos相对于Eureka的对比,主要增加了配置中心,并且配置中心可以设置自动刷新,减少了服务重启次数。而且nacos 的注册的实例数是大于eureka的,因为nacos使用的raft协议,所以一致性要远大于eureka。
- 作为配置中心时,nacos和apollo类似,都有使用长轮询, 配置变动后通知非常的迅速。 就配置中心这块功能来说,相较于Apollo有些差距,Nacos更适合中小型企业使用,而Apollo能够满足大型公司的需求。
总结
互联网技术革新很快,要想存活的更好,就要不断注入新的知识。但是爱人之间就好比一谈老酒,越久越香醇绵长,越久越能品出他的味道,希望小伙伴们珍惜眼前人呐。好了,今天的分享就到这里了
最后
以下是今天给大家分享的一些独家干货:
最后,希望未来的我发展顺利,早日拿下p7!同样,也祝愿你实现自己的人生理想,愿我们都越来越好,共勉!
获取方式: 只需你**点赞+关注**后,Java进阶交流群:714827309 哦-!
获取方式: 只需你点赞+关注后,Java进阶交流群:714827309 进群拿资料哦-!
以上是关于相爱八年,却因为一篇Nacos,我们分手了的主要内容,如果未能解决你的问题,请参考以下文章