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

网站推广软件免费版下载全渠道营销成功案例

网站推广软件免费版下载,全渠道营销成功案例,千锋教育培训机构怎么样,微博网站开发Eureka 服务注册与发现服务注册与发现Eureka与Zookeeper的比较ZooKeeper保证CPEureka保证APEureka是什么#xff1f;Eureka原理SpringBoot、Spring Cloud 和 Eureka 版本选择Eureka单机搭建搭建Eureka服务端搭建Eureka客户端的服务提供者搭建Eureka客户端的服务消费者Eureka集… Eureka 服务注册与发现服务注册与发现Eureka与Zookeeper的比较ZooKeeper保证CPEureka保证APEureka是什么Eureka原理SpringBoot、Spring Cloud 和 Eureka 版本选择Eureka单机搭建搭建Eureka服务端搭建Eureka客户端的服务提供者搭建Eureka客户端的服务消费者Eureka集群搭建eureka 的一些其他配置服务注册与发现 在微服务架构中服务注册与发现是核心组件之一。Spring Cloud提供了多种服务注册于发现的实现方式例如Eureka、Consul、Zookeeper。 服务注册将服务所在主机、端口、版本号、通信协议等信息登记到注册中心上 服务发现服务消费者向注册中心请求已经登记的服务列表然后得到某个服务的主机、端口号、版本号、通信协议等信息从而实现对具体服务的调用。 Eureka与Zookeeper的比较 著名的CAP理论指出一个分布式系统不可能同时满足C一致性、A可用性、P分区容错性。 由于分区容错性在分布式系统中是必须要保证的因此我们只能在A和C之间进行权衡ZooKeeper保证的是CPEureka保证的是AP。 ZooKeeper保证CP 在ZooKeeper中当master节点因为网络故障与其他节点失去联系时剩余的节点会重新进行leader选举但问题在于选举leader需要一定的时间且选举期间ZooKeeper集群都是不可用的这就导致在选举期间注册服务瘫痪。在云部署的环境下因为网络问题使得ZooKeeper集群失去master节点是大概率事件虽然服务最终能够恢复但是在选举期间内导致服务注册长期不可用是难以容忍的。 Eureka保证AP Eureka优先保证可用性Eureka各个节点是平等的某几个节点挂掉不会影响正常节点的工作剩余的节点依然可以提供注册和查询服务。而Eureka的客户端在向某个Eureka注册时如果发现连接失败则会自动切换至其他节点只要有一台Eureka还在就能保证注册服务可用保证可用性只不过查到的信息可能不是最新的不保证强一致性。 所以Eureka在网络故障导致部分节点失去联系的情况下只要有一个节点可用那么注册和查询服务就可以正常使用而不会像zookeeper那样使得整个注册服务瘫痪Eureka优先保证了可用性。 Eureka是什么 Eureka是一个服务治理组件它主要包括服务注册与发现主要用来搭建服务注册中心。Eureka是一个基于REST的服务用来定位服务进行中间层服务的负载均衡和故障转移Eureka是Netflix公司开发的Spring Cloud封装了Netflix公司开发的Eureka模块来实现服务注册与发现也就是说Spring Cloud对Netflix Eureka进行了二次封装 Eureka原理 Eureka采用了C-S客户端/服务端的设计架构也就是Eureka由两个组件组成Eureka客户端和Eureka服务端。 Eureka Server作为服务注册的服务端他是服务注册中心系统中其他的微服务使用Eureka的客户端连接到Eureka 服务端并维持心跳连接。这样在EurekaServer中的服务注册列表就可以看到所有可用服务的信息。Eureka Client一个Java客户端用来简化与服务器的交互、负载均衡服务的故障切换等。客户端同时也内置一个使用轮询负载均衡的负载均衡算法器在启动应用后向Eureka Server发送心跳默认周期是30s。如果Eureka在多个心跳周期内没有接收到某个节点的心跳就会将其从服务注册表中移除默认周期是90s。 三大角色 Eureka Server提供服务的注册与发现Eureka Client - Service Provider将自身的服务注册到Eureka Server中从而使消费者能够找到。Eureka Clinet - Service Consumer服务消费方从Eureka Server中获取服务注册列表从而找到消费服务。 SpringBoot、Spring Cloud 和 Eureka 版本选择 方式一手动添加依赖 在官网https://start.spring.io/actuator/info可以看到spring boot和spring cloud的版本对映关系 比如我使用的Spring Boot的版本是2.4.2那么对应的Spring Cloud的版本是2020.0.0 在maven官网可以看到Spring Cloud 2020.0.0对应的Eureka版本 https://mvnrepository.com 方式二Idea自动添加依赖推荐 在项目构建中添加模块Model选择Spring 先在下拉框选择Spring Boot的版本然后在Web中选择Spring Web在Spring Cloud Discovery中选择Eureka的Client或者Server。 这样Idea会为我们自己找到和Spring Boot版本对应的Spring Cloud和Eureka版本。 Eureka单机搭建 搭建Eureka服务端 1、添加Spring Boot、Spring Cloud、Eureka Server的相关依赖 ?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 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.4.2/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.ex/groupIdartifactIdeurekaCluster-server-7001/artifactIdversion0.0.1-SNAPSHOT/versionnameeurekaCluster-server-7001/namedescriptionDemo project for Spring Boot/descriptionpropertiesjava.version1.8/java.versionspring-cloud.version2020.0.0/spring-cloud.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-server/artifactId/dependency/dependenciesdependencyManagementdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring-cloud.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagement /project2、配置文件进行配置 # 端口 server.port7001 # 应用名称会在Eureka中显示 spring.application.nameeurekaserver-7001 # 注册中心的hostname eureka.instance.hostnameeureka7002 eureka.instance.non-secure-port${server.port} # 是否注册自己的信息到EurekaServer默认是true eureka.client.register-with-eurekafalse # 是否拉取其它服务的信息默认是true eureka.client.fetch-registryfalse # EurekaServer的地址现在是自己的地址如果是集群需要加上其它Server的地址。 eureka.client.service-url.defaultZonehttp://localhost:7001/eureka3、主入口添加注解 EnableEurekaServer启用eureka server 4、启动eureka服务端浏览器访问 http://localhost:7001可以看到看到Eureka Server 监控页面。目前红框为空之后服务注册进来会看到类似下面的内容 搭建Eureka客户端的服务提供者 1、添加Spring Boot、Spring Cloud、Eureka Client的相关依赖 ?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 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.4.2/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.ex/groupIdartifactIdeureka-client-provider-8001/artifactIdversion0.0.1-SNAPSHOT/versionnameeureka-client-provider-8001/namedescriptionDemo project for Spring Boot/descriptionpropertiesjava.version1.8/java.versionspring-cloud.version2020.0.0/spring-cloud.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-client/artifactId/dependency/dependenciesdependencyManagementdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring-cloud.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagement /project2、配置文件中进行相关配置 server.port8001#指定该服务的名字该名称将在服务被调用时使用 spring.application.nameeureka-client-provider#Eureka配置服务注册到哪里 eureka.client.service-url.defaultZonehttp://localhost:7001/eureka3、主入口添加注解 EnableEurekaClient启用eureka client 4、添加controller类配合使用RestController注解Eureka是基于REST的 //作为服务提供者要是用 RestController 返回json数据 RestController public class DeptController {GetMapping(/test)public String testSpringCloud(){return Eureka Client 服务提供者;} }5、启动客户端服务提供者 搭建Eureka客户端的服务消费者 1、添加Spring Boot、Spring Cloud、Eureka Client的相关依赖同上 2、配置文件中进行配置 server.port80#指定该服务的名字该名称将在服务被调用时使用 spring.application.nameeureka-client-consumer#Eureka配置服务注册到哪里 eureka.client.service-url.defaultZonehttp://localhost:7001/eureka3、主入口添加注解 EnableEurekaClient启用eureka client 4、创建一个controller来访问服务提供者的服务 /*** 作为服务消费者可以返回任何形式的数据这里使用RestController只是为了测试方便返回json数据*/ RestController public class TestController {/*** RestTemplate 是一个基于Http协议的工具对象* 我们可以利用这个对象以http协议发送请求到指定的web服务器中* 在springcloud中可以利用这个对象来访问服务提供者* 这个对象可以new 也可以交给spring来创建建议交给spring创建-1.配置config 2.Resource注入对象*/GetMapping(/test)public String test() {RestTemplate restTemplate new RestTemplate();/*** getForEntity 方法是一个get方法提交请求访问web服务器中的某个请求* 对应着另一个工程中的GetMapping或者RequestMapping* 参数1需要访问的具体请求路径 参数2本次请求服务器返回的数据类型 参数3可变长度的Object类型数据表示本次请求中的url参数数据* 注意由于SpringCloud返回的数据类型全部是Rest风格数据全是String类型的json数据格式可以根据具体的数据格式来指定返回类型交给spring完成封装。* 返回值ResponseEntity对象封装着本次请求后的响应体可以从该对象中获得本次请求的状态码、头文件信息、响应数据*/// 直接通过http访问//ResponseEntityString result restTemplate.getForEntity(http://localhost:8001/test, String.class);// 通过注册中心发现服务并访问服务EUREKA-CLIENT-PROVIDER就是服务的名称不区分大小写ResponseEntityString result restTemplate.getForEntity(http://EUREKA-CLIENT-PROVIDER/test, String.class);System.out.println(result.getStatusCode()); //200 OKSystem.out.println(result.getHeaders()); //[Content-Type:text/plain;charsetUTF-8, Content-Length:17, Date:Thu, 21 Jan 2021 07:03:03 GMT, Keep-Alive:timeout60, Connection:keep-alive]String body result.getBody();return hello, Eureka Client 服务消费---- body;} }5、启动服务消费者 6、访问 http://localhost:80/test 可以看到网页输出 hello, Eureka Client 服务消费----Eureka Client 服务提供者 Eureka集群搭建 1、项目结构1个消费者、2个服务提供者、3个注册中心 2、修改本机host文件 3、修改配置文件 Eureka Server # 指定服务注册中心的位置 eureka.client.service-url.defaultZonehttp://eureka7001:7001/eureka,http://eureka7002:7002/eureka,http://eureka7003:7003/eurekaEureka Client服务提供者和消费者 #Eureka配置服务注册到哪里 #同时指定多个注册地址springcloud底层算法会选择将数据注册到某一个注册中心 eureka.client.service-url.defaultZonehttp://eureka7001:7001/eureka,http://eureka7002:7002/eureka,http://eureka7003:7003/eureka4、启动项目先启动Eureka Server集群再启动Eureka Client。 5、在浏览器访问 http://eureka7001:7001、http://eureka7002:7002、http://eureka7003:7003 eureka 的一些其他配置 # 自我保护模式关闭以后当服务不能正常向注册中心提交心跳信息时,在指定的时间点以后注册中心就会将这个服务移除掉开启以后当服务不能正常提交自己的心跳也不会将服务移除默认是true eureka.server.enable-self-preservationfalse # 每隔2s向服务端发送一次心跳证明自己还活着默认30s eureka.instance.lease-renewal-interval-in-seconds2 # 告诉服务端如果我10s之内没有给你发送心跳代表我故障了把我移除 eureka.instance.lease-expiration-duration-in-seconds10
http://www.pierceye.com/news/305840/

