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

桂林市网站建设_网站建设公司_色彩搭配_seo优化

免费商城系统网站建设,wordpress主题lovephoto,深圳优定软件网站建设,百度官方app下载微服务间消息传递 微服务是一种软件开发架构#xff0c;它将一个大型应用程序拆分为一系列小型、独立的服务。每个服务都可以独立开发、部署和扩展#xff0c;并通过轻量级的通信机制进行交互。 应用开发 common模块中包含服务提供者和服务消费者共享的内容 provider模块是…微服务间消息传递 微服务是一种软件开发架构它将一个大型应用程序拆分为一系列小型、独立的服务。每个服务都可以独立开发、部署和扩展并通过轻量级的通信机制进行交互。 应用开发 common模块中包含服务提供者和服务消费者共享的内容 provider模块是服务的提供者用于通过SpringMVC的控制器提供访问接口 服务提供者 RestController RequestMapping(/users) public class HelloController {GetMapping(/hello)public String sayHello(RequestParam String username) {if (username null || username.trim().length() 1)username MicroService;return Provider: hello username !;} }服务消费者 服务消费者通过http协议访问服务提供者可以使用JDK的URL或者使用HttpClient之类的工具但是直接使用工具比较繁琐所以使用SpringBoot提供的RestTemplate进行访问 在主类或者当前应用的配置类上声明RestTemplate SpringBootApplication public class ConsumerApplication {public static void main(String[] args) {SpringApplication.run(ConsumerApplication.class, args);}Beanpublic RestTemplate restTemplate() {return new RestTemplate();} }核心配置主要修改一下访问端口号因为应用的默认端口都是8080会有端口号冲突的问题 server.port7081定义控制器实现访问服务提供者 RestController RequestMapping(/consumer) public class ConsumerController {Autowiredprivate RestTemplate restTemplate;GetMapping(/{name})public String test(PathVariable String name){ //RestTemplate针对RESTful中的get/post/delete/put分别提供了对应的方法String res restTemplate.getForObject(http://localhost:7080/users/hello?username name, String.class);return res;} }测试验证 面试题 http协议的访问流程在浏览器中输入一个URL地址都发生了什么事情 http协议的不同版本的区别与https的区别 http协议中get和post之间的区别 Nacos服务治理 Nacos即Naming and Configuration Service是一个用于动态服务发现、配置管理和服务元数据的开源平台。 Nacos的主要功能包括 服务注册和发现Nacos允许服务实例向注册中心注册自己的信息并且其他服务可以通过查询注册中心来发现可用的服务实例 配置管理Nacos提供了一个中心化的配置管理平台可以动态地管理应用程序的配置信息。开发人员可以在运行时更新配置而不需要重启应用程序 服务元数据管理Nacos可以帮助开发人员管理服务的元数据包括版本号、权重、健康状态等。这些元数据可以用于服务路由、负载均衡等场景 动态DNS服务Nacos支持将服务名称解析为具体的网络地址从而实现动态DNS服务的功能 应用开发步骤 服务提供者 需要添加额外的依赖也就是Nacos的客户端 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId /dependency dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacosdiscovery/artifactId /dependency添加配置application.properties # 配置当前应用名称默认情况下向nacos注册的服务名称就是这个名称 spring.application.nameservice-provider # Nacos 服务发现与注册配置其中子属性 server-addr 指定 Nacos 服务器主机和端口 spring.cloud.nacos.discovery.server-addrlocalhost:8848 # 注册到 nacos 的指定 namespace默认为 public spring.cloud.nacos.discovery.namespacepublic # 应用服务 WEB 访问端口 server.port6080添加JavaConfig配置或者在主类上添加注解以启用Nacos客户端 EnableDiscoveryClient Configuration public class NacosDiscoveryConfiguration { }定义服务提供者接口 RestController RequestMapping(/users) public class HelloController {GetMapping(/hello)public String sayHello(RequestParam String username) {if (username null || username.trim().length() 1)username MicroService;return Provider: hello username !;} }服务消费者 依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId /dependency dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacosdiscovery/artifactId /dependency添加核心配置application.properties server.port6081 spring.application.nameservice-consumer # Nacos 服务发现与注册配置其中子属性 server-addr 指定 Nacos 服务器主机和端口 spring.cloud.nacos.discovery.server-addrlocalhost:8848 # 注册到 nacos 的指定 namespace默认为 public spring.cloud.nacos.discovery.namespacepublic添加配置类或者在主类上添加注解启用Nacos客户端 EnableDiscoveryClient SpringBootApplication public class Consumer1Application {public static void main(String[] args) {SpringApplication.run(Consumer1Application.class, args);}Beanpublic RestTemplate restTemplate() {return new RestTemplate();} }定义服务消费者 RestController RequestMapping(/consumer) public class ConsumerController{ Autowiredprivate RestTemplate restTemplate;Autowiredprivate DiscoveryClient discoveryClient;GetMapping(/{name})public String test(PathVariable String name){ //服务的名称对应的是服务提供者的application.properties中的配置spring.application.nameservice-providerListServiceInstance instances discoveryClient.getInstances(service-provider); //因为一个服务可以运行在多个节点上或者使用多个进程 //自定义负载均衡策略实现从多个服务提供者实例中选择一个Random rnew Random();ServiceInstance instance instances.get(r.nextInt(instances.size()));String res restTemplate.getForObject(instance.getUri()/users/hello?username name, String.class);return res;} }验证测试 首先启动nacos中间件 startup -m standalone 对应的管理控制台为http://localhost:8848/nacos 启动服务提供者。在Nacos的webUI中就可以看到服务提供者的注册信息 使用该管理控制台可以针对服务提供者的详细信息进行查看例如节点情况 启动服务消费者 引入负载均衡 在消费方引入负载均衡机制同时简化获取服务提供者信息的流程 Spring Cloud引入组件LoadBalance实现负载均衡 添加依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId /dependency dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacosdiscovery/artifactId /dependency dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-loadbalancer/artifactId /dependencyproperties配置 spring.application.nameservice-consumer # Nacos 服务发现与注册配置其中子属性 server-addr 指定 Nacos 服务器主机和端口 spring.cloud.nacos.discovery.server-addrlocalhost:8848 # 注册到 nacos 的指定 namespace默认为 public spring.cloud.nacos.discovery.namespacepublic server.port6082主类上添加对应的注解 EnableDiscoveryClient SpringBootApplication public class Consumer2Application {public static void main(String[] args) {SpringApplication.run(Consumer2Application.class, args);}LoadBalancedBeanpublic RestTemplate restTemplate() {return new RestTemplate();} }定义对应的控制器需要访问服务提供者 RestController RequestMapping(/consumer) public class ConsumerController {Autowiredprivate RestTemplate restTemplate;GetMapping(/{name})public String test(PathVariable String name){ //使用LB后具体的URL地址中使用服务提供者的名称来替代原始的主机名和端口号String res restTemplate.getForObject(http://serviceprovider/users/hello?username name, String.class);return res;} }验证测试 缓存配置 使用LB从Nacos获取服务的注册信息可以在本地进行缓存。添加配置即可 spring.cloud.loadbalancer.cache.enabledtrue 启用本地缓存可以根据实际情况权衡 spring.cloud.loadbalancer.cache.capacity1000 设置缓存空间大小 spring.cloud.loadbalancer.cache.ttl20 缓存的存活时间单位为s订阅更新 缓存有可能和远程的注册信息不一致所以引入长连接的订阅实现Nacos的主动通知更改 spring.cloud.nacos.discovery.watch.enabledtrue
http://www.ihoyoo.com/news/30234.html

