当前位置: 首页 > news >正文

宁波市网站建设_网站建设公司_字体设计_seo优化

麻章手机网站建设,毕节金海湖新区城乡建设局网站,专业设计笔记本电脑,网页设计与网站建设习题答案Nacos简单介绍 Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集#xff0c;帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos是构建以“服务”为中心的现代应用架构 (例…Nacos简单介绍 Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。 接下来主要介绍Nacos作为注册中心的使用和注册部分的源码解析。 Nacos安装 Nacos预装环境 Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos还需要为此配置 Maven环境这里就不介绍Maven和Java安装大家自行安装一下。 安装的方式主要有两种: 从GitHub上下载源码安装: //下载源码的地址 git clone https://github.com/alibaba/nacos.git cd nacos/ //编译源码 mvn -Prelease-nacos -Dmaven.test.skiptrue clean install -U ls -al distribution/target/ //进入编译包 cd distribution/target/nacos-server-$version/nacos/bin 2.下载安装包的形式: tar -xvf nacos-server-$version.tar.gz cd nacos/bin 启动服务器 启动命令(standalone代表着单机模式运行非集群模式): sh startup.sh -m standalone 关闭服务器 sh shutdown.sh 单机环境下使用Mysql 在0.7版本之前在单机模式时nacos使用嵌入式数据库实现数据的存储不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力具体的操作步骤 安装数据库版本要求5.6.5初始化mysql数据库数据库初始化文件nacos-mysql.sql修改conf/application.properties文件增加支持mysql数据源配置目前只支持mysql添加mysql数据源的url、用户名和密码。 spring.datasource.platformmysql db.num1 db.url.0jdbc:mysql://127.0.0.1:3306/nacos?characterEncodingutf8connectTimeout1000socketTimeout3000autoReconnecttrue db.userroot db.password123456 对于单机来说我们就是玩个demo是够的但是对于生产来说我们就要考虑高可用的方案了: 对于集群部署的方式如果在虚拟机环境就采用Nagix负载3台虚拟机对于K8S的环境通过Service负载3台Pod的形式搭建高可用环境对于数据库选择来说最好采用主从结构保证数据库的高可用。 整体的部署可能如下 下图就是搭建好以后的整体界面: Nacos使用 1.创建一个Spring Boot空应用 2.编辑pom.xml文件 propertiesspringboot.vetsion2.2.11.RELEASE/springboot.vetsionspring-cloud-versionHoxton.SR9/spring-cloud-versionspring-cloud-alibaba-version2.2.3.RELEASE/spring-cloud-alibaba-version/properties dependencyManagementdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion${springboot.vetsion}/versiontypepom/typescopeimport/scope/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring-cloud-version}/versiontypepom/typescopeimport/scope/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion${spring-cloud-alibaba-version}/versiontypepom/typescopeimport/scope/dependency /dependencies /dependencyManagement dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependency /dependencies 3.创建应用的启动项目 SpringBootApplication(scanBasePackages {com.springcloud.study}) EnableDiscoveryClient public class SystemApplication {public static void main(String[] args) {SpringApplication.run(SystemApplication.class, args);} } 4.配置application.yaml文 server:port: 8081 spring:application:name: system# 数据源配置项datasource:url: jdbc:mysql://127.0.0.1:3306/study_user?useSSLfalseuseUnicodetruecharacterEncodingUTF-8driver-class-name: com.mysql.jdbc.Driverusername: rootpassword: 123456#nacos基础配置cloud:nacos:discovery:server-addr: 10.226.73.115:8886#环境选择#namespace: b7d341fc-df29-45ce-b3cd-4415f66b1ee0 5.启动项目 Nacos注册部分源码分析 客户端通过Rest接口式向Nacos Server注册自己的服务提供自身的元数据比如ip地址、端口等信息。 Nacos Server接收到注册请求后就会把这些元数据信息存储在一个双层的内存Map中。对于注册部分的源码整体上分为两部分: 客户端注册源码 按照Spring Boot Starter的习惯我们首先找到spring-cloud-starter-alibaba-nacos-discovery启动项,如下图所示: 标红部分的NacosServiceRegistryAutoConfiguration是我们注册部分关注的类首先我们看下该类的整体的继承结构:   重点关注AbstractAutoServiceRegistration接口NacosAutoServiceRegistration该Bean的注入就是我们注入开始的:   整体看下该类基本上是对AbstractAutoServiceRegistration继承和实现该类位于spring-cloud-common这个jar下面Spring Cloud Commons模块是为了对微服务中的服务注册与发现、负载均衡、熔断器等功能提供一个抽象层代码这个抽象层与具体的实现无关。这样这些功能具体的实现上可以采用不同的技术去实现并可以做到在使用时灵活的更换。 NacosAutoServiceRegistration内部存在一个EventListener注解EventListener是一种事件驱动编程在spring4.2的时候开始有的可以理解为ApplicationListener接口的扩展方便我们使用可以理解为Spring为我们提供的一个事件监听、订阅的实现内部实现原理是观察者设计模式为的就是业务系统逻辑的解耦,提高可扩展性以及可维护性。事件发布者并不需要考虑谁去监听监听具体的实现内容是什么发布者的工作只是为了发布事件而已。   接下来我们重点看下AbstractAutoServiceRegistration内部start方法   register的具体的实现类是NacosServiceRegistry内部调用NacosNamingService的registerInstance方法该方法内部通过调用NamingProxy的reqApi,通过NacosRestTemplate请求服务端的/instance方法注册到服务端。   至此完成了客户端注册到服务端下图是整体的时序图: 服务端注册部分 服务端注册相对比较复杂一点这块需要将Nacos源码下载一下找到naming模块,InstanceController就是我们调用服务端的接口如下图所示: 接下来重点看下ServiceManager的registerInstance的方法如下图:   首先看下createEmptyService方法该方法目的双肩一个双层的Map对象用于存储注册应用的信息整体的结构Map(namespace, Map(group::serviceName, Service))这里正好对应注册中心介绍时候的张图我们整体在看一下:   初始化的注册表结构以后接下来就是将应用的信息注册添加到注册表中主要分为两步如下图:   addIpAddresses就是获取当前注册服务的所有ip,整体的流程如下图:   这里的主要的重点是put方法这里我们全部按照CP的场景去解释AP的场景在未来的章节补充CP的实现类是DistroConsistencyServiceImpl如下图:   通过把需要注册到注册表的服务添加到阻塞队列当中Notifier本质上一个线程然后通过执行run内部的hander方法如下图:   通过调用Service的onChange方法来变更注册表的信息内部主要通过updateIPs完成注册表信息的表更主要也是采用CopyOnWrite的思想如下图:   到此服务端的注入就完成了这个里面整体上有三处亮点: 1.CopyOnWrite的思想的广泛应用; 2.通过阻塞队列实现异步任务提升系统性能并且解决并发写入问题 3.观察者设计的广泛应用
http://www.ihoyoo.com/news/5989.html

