Nacos是以服务为主要服务对象的中间件,Nacos支持所有主流的服务发现、配置和管理。
Nacos主要提供以下四大功能:
服务发现与服务健康检查
Nacos使服务更容易注册自己并通过DNS或HTTP接口发现其他服务。Nacos还提供服务的实时健康检查,以防止向不健康的主机或服务实例发送请求。
动态配置管理
动态配置服务允许您在所有环境中以集中和动态的方式管理所有服务的配置。Nacos消除了在更新配置时重新部署应用程序和服务的需要,这使配置更改更加高效和灵活。
动态DNS服务
Nacos支持加权路由,使您可以更轻松地在数据中心的生产环境中实施中间层负载平衡,灵活的路由策略,流量控制和简单的DNS解析服务。它可以帮助您轻松实现基于DNS的服务发现,并防止应用程序耦合到特定于供应商的服务发现API。
服务和元数据管理Nacos提供易于使用的服务仪表板,可帮助您管理服务元数据,配置,kubernetesDNS,服务运行状况和指标统计。
image.png
nacos具有Apollo大部分功能,最重要的是配置中心与注册中心打通,可以省去我们在微服务治理方面的一些投入(比如通过动态配置来启停线程池等操作)。
初步结论为:使用Nacos代替Eureka和apollo,主要理由为:相比与Eureka:(1)Nacos具备服务优雅上下线和流量管理(API+后台管理页面),而Eureka的后台页面仅供展示,需要使用api操作上下线且不具备流量管理功能。(2)从部署来看,Nacos整合了注册中心、配置中心功能,把原来两套集群整合成一套,简化了部署维护(3)从长远来看,Eureka开源工作已停止,后续不再有更新和维护,而Nacos在以后的版本会支持SpringCLoud+Kubernetes的组合,填补2者的鸿沟,在两套体系下可以采用同一套服务发现和配置管理的解决方案,这将大大的简化使用和维护的成本。同时来说,Nacos计划实现ServiceMesh,是未来微服务的趋势(4)从伸缩性和扩展性来看Nacos支持跨注册中心同步,而Eureka不支持,且在伸缩扩容方面,Nacos比Eureka更优(nacos支持大数量级的集群)。(5)Nacos具有分组隔离功能,一套Nacos集群可以支撑多项目、多环境。
相比于apollo(1)Nacos部署简化,Nacos整合了注册中心、配置中心功能,且部署相比apollo简单,方便管理和监控。(2)apollo容器化较困难,Nacos有官网的镜像可以直接部署,总体来说,Nacos比apollo更符合KISS原则(3)性能方面,Nacos读写tps比apollo稍强一些
结论:使用Nacos代替Eureka和apollo
NacosSync是一个支持多种注册中心的同步组件,基于Springboot开发框架,数据层采用SpringDataJPA,遵循了标准的JPA访问规范,支持多种数据源存储,默认使用Hibernate实现,更加方便的支持表的自动创建更新
使用了高效的事件异步驱动模型,支持多种自定义事件,使得同步任务处理的延时控制在3s,8C16G的单机能够支持6K的同步任务
NacosSync除了单机部署,也提供了高可用的集群部署模式,NacosSync是无状态设计,将任务等状态数据迁移到了数据库,使得集群扩展非常方便
抽象出了Sync组件核心接口,通过注解对同步类型进行区分,使得开发者可以很容易的根据自己需求,去扩展不同注册中心,目前已支持的同步类型:
Nacos数据同步到Nacos Zookeeper数据同步到Nacos Nacos数据同步到Zookeeper Eureka数据同步到Nacos Consul数据同步到Nacos系统模块架构
image.png
使用场景多个网络互通的Region之间服务共享,打破Region之间的服务调用限制
image.png
Nacos提供DNS-F功能DNS-F落地的技术价值
填补了内部微服务业务没有全局动态调度能力的空白
解决了服务端棉铃挑战:时延大、解析不准、故障牵引慢
支持服务端多种调度需要
加速外部域名解析
服务故障牵引秒级生效
提供专线流量牵引能力
image.png
阿里巴巴、虎牙直播、中国工商银行、爱奇艺、中国平安、平安科技、浙江农信、贝壳、丰巢、百世快递、汽车之家等
解压压缩包,需要jdk8及以上的环境,然后执行数据库的脚本nacos-mysql.sql
[root@topcheerconf]#ll 总用量60 -rw-r--r--1501games176510月2423:31application.properties -rw-r--r--1501games4084月62019application.properties.example -rw-r--r--1501games584月62019cluster.conf.example -rw-r--r--1501games261004月102019nacos-logback.xml -rw-r--r--1501games97884月92019nacos-mysql.sql -rw-r--r--1501games71964月102019schema.sql [root@topcheerconf]#修改配置application.properties
db.num=1 db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=root db.password=123456启动
nohupshstartup.sh-mstandalone&
查看日志
[root@topcheerbin]#/usr/local/jak/jdk1.8.0_181/bin/java-Xms512m-Xmx512m-Xmn256m-Dnacos.standalone=true-Djava.ext.dirs=/usr/local/jak/jdk1.8.0_181/jre/lib/ext:/usr/local/jak/jdk1.8.0_181/lib/ext:/mnt/nacos/plugins/cmdb:/mnt/nacos/plugins/mysql-Xloggc:/mnt/nacos/logs/nacos_gc.log-verbose:gc-XX:+PrintGCDetails-XX:+PrintGCDateStamps-XX:+PrintGCTimeStamps-XX:+UseGCLogFileRotation-XX:NumberOfGCLogFiles=10-XX:GCLogFileSize=100M-Dnacos.home=/mnt/nacos-jar/mnt/nacos/target/nacos-server.jar--spring.config.location=classpath:/,classpath:/config/,file:./,file:./config/,file:/mnt/nacos/conf/--logging.config=/mnt/nacos/conf/nacos-logback.xml nacosisstarting ,--. ,--.| ,--,::|Nacos1.0.0 ,`--.`|:,---.Runninginstandalonemode,Allfunctionmodules |::||,\.--.--.Port:8848 :|\|:,--.--.,---.//|//Pid:26163 |:;|/\/\.;,.:|:/`./Console:http://192.168.180.113:8848/nacos/index.html ;.;.--..-.|//||::|:;_ |||\|\__\/:.../|.;:\\`.https://nacos.io :|;.,".--.;|;:__|:|`----.\ ||`--//,.||.|\\///`--/ :|;:.\::`------./ ;|.|,.-./\\/`----- ---`--`---`---- 2019-10-2500:01:33,057INFOBeanorg.springframework.security.config.annotation.configuration.ObjectPostProcessorConfigurationoftype[org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration$$EnhancerBySpringCGLIB$$9b21802a]isnoteligibleforgettingprocessedbyallBeanPostProcessors(forexample:noteligibleforauto-proxying) 2019-10-2500:01:33,216INFOBeanobjectPostProcessoroftype[org.springframework.security.config.annotation.configuration.AutowireBeanFactoryObjectPostProcessor]isnoteligibleforgettingprocessedbyallBeanPostProcessors(forexample:noteligibleforauto-proxying) 2019-10-2500:01:33,219INFOBeanorg.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler@5965d37oftype[org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler]isnoteligibleforgettingprocessedbyallBeanPostProcessors(forexample:noteligibleforauto-proxying) 2019-10-2500:01:33,225INFOBeanorg.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfigurationoftype[org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration$$EnhancerBySpringCGLIB$$bff622dc]isnoteligibleforgettingprocessedbyallBeanPostProcessors(forexample:noteligibleforauto-proxying) 2019-10-2500:01:33,233INFOBeanmethodSecurityMetadataSourceoftype[org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource]isnoteligibleforgettingprocessedbyallBeanPostProcessors(forexample:noteligibleforauto-proxying) 2019-10-2500:01:34,342INFOTomcatinitializedwithport(s):8848(http) 2019-10-2500:01:34,575INFORootWebApplicationContext:initializationcompletedin5344ms 2019-10-2500:01:39,857INFOInitializingExecutorServiceapplicationTaskExecutor账号密码都是nacos前面简介参考:https://www.jianshu.com/p/afd7776a64c6
本文内容总结:一Nacos简介,1.1Nacos总体概况,1.2Nacos架构,二、注册中心与配置中心横向对比,2.1Nacos与eureka注册中心对比,2.2服务配置中心对比,2.3初步选型结论,三、Nacos其他特性,3.1NacosSync的价值,3.2DNS-F的技术价值,3.3目前使用Nacos的公司,四、安装Nacos,
原文链接:https://www.cnblogs.com/dalianpai/p/11735882.html