相关文章:

  • 网站标题关键优化wordpress文本编辑增强
  • wordpress 仿站步骤掀浪云网站建设
  • 网站建设 技术团队介绍clouder认证考试网站建设
  • 网站建设用语胶州企业网站设计
  • 安徽省水利厅网站 基本建设wordpress创建企业网站
  • dedecms做模板网站网络营销方式有哪些免费
  • 做app_需要先做网站吗wordpress 文章发布 编辑器
  • 泉州专业网站营销在线教育类网站模板
  • 怎样建设自己的视频网站首页设计师网站导航
  • 泉州app网站开发价格低网站后台视频教程
  • 建设一个网站首先需要什么条件某些网页打不开是什么原因
  • 如何推广网站方法企业邮箱系统
  • ui设计师做网站最权威的排行榜网站
  • 如何做好集团网站建设绍兴网站制作公司
  • 制作网站的基本工作流程上海网站设
  • 东莞倣网站微信公众号怎么开通免费
  • 揭阳智能模板建站盐亭县建设局网站
  • 一些网站只能在微信打开怎么做的前端开发培训得多少钱
  • 合作网站账号登录方式手机功能网站案例
  • 网站上的图用美图秀秀做可以吗深圳东道建设集团网站
  • 网站建设为啥每年都要收费项目管理软件有哪些优点
  • 网站防护怎么做免费咨询医生的平台
  • 北京网站建设在哪里天室内装饰装修施工图集
  • 大型网站开发团队的美工需要什么工作经验和教育背景及薪酬做网站一定要注册域名吗
  • 中小企业建网站多少钱网站备案查询姓名
  • 罗湖网站设计东莞做网页公司
  • 淘宝网站建设的主图如何设计情女照片做杯子网站
  • 网站服务器暂时不可用怎么办超酷win8风格企业网站织梦模板
  • phpcms v9 实现网站搜索做网站的教程
  • 网站开发回扣物流公司网站制作模板