www.teandq.com
晓安科普

知识库平台设计(内部知识库平台)万万没想到

2023-11-28Aix XinLe

知识库系列:阿里内部,也会用的!!!(持续更新)准备面试?工作遇到问题?想要积累知识?快来7TCoding搜一搜。不积跬步,无以至千里不积小流,无以成江海。生活中总有些东西值得分享。

知识库平台设计(内部知识库平台)万万没想到

 

底部有惊喜,关注更多精彩不积跬步,无以至千里不积小流,无以成江海生活中总有些东西值得分享整理 | 7TCoding ; 策划 | 小七

目前国内大部分的公司都会使用阿里出品的Nacos作为微服务注册中心,配置中心来使用,今天了不起为大家介绍一下Nacos的基本使用1、Nacos简介Nacos的概念和功能Nacos是一个面向微服务架构的动态服务发现、配置管理和服务治理平台,它能够帮助开发人员和运维人员实现服务注册、配置管理、DNS和负载均衡等功能。

下面是一些Nacos的主要功能:服务发现配置管理DNS服务:Nacos支持将服务名解析为服务IP和端口号,提供了一种轻量级的服务发现方案,通过HTTP DNS协议来实现负载均衡服务治理:Nacos通过服务治理功能,可以对服务实例进行管理和监控,包括实例上下线、心跳检测、健康状态等。

同时,Nacos还支持路由策略、限流、熔断降级等功能,提高了服务的可用性和稳定性总之,Nacos是一个强大的服务注册与发现中心,提供了动态配置管理和服务治理等功能,帮助开发者轻松构建高可用、高性能的微服务架构。

2、安装使用Nacos2.1安装NacosNacos是一个基于Java开发的应用,它可以作为独立的服务运行,也可以作为嵌入式组件在Java应用程序中使用以下是Nacos的安装和使用方法:下载Nacos:https://github.com/alibaba/nacos/releases。

安装Nacos:将下载的Nacos压缩包解压到指定目录,进入解压后的目录,运行bin目录下的startup.sh(Linux/Mac)或startup.cmd(Windows)脚本即可启动Nacos访问Nacos控制台:默认情况下,Nacos控制台的访问地址为 http://localhost:8848/nacos

注册服务:在Nacos控制台中,可以通过服务管理界面注册服务,输入服务名称和IP地址等信息即可完成服务注册同时,可以设置服务的健康检查、负载均衡等属性获取服务:在应用程序中,可以通过Nacos提供的Java SDK或HTTP API获取已注册的服务信息。

除此之外,Nacos还提供了丰富的配置管理功能,可以帮助开发者管理应用程序的配置信息可以通过Nacos控制台或API等方式实现配置的动态管理和实时更新注册服务Nacos的服务注册和发现功能是其核心功能之一,下面是一个简单的Java示例,演示如何使用Nacos SDK注册服务:。

添加依赖在Maven项目中添加以下依赖:com.alibaba.nacosnacos-client

>2.0.2创建Nacos服务注册实例:在Java应用程序中,可以通过以下代码创建Nacos服务注册实例,设置Nacos服务器的地址和端口号:

import com.alibaba.nacos.api.exception.NacosException;import com.alibaba.nacos.api.naming.NamingFactory;