相关文章:

  • 广州网站建设天维国内免费ip地址
  • 3g免费网站怎么在文档中做网站一点就开
  • 长春城投建设投资有限公司网站做网站需要啥
  • 赣州网站建设资讯百度广告投放电话
  • 网站建设历程重庆网站seo按天计费
  • 綦江网站建设关于配色的网站
  • 涉县移动网站建设报价杭州平面设计公司排行
  • 做京东网站需要哪些手续费一般做网站带宽选择多大的
  • 制作个人业务网站设计家网站
  • 广东 品牌网站建设提升学历报考什么专业比较好
  • 秦皇岛网站排名公司信息网招聘
  • 上海市建设工程安全生产协会网站做影视网站引流
  • 做自己的网站服务器多少钱河北省住建厅电子证书查询
  • 小企业网站建设的大品牌国外旅游网站排名
  • 怎么向搜索引擎提交网站北京公司网站制作
  • 织梦网站首页目录在哪里微信分销网站建设
  • 摄影网站开发的背景怎样申请一个网站
  • 深圳市网站建设公司公司自己做网站推广
  • 中小型教育网站的开发与建设新农村网站建设
  • 如何与知名网站做友情链接网络服务者不履行法律
  • 小说网站开发的目的千岛湖建设集团办公网站
  • 双流建设局网站四川建设工程网上合同备案网站
  • cms网站网络地址图片东莞建外贸网站好
  • wordpress实例站网页版qq网址
  • 永州企业网站建设网站首页一般做多大尺寸
  • 网站制作软件wordpress 移动端模板下载地址
  • 专业的上海网站建设网站 备案 中国 名字吗
  • 免费建站网页无需登陆网络网站推广选择乐云seo
  • app网站建设思路百度百科查询
  • 上海高端网站搭建网站建设 意向协议书