首页 文章 精选 留言 我的

精选列表

搜索[组件化],共10000篇文章
优秀的个人博客,低调大师

SpringCloud微服务(06):Config组件,实现配置统一管理

本文源码:GitHub·点这里 || GitEE·点这里 一、Config简介 在微服务系统中,服务较多,相同的配置:如数据库信息、缓存、参数等,会出现在不同的服务上,如果一个配置发生变化,需要修改很多的服务配置。spring cloud提供配置中心,来解决这个场景问题。 系统中的通用配置存储在相同的地址:GitHub,Gitee,本地配置服务等,然后配置中心读取配置以restful发布出来,其它服务可以调用接口获取配置信息。 二、配置服务端 1、项目结构 核心注解:@EnableConfigServer 2、核心依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> 3、核心配置文件 这里注意读取文件的配置 active :native,读取本地配置; active :git,读网络仓库配置; server: port: 9001 spring: application: name: config-server-9001 profiles: # 读取本地 # active: native # 读取Git active: git cloud: config: server: native: search-locations: classpath:/config git: # 读取的仓库地址 uri: https://gitee.com/cicadasmile/spring-cloud-config.git # 读取仓库指定文件夹下 search-paths: /cloudbaseconfig # 非公开需要的登录账号 username: password: label: master 4、读取配置内容 不同的环境读取的结果不同。 info: date: 20190814 author: cicada sign: develop version: V1.0 三、配置客户端 1、核心依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> 2、核心配置文件 在上面的配置中心,配置读取Git资源,所以这里的配置也就是读取Git资源。 server: port: 8001 spring: application: name: config-client-8001 profiles: active: dev cloud: config: # 读取本地配置 --------------------------- #uri: http://localhost:9001 ## 读取策略:快速失败 #fail-fast: true ## 读取的文件名:无后缀 #name: client-8001 ## 读取的配置环境 #profile: dev # client-8001-dev.yml # ---------------------------------------- # github上的资源名称 ----------------------- name: client-8001 # 读取的配置环境 profile: dev label: master # 本微服务启动后,通过配置中心6001服务,获取GitHub的配置文件 uri: http://localhost:9001 # ---------------------------------------- 3、测试接口 @RestController public class ClientController { @Value("${info.date}") private String date ; @Value("${info.author}") private String author ; @Value("${info.sign}") private String sign ; @Value("${info.version}") private String version ; /** * 获取配置信息 */ @RequestMapping("/getConfigInfo") public String getConfigInfo (){ return date+"-"+author+"-"+sign+"-"+version ; } } 四、基于Eureka配置 上面的模式,通过服务中心,直接获取配置。下面把注册中心Eureka加进来。 1、项目结构 启动顺序也是如下: node06-eureka-7001 config-server-9001 config-client-8001 2、修改配置项 将config-server-9001添加到注册中心; 配置config-client-8001读取注册中心; 完成后Eureka注册中心效果图,启动顺序如下: 3、修改客户端配置 通过注册中心获取服务,避免使用URI地址。 经过测试后,正确无误。 提醒:国内如果读取git的配置,可能经常出去无法加载的问题,该案例使用的是Gitee的地址。 五、源代码地址 GitHub地址:知了一笑 https://github.com/cicadasmile/spring-cloud-base 码云地址:知了一笑 https://gitee.com/cicadasmile/spring-cloud-base

优秀的个人博客,低调大师

SpringCloud微服务(02):Ribbon和Feign组件,服务调用和负载均衡