import com.alibaba.nacos.api.naming.NamingService;publicclassNacosServiceRegistry{publicstaticvoidmain

(String[] args)throws NacosException {        String serverAddr = "localhost:8848"; // Nacos服务器的地址和端口号

        NamingService namingService = NamingFactory.createNamingService(serverAddr);// 注册服务        namingService.registerInstance(

"my-service", "127.0.0.1", 8080);// 关闭Nacos服务注册实例        namingService.shutdown();    }}注册服务:通过NamingService

对象的registerInstance()方法注册服务,需要指定服务的名称、IP地址和端口号等信息,例如:namingService.registerInstance("my-service", "127.0.0.1"

, 8080);关闭服务注册实例:在服务注册完成后,需要关闭NamingService对象,例namingService.shutdown();以上是一个简单的使用Nacos SDK注册服务的示例,当然,在实际使用中,还需要考虑服务的健康检查、负载均衡等问题。

配置服务Nacos的配置管理功能可以帮助开发者动态管理应用程序的配置信息下面是一个简单的Java示例,演示如何使用Nacos SDK实现配置服务的获取和监听:添加依赖,在Maven项目中添加以下依赖:<

dependency>com.alibaba.nacosnacos-client2.0.2

>创建Nacos配置服务实例:在Java应用程序中,可以通过以下代码创建Nacos配置服务实例,设置Nacos服务器的地址和端口号:import com.alibaba.nacos.api.config.ConfigFactory;

import com.alibaba.nacos.api.config.ConfigService;import com.alibaba.nacos.api.exception.NacosException;

publicclassNacosConfigService{publicstaticvoidmain(String[] args)throws NacosException {        String serverAddr = 

"localhost:8848"; // Nacos服务器的地址和端口号        String dataId = "my-config"; // 配置项的ID        String group = 

"DEFAULT_GROUP"; // 配置项的分组// 创建Nacos配置服务实例        ConfigService configService = ConfigFactory.createConfigService(serverAddr);

// 获取配置        String config = configService.getConfig(dataId, group, 5000);        System.out.println(config);

// 监听配置        configService.addListener(dataId, group, new Listener() {@OverridepublicvoidreceiveConfigInfo

(String config){                System.out.println(config);            }@Overridepublic Executor getExecutor

(){returnnull;            }        });    }}获取配置:通过ConfigService对象的getConfig()方法获取指定配置项的配置信息,需要指定配置项的ID和分组等信息,例如:

String dataId = "my-config";String group = "DEFAULT_GROUP";String config = configService.getConfig(dataId, group, 

5000);System.out.println(config);监听配置:通过ConfigService对象的addListener()方法监听指定配置项的配置变化,需要实现Listener接口中的receiveConfigInfo()

方法,例如:configService.addListener(dataId, group, new Listener() {@OverridepublicvoidreceiveConfigInfo(String config)

{        System.out.println(config);    }@Overridepublic Executor getExecutor(){returnnull;    }});以上是一个简单的使用Nacos SDK实现配置服务的示例,当然,在实际使用中,还需要考虑配置的加密、灰度发布等问题。

服务发现添加依赖,例如在Maven项目中添加以下依赖:com.alibaba.cloudspring-cloud-starter-alibaba-nacos-discovery

2.2.3.RELEASE配置Nacos Server地址:在application.properties或application.yml

中,添加Nacos Server的地址和端口号:spring.cloud.nacos.discovery.server-addr=localhost:8848添加服务提供者:在Spring Boot应用程序中,添加一个服务提供者的REST接口,例如:

@RestControllerpublicclassHelloController{@GetMapping("/hello")public String hello(){return"Hello, world!"

;    }}添加服务消费者:在Spring Boot应用程序中,添加一个服务消费者的REST接口,例如:@RestControllerpublicclassHelloConsumerController

{@Autowiredprivate RestTemplate restTemplate;@GetMapping("/hello")public String hello(){        String url = 

"http://my-service/hello";        String result = restTemplate.getForObject(url, String.class);return

 result;    }}在上面的代码中,RestTemplate是Spring提供的一个用于发送HTTP请求的工具类在hello()方法中,通过RestTemplate发送GET请求,请求URL为http://my-service/hello

,其中my-service为服务提供者的服务名启动服务:分别启动服务提供者和服务消费者两个Spring Boot应用程序,可以看到服务消费者通过服务发现机制自动发现了服务提供者,从而可以调用服务提供者的REST接口。

需要注意的是,Nacos服务发现默认使用Ribbon进行负载均衡,因此在上面的示例中,如果服务提供者有多个实例,服务消费者将会自动进行负载均衡,请求不同的服务实例配置中心确保你已经在Nacos中创建了配置,例如:。

# application.ymlexample:greeting:Hello,World!接下来,在Spring Boot项目中添加依赖:com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-config${nacos.config.version}

在Spring Boot的启动类中添加@EnableDiscoveryClient和@RefreshScope注解,它们分别启用服务发现和动态刷新配置:javaCopy codeimport org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

import org.springframework.cloud.context.config.annotation.RefreshScope;@SpringBootApplication@EnableDiscoveryClient

