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

常德网站制作怎么做自己的网页

常德网站制作,怎么做自己的网页,苏州哪个网站建设最好,wordpress阿里主题版权声明#xff1a;本文为博主原创文章#xff0c;未经博主允许不得转载。 https://blog.csdn.net/u010046908/article/details/85260629 今天我们要学习的是consul在soringcloud中的使用。首先学习consul之前#xff0c;我们应该看看consul的官网#xff0c;对它有一个初… 版权声明本文为博主原创文章未经博主允许不得转载。 https://blog.csdn.net/u010046908/article/details/85260629 今天我们要学习的是consul在soringcloud中的使用。首先学习consul之前我们应该看看consul的官网对它有一个初步的认识。 1. consul 官网 https://www.consul.io 2. consul 简介 consul是google开源的一个使用go语言开发的服务发现、配置管理中心服务。内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案不再需要依赖其他工具比如ZooKeeper等。服务部署简单只有一个可运行的二进制的包。每个节点都需要运行agent他有两种运行模式server和client。每个数据中心官方建议需要3或5个server节点以保证数据安全同时保证server-leader的选举能够正确的进行。 3.consul基本概念 clientCLIENT表示consul的client模式就是客户端模式。是consul节点的一种模式这种模式下所有注册到当前节点的服务会被转发到SERVER本身是不持久化这些信息。 serverSERVER表示consul的server模式表明这个consul是个server这种模式下功能和CLIENT都一样唯一不同的是它会把所有的信息持久化的本地这样遇到故障信息是可以被保留的。 server-leader中间那个SERVER下面有LEADER的字眼表明这个SERVER是它们的老大它和其它SERVER不一样的一点是它需要负责同步注册的信息给其它的SERVER同时也要负责各个节点的健康监测。 raftserver节点之间的数据一致性保证一致性协议使用的是raft而zookeeper用的paxosetcd采用的也是taft。 服务发现协议consul采用http和dns协议etcd只支持http 服务注册consul支持两种方式实现服务注册一种是通过consul的服务注册http API由服务自己调用API实现注册另一种方式是通过json个是的配置文件实现注册将需要注册的服务以json格式的配置文件给出。consul官方建议使用第二种方式。 服务发现consul支持两种方式实现服务发现一种是通过http API来查询有哪些服务另外一种是通过consul agent 自带的DNS8600端口域名是以NAME.service.consul的形式给出NAME即在定义的服务配置文件中服务的名称。DNS方式可以通过check的方式检查服务。 服务间的通信协议Consul使用gossip协议管理成员关系、广播消息到整个集群他有两个gossip poolLAN pool和WAN poolLAN pool是同一个数据中心内部通信的WAN pool是多个数据中心通信的LAN pool有多个WAN pool只有一个。 4.consul架构图 5.Consul常用命令 5.1 agent 运行一个consul agent consul agent -dev5.2 join 将agent加入到consul集群 consul join IP5.3 members 列出consul cluster的members consul members5.4 leave 将节点移除所在集群 consul leave6.consul安装和启动 点击“download”下载使用命令启动 consul agent -dev启动成功之后在地址http://localhost:8500 7.consul服务的发现与注册 7.1 注册服务 使用HTTP API 注册个服务使用[接口API](https://www.consul.io/api/agent/service.html API)调用 调用 http://localhost:8500/v1/agent/service/register PUT 注册一个服务。request body: {ID: userServiceId, //服务idName: userService, //服务名Tags: [ //服务的tag自定义可以根据这个tag来区分同一个服务名的服务primary,v1],Address: 127.0.0.1,//服务注册到consul的IP服务发现发现的就是这个IPPort: 9000, //服务注册consul的PORT发现的就是这个PORTEnableTagOverride: false,Check: { //健康检查部分DeregisterCriticalServiceAfter: 90m,HTTP: http://www.baidu.com, //指定健康检查的URL调用后只要返回20Xconsul都认为是健康的Interval: 10s //健康检查间隔时间每隔10s调用一次上面的URL} }使用curl调用 curl http://127.0.0.1:8500/v1/agent/service/register -X PUT -i -H Content-Type:application/json -d {ID: userServiceId, Name: userService,Tags: [primary,v1],Address: 127.0.0.1,Port: 8000,EnableTagOverride: false,Check: {DeregisterCriticalServiceAfter: 90m,HTTP: http://www.baidu.com,Interval: 10s} }结果 % Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed 100 288 0 0 100 288 0 18000 --:--:-- --:--:-- --:--:-- 18000HTTP/1.1 200 OK Vary: Accept-Encoding Date: Wed, 26 Dec 2018 05:11:32 GMT Content-Length: 0 7.2 发现个服务 刚刚注册了名为userService的服务我们现在发现查询下这个服务 curl http://127.0.0.1:8500/v1/catalog/service/userService返回的响应 curl http://127.0.0.1:8500/v1/catalog/service/userService% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed 100 891 100 891 0 0 28741 0 --:--:-- --:--:-- --:--:-- 28741[{ID: 9b831a00-ae68-d575-5e51-df193897b834,Node: vip-PC,Address: 127.0.0.1,Datacenter: dc1,TaggedAddresses: {lan: 127.0.0.1,wan: 127.0.0.1},NodeMeta: {consul-network-segment: },ServiceKind: ,ServiceID: userServiceId,ServiceName: userService,ServiceTags: [primary,v1],ServiceAddress: 127.0.0.1,ServiceWeights: {Passing: 1,Warning: 1},ServiceMeta: {},ServicePort: 8000,ServiceEnableTagOverride: false,ServiceProxyDestination: ,ServiceProxy: {},ServiceConnect: {},CreateIndex: 88,ModifyIndex: 88} ] 基本的服务发现和注册我们已经弄清楚了。接下来我来看看Spring Cloud 整合consul的使用。 8. consul服务提供者 8.1创建一个项目spring-cloud-consul-provider 引入依赖 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.1.1.RELEASE/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.lidong/groupIdartifactIdspring-cloud-consul-producer/artifactIdversion1.0.0/versionnamespring-cloud-consul-producer/namedescriptionDemo project for Spring Boot/descriptionpropertiesjava.version1.8/java.versionspring-cloud.versionGreenwich.RC2/spring-cloud.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-consul-discovery/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependenciesdependencyManagementdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring-cloud.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/buildrepositoriesrepositoryidspring-milestones/idnameSpring Milestones/nameurlhttps://repo.spring.io/milestone/url/repository/repositories/project 对配置文件做一个简单的介绍我们使用的是最新版的springboot2.1.1springcloud.Greenwich.RC2版本。 其中 spring-boot-starter-actuator 健康检查依赖于此包。 spring-cloud-starter-consul-discovery Spring Cloud consul的服务发现支持。8.2 提供者添加配置application.yml server:port: 9001 #提供者的端口 spring:application:name: spring-cloud-consul-producercloud:consul:host: localhostport: 8500discovery:tags: devserviceName: spring-cloud-consul-producer # 注册到consul的服务名称healthCheckPath: /actuator/healthhealthCheckInterval: 15shealthCheckUrl: http://127.0.0.1:9001/actuator/healthregister: trueprefer-ip-address: false consul的地址和端口号默认是127.0.0.1:8500如果没有配置hosts默认的地址localhostconsul服务会占用8500端口 server.port :9001 服务的提供者的端口spring.application.name 是指注册到 consul的服务名称后期客户端会根据这个名称来进行服务调用。 spring.application.cloud.discovery.discovery.host: localhost spring.application.cloud.discovery.discovery. port:8500 8.3 修改启动类 添加 EnableDiscoveryClient 注解开启服务发现支持。 package com.lidong.provider;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;/*** 开启服务发现*/ EnableDiscoveryClient SpringBootApplication public class SpringCloudLidongProviderApplication {public static void main(String[] args) {SpringApplication.run(SpringCloudLidongProviderApplication.class, args);}}8.4新建服务 新建 ConsulProducerController提供 sayHello 接口 返回一个hello—字符串。 package com.lidong.provider.service;import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;/*** 创建服务*/ RestController public class ConsulProducerController {Value(${server.port})private Integer port;/*** 服务接口* param name* return*/RequestMapping(/hello)public String sayHello(RequestParam(name)String name) {return hello --- name port --port;} }启动项目 2018-12-26 13:21:42.984 INFO 20248 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 9001 (http) with context path 2018-12-26 13:21:42.994 INFO 20248 --- [ main] o.s.c.c.s.ConsulServiceRegistry : Registering service with consul: NewService{idspring-cloud-consul-producer-9001, namespring-cloud-consul-producer, tags[dev, securefalse], addressvip-PC, metanull, port9001, enableTagOverridenull, checkCheck{scriptnull, interval15s, ttlnull, httphttp://127.0.0.1:9001/actuator/health, methodnull, header{}, tcpnull, timeoutnull, deregisterCriticalServiceAfternull, tlsSkipVerifynull, statusnull}, checksnull} 2018-12-26 13:21:43.008 INFO 20248 --- [ main] l.p.SpringCloudLidongProviderApplication : Started SpringCloudLidongProviderApplication in 4.09 seconds (JVM running for 4.755) 服务提供者发布成功。 这时候我们在控制台会发现服务列表中有一个名字为spring-cloud-consul-producer的服务 点击详情会发现服务的详细信息 9. Consul服务消费者 9.1创建一个项目spring-cloud-consul-consumer 引入依赖 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.1.1.RELEASE/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.lidong/groupIdartifactIdspring-cloud-consul-consumer/artifactIdversion0.0.1-SNAPSHOT/versionnamespring-cloud-consul-consumer/namedescriptionDemo project for Spring Boot/descriptionpropertiesjava.version1.8/java.versionspring-cloud.versionGreenwich.RC2/spring-cloud.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-consul-discovery/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-ribbon/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId/dependency/dependenciesdependencyManagementdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring-cloud.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/buildrepositoriesrepositoryidspring-milestones/idnameSpring Milestones/nameurlhttps://repo.spring.io/milestone/url/repository/repositories/project 9.2 消费者添加配置application.yml server:port: 9002 #服务消费者的端口 spring:application:name: spring-cloud-consul-consumercloud:consul:host: localhostport: 8500discovery:tags: devregister: false #设置不需要注册到 consul 中healthCheckPath: /actuator/healthhealthCheckInterval: 15shealthCheckUrl: http://127.0.0.1:9002/actuator/healthconsul的地址和端口号默认是 127.0.0.1:8500如果没有配置hosts默认的地址localhostconsul服务会占用8500接口 server.port :9006 服务的消费者的端口 spring.application.cloud.consul.discovery.register: false 9.3配置启动类 package com.lidong.consumer;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.context.annotation.Bean; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.client.RestTemplate; SpringBootApplication EnableDiscoveryClient public class SpringCloudConsulConsumerApplication {Autowiredprivate RestTemplateBuilder builder;LoadBalancedBean// 添加负载均衡支持很简单只需要在RestTemplate上添加LoadBalanced注解那么RestTemplate即具有负载均衡的功能,如果不加LoadBalanced注解的话会报java.net.UnknownHostException:springboot-h2异常此时无法通过注册到Eureka Server上的服务名来调用服务因为RestTemplate是无法从服务名映射到ip:port的映射的功能是由LoadBalancerClient来实现的。public RestTemplate restTemplate() {return builder.build();}public static void main(String[] args) {SpringApplication.run(SpringCloudConsulConsumerApplication.class, args);}} 9.4创建消费服务 package com.lidong.consumer.controller;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.cloud.client.loadbalancer.LoadBalancerClient; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate;/*** 创建服务的消费者*/ RestController public class ConsumerController {private static final String SERVICE_NAME spring-cloud-consul-producer;Autowiredprivate DiscoveryClient discoveryClient;/*** 获取所有服务*/RequestMapping(/services)public Object services() {return discoveryClient.getInstances(SERVICE_NAME);}/*** 消费服务*/RequestMapping(/callSayHello)public String services(RequestParam(name) String name) {ServiceInstance serviceInstance (ServiceInstance) discoveryClient.getInstances(SERVICE_NAME);String callServiceResult new RestTemplate().getForObject(serviceInstance.getUri().toString() /hello, String.class);System.out.println(callServiceResult);return callServiceResult;} }http://localhost:9002/services 获取服务列表的结果 [{instanceId:spring-cloud-consul-producer-9001,serviceId:spring-cloud-consul-producer,host:vip-PC,port:9001,secure:false,metadata:{dev:dev,secure:false},uri:http://vip-PC:9001,scheme:null}]测试请求的urlhttp://localhost:9002/callSayHello?name9002 消费的结果 hello --- 9002 port --9001源码地址https://download.csdn.net/download/u010046908/10877868
http://www.zqtcl.cn/news/129426/

相关文章:

  • 做的网站为什么图片看不了wordpress循环该分类子分类
  • 源码出售网站怎么做一个产品的网络营销方案
  • 安丘营销型网站建设国外教育网站模板
  • 做网站案例百度小说排行榜前十
  • 东昌网站建设公司上传到网站去的文档乱码
  • 如何制作自己的网站链接教程网络营销seo招聘
  • 网站制作资料收集wordpress资源网模板
  • 随州网站设计开发服务做网站制作步骤
  • 东莞凤岗做网站黄山旅游攻略住宿
  • 网站开发常用插件免费库存管理软件哪个好
  • 河池网站开发工程师招聘网如何做品牌运营与推广
  • 做网站运营难吗零基础网站建设教程
  • 深圳蚂蚁网络网站建设wordpress电影主题
  • 网站域名收费吗搜索引擎不收录网站
  • 海兴网站建设价格wordpress替代软件
  • 做网站哪家服务器好小区物业管理系统
  • 上海推广网站公司网站建设首选
  • 网站建设行业分析报告网站建设视频教程
  • 服装网站建设图企业网站建设开题报告是什么
  • 建设外贸商城网站制作网站建设的中期目标
  • 网站定做地方门户网站带手机版
  • 佛山网站建设哪家评价高系统开发报价清单
  • 东莞道滘网站建设做h游戏视频网站
  • 江西营销网站建设公司网站建设 意义
  • 公司网站怎么自己做织梦品牌集团公司网站模板(精)
  • 西安市高陵区建设局网站产品网站做营销推广
  • 网站开发费是无形资产吗深圳网站建设简介
  • 网站开发架构mvc重庆巫山网站设计哪家专业
  • 广州高档网站建设电子商务网站建设的期中考试
  • 九江建设公司网站新网 网站空间