本文源码:GitHub·点这里 || GitEE·点这里 一、Ribbon简介 1、基本概念 Ribbon是一个客户端的负载均衡(Load Balancer,简称LB)器,它提供对大量的HTTP和TCP客户端的访问控制。 2、负载均衡简介 目前主流的负载均衡方案可分成两类: 1)集中式 即在服务的消费方和提供方之间使用独立的LB设施,可以是硬件,如F5,也可以是软件,如nginx,由该设施负责把访问请求通过某种策略转发至服务的提供方; 2)进程内 将LB逻辑集成到消费方,消费方从服务注册中心获取可用服务列表,然后根据指定负载均衡策略选择合适的服务器。Ribbon就属于该方式。 3、Ribbon负载策略 1) RoundRobinRule 轮询 轮询服务列表List<Server>的index,选择index对应位置的服务。 2) RandomRule 随机 随机服务列表List<Server>的index,选择index对应位置的服务。 3) RetryRule 重试 指定时间内,重试(请求)某个服务不成功达到指定次数,则不再请求该服务。 二、Feign简介 1、基本概念 Feign 是一个声明式的 Web Service 客户端。它的出现使开发 Web Service 客户端变得很简单。使用 Feign 只需要创建一个接口加上对应的注解,比如:@FeignClient 接口类注解。 2、执行流程 1) 主程序入口添加 @EnableFeignClients 注解开启对 FeignClient 接口扫描加载。接口使用@FeignClient注解。 2) 调用Feign 接口中的方法被时,通过JDK的代理的方式,生成具体的 RequestTemplate。 3) RequestTemplate 生成 Request请求,结合Ribbon实现服务调用负载均衡策略。 三、综合使用案例 1、项目结构图 1)、模块描述 Eureka注册中心 node02-eureka-7001 两个服务提供方 node02-provider-6001 node02-provider-6002 Ribbon服务调用 node02-consume-8001 Feign服务调用 node02-consume-8002 2)、依赖Eureka知识 上篇文章Eureka使用详解。 2、Ribbon服务调用 代码所属模块:node02-consume-8001 1)、核心依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-ribbon</artifactId> </dependency> 2)、配置文件 @Configuration public class LoadConfig { @Bean @LoadBalanced public RestTemplate getRestTemplate (){ return new RestTemplate() ; } @Bean public IRule getIRule (){ // 默认轮询算法 // return new RoundRobinRule() ; // 重试算法:默认情况,访问某个服务连续三次失败,就不会再访问 // return new RetryRule() ; // 随机算法 return new RandomRule() ; } } 3)、调用方式 @RestController public class ConsumeController { @Autowired private RestTemplate restTemplate ; String server_name = "http://NODE02-PROVIDER" ; // http://localhost:8001/showInfo @RequestMapping("/showInfo") public String showInfo (){ return restTemplate.getForObject(server_name+"/getInfo",String.class) ; } } 这里的NODE02-PROVIDER就是服务提供方的配置文件。两个服务提供方的这块配置相同,Ribbon正基于此,实现多个服务调用的负载均衡。 spring: application: name: node02-provider 4)、提供方接口 @RequestMapping("/getInfo") public String getInfo (){ LOG.info("provider-6002"); return "success" ; } 3、Feign服务调用 代码所属模块:node02-consume-8002 1)、核心依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-feign</artifactId> </dependency> 2)、配置文件 @FeignClient(value = "NODE02-PROVIDER") public interface GetAuthorService { @RequestMapping(value = "/getAuthorInfo/{authorId}",method = RequestMethod.GET) String getAuthorInfo (@PathVariable("authorId") String authorId) ; } 3)、调用方式 @RestController public class ConsumeController { @Resource private GetAuthorService getAuthorService ; @RequestMapping(value = "/getAuthorInfo") public String getAuthorInfo () { return getAuthorService.getAuthorInfo("1") ; } } 4)、启动类注解 // 因为包名路径不同,需要加basePackages属性 @EnableFeignClients(basePackages={"cloud.block.code.service"}) 5)、提供方接口 @RequestMapping(value = "/getAuthorInfo/{authorId}",method = RequestMethod.GET) public String getAuthorInfo (@PathVariable("authorId") String authorId) { LOG.info("provider-6002"); return "知了一笑"+authorId ; } 四、源代码地址 GitHub·地址 https://github.com/cicadasmile/spring-cloud-base GitEE·地址 https://gitee.com/cicadasmile/spring-cloud-base

优秀的个人博客,低调大师

Hadoop各服务组件如何配置在指定服务器运行

HDFS指定服务器运行 修改$hadoop/etc/hadoop/core-site.xml 指定namenode配置服务器 指定datanode配置服务器 修改slaves文件 image.png secondarynamenode配置服务器 SecondaryNameNode:是由哪个文件中的哪个配置属性指定的呢? hdfs-site.xml文件中; <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop-senior.ibeifeng.com:50090</value> </property> yarn指定服务器运行 停止dfs服务 报错原因是没有配置hadoop-env.sh中的环境变量。 image.png 停止yarn服务 image.png 停止mapreduces的jobhistory image.png image.png 执行命令 sbin/mr-jobhistory-daemon.sh stop historyserver image.png 启动所有服务 由于我们是伪分布式,所有的服务阶段在同一台服务器上。所以可以使用start-all.sh命令 启动历史MapReduce服务

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册