相关文章:

  • 网站建设设计模板磁力链最佳的搜索引擎
  • 单位外部网站建设价格哪些网站可以做视频直播
  • 广州黄埔网站建设公司国外做调灵风暴的网站
  • 珠海附近交友平台软件广州网站优化推广方案
  • cgi做网站如何将网站加入百度图 推广
  • 小贷做网站深圳手机app软件开发
  • 上海平台网站建设费用页面模板不存在怎么办
  • 西安网站排名公司上海工商网查询官网
  • 网站建设协调机制建网站 可以看到访客吗
  • 学生做网站的工作室南和住房和城乡建设局网站
  • 潍坊网站制作案例广东十大网站建设排名
  • 网站建设市场调研框架网站建设流程步骤怎么样
  • 喜茶品牌策划全案案例seo技术
  • 简速做网站中国企业网站建设案例
  • 做网站不给源码莱州网站建设包年多少钱
  • 好玩有趣的网站贵州省城乡建设厅网站材料价
  • 投资公司网站设计上海自动seo
  • 网络营销导向网站建设的基础是什么创新驱动发展战略的内容
  • 银狐鑫诺科技 网站建设深圳画册设计价格
  • 邵阳网站建设推广优化游戏性能的软件
  • wp做网站难吗销售产品单页面网站模板
  • 网站子域名 更换网站开发什么方式
  • 学做面食最好的网站设计公司logo大全
  • wordpress建站入门手机网站跳转怎么办
  • 好网站开发培训wordpress是否免费
  • 建设国际互联网网站网站建设制作流程
  • 开发一个网站做爬虫手机网站建设视频
  • 网站搜索功能模块公众号开发菜单
  • 公司想做个自己的网站怎么做网络营销与管理专业
  • 网站设计中国内优秀企业网站欣赏深圳商城网站设计公司