@RefreshScopepublic class MyApplication {    public static void main(String[] args) {        SpringApplication.run(MyApplication.class, args);

    }}最后,在application.yml中添加以下内容,告诉Spring Boot如何连接到Nacos服务器:spring:cloud:nacos:config:server-addr:localhost:8848

# Nacos服务器地址namespace:your-namespace# 命名空间现在,你可以在你的代码中使用@Value注解来注入Nacos配置中心的值了,如下所示:import org.springframework.beans.factory.annotation.Value;

import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;

@RestControllerpublicclassMyController{@Value("${example.greeting}")private String greeting;@GetMapping

("/")public String index(){return greeting;    }}现在,当你更新Nacos中的配置时,Spring Boot应用程序将自动检测到更改并动态地重新加载配置监控中心

Nacos监控中心可以帮助你实时监控Nacos实例的运行状态,包括健康状态、配置状态、元数据状态等下面是使用Nacos监控中心的步骤:确保Nacos已启动并运行正常在Nacos控制台中,点击左侧导航栏中的“监控”按钮,进入监控中心页面。

在监控中心页面中,你可以看到以下三个部分:首页:显示Nacos实例的整体健康状态,包括Nacos实例数、实例状态、服务数量、配置数量、命名空间数量等服务健康:显示Nacos实例中每个服务的健康状态,包括服务名称、实例数、健康实例数、不健康实例数、最近一次健康状态检查时间等。

配置管理:显示Nacos实例中每个配置的状态,包括配置ID、配置Data ID、配置Group、配置类型、最近一次修改时间等如果你想查看更详细的监控信息,可以点击“服务健康”或“配置管理”页面中的某个服务或配置,进入详细信息页面。

在详细信息页面中,你可以看到该服务或配置的实例列表、健康状态、元数据信息等除了使用监控中心页面,你也可以通过Nacos提供的API接口获取监控信息例如,你可以通过以下API接口获取服务健康状态:GET /nacos/v1/ns/instance/health?serviceName=。

其中,是你要查询的服务名称该接口将返回该服务的健康状态信息你也可以使用其他API接口获取其他监控信息,具体请参考Nacos官方文档3、Nacos与Eureka的区别数据一致性实现方式不同。

 在Eureka 中,服务注册和发现依赖于心跳检测机制,每隔一段时间,客户端会发送心跳包维护自己的状态,并将服务状态信息告知Eureka Server而Nacos 的服务注册与发现机制采用了更加强大的基于成熟Raft协议的Paxos算法实现读写数据一致性。

功能组件的支持程度不同Nacos 提供了服务注册、配置管理、流量控制、DNS 服务等一系列功能的支持,用来支持微服务架构的需要;而Eureka 则只提供了服务的注册和发现功能,缺乏其他全方位的支持开源社区活跃度不同。

 相较于Eureka,Nacos 的开源社区更为活跃,且已成为了 Apache 软件基金会 Top-Level Project,开发进展速度更快 节约开发成本基本上,Nacos可以说是是一个功能丰富、易用性强、可扩展性好、高可用性的服务发现、配置管理和服务治理平台。

对于分布式系统的开发和运维来说,Nacos是一个非常好的选择你学废了吗‍‍准备面试?工作遇到问题?想要积累知识?‍‍‍‍‍‍‍‍‍快搜索公众号:7TCoding‍‍‍‍‍‍‍‍

往期内容回顾:1、互联网知识库合集【详见脑图】2、知识库系列:Zookeeper和Mybatis(持续更新)3、知识库系列:Dubbo(附脑图-持续更新)4、知识库系列:分布式搜索和分析引擎Elasticsearch(附脑图-持续更新)

5、知识库系列:Redis(附脑图-持续更新)6、知识库系列:分布式的高速缓存系统Memcached(附脑图-持续更新)7、知识库系列:MySQL(附脑图-持续更新)8、知识库系列:Java基础1+2(附脑图-持续更新)

9、知识库系列:SpringBoot干货实践及知识库(附脑图-持续更新)10、知识库系列:Linux知识库(附脑图-持续更新)11、知识库系列:微服务系列(附脑图-持续更新)12、知识库系列:Spring 知识库(一)(附脑图-持续更新)

13、知识库系列:5万长文Java知识Java3+4(附脑图-持续更新)14、知识库系列:Spring Cloud (附脑图-持续更新)‍‍15、知识库系列:异常、网络和部分设计模式知识库(持续更新)16、

知识库系列:RabbitMQ(持续更新)17、知识库系列:分布式十二问!万字图文详解!(持续更新)‍18、知识库系列:谁能真正替代你? AI编码工具深度对比 (chatGPT/Copilot/Cursor/New Bing)

19、知识库系列:太牛比了!i/o timeout 的全解思路及实战, 希望你不要踩到这个net/http包的坑(持续更新)20、知识库系列:对标大厂的技术派架构设计(持续更新)21、知识库系列:一文看懂零售行业数据分析的五大场景:商品、门店、库存、活动、会员(持续更新)

22、知识库系列:8大好用的数据迁移工具,真的太方便了!(持续更新)23、知识库系列:从实现到原理,聊聊Java中的SPI动态扩展(持续更新)24、如果今年面试难,建议先上岸再说【200多家IT软件外包公司汇总】

25、知识库系列:某大厂的DDD实践,给出落地的示例(持续更新)26、知识库系列:OAuth2.0授权码模式原理与实战(持续更新)27、知识库系列:mysql的varchar字段最大长度真的是65535吗?(持续更新)

28、知识库系列:我用chatGPT造了“模特”(持续更新)‍‍‍‍‍持续更新中......更多精彩,请加入我们哦!

添加小编微信,拉你进群哦

免责声明:有部分内容来自网络,版权归原作者所有,禁止用于商业用途,对转载、分享的内容、陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完善性提供任何明示或暗示的保证,仅供读者学习参考之用,如有侵犯机构、媒体、公司 、企业或个人等的知识产权,请联系删除,本公众平台将不承担任何责任。

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186

知识知识库平台设计(内部知识库平台)万万没想到

2023-11-28Aix XinLe175

知识库平台设计(内部知识库平台)万万没想到知识库系列:阿里内部,也会用的!!!(持续更新)准备面试?工作遇到问题?想要积累知识?快来7TCoding搜一搜。不积跬步,无以至千里不积小流,无以成江海。生活中总有些东西值得分享。…

知识知识库平台推荐(中国电信知识库平台)一看就会

2023-11-28Aix XinLe189

知识库平台推荐(中国电信知识库平台)一看就会从发布《中国电信云网运营自智白皮书2.0》、中国电信昆仑平台,到不久前推出的中国电信云网操作系统昆仑CNOS2.0,作为自智网络产业“先行者”之…

知识知识库平台推荐(内部知识库平台)快来看

2023-11-28Aix XinLe46

知识库平台推荐(内部知识库平台)快来看目前,美康MCDEX合理用药知识库涵盖28个子知识库,拥有百万级别数据量,收载了临床用药所需的各类信息………

历史中国野史天气后报网站历史天气苍南县历史天气查询

2023-11-28Aix XinLe0

中国野史天气后报网站历史天气苍南县历史天气查询  成果贮存罐接受不住,发作不测,14000吨糖蜜倾注而出,好像海啸般摧毁了几个街区中国别史,一些人倒下后被覆盖在糖蜜之海中,冒死挣扎却杯水车薪,糖蜜在高温下垂垂冷却凝固,很多人活生生梗塞而死,成了人形虎魄…

历史假期园地历史八年级历史悬案与未解之谜历史转折中的邓小电视剧免

2023-11-28Aix XinLe0

假期园地历史八年级历史悬案与未解之谜历史转折中的邓小电视剧免费  在1982年假期场地汗青八年级假期场地汗青八年级,赖瑞-沃特斯不断想成为一位专业的飞翔员,可是他的目力缘故原由,这个胡想只能幻灭,有一天他本人做一次难以想象的飞翔,因而买了25个2.4公尺的景象气球汗青悬案与未解之谜,内里装满了氦气,而且它们绑在草坪躺椅上,同时沃特斯还筹办了一支,为了降落而射击气球真实历史故事…