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

创建网站有什么用南京做网站优化的企业

创建网站有什么用,南京做网站优化的企业,淄博网络公司做网站的电话,扬州润扬交通建设集团网站文章目录 基础知识注册中心Eureka注册中心与Ribbon负载均衡1、Eureka注册中心2、Eureka的搭建3、Eureka服务注册4、复制服务实例5、拉取服务6、Ribbon负载均衡的流程及Eureka规则调整#xff1a;7、Ribbon负载均衡饥饿加载 Nacos注册中心1、服务端Nacos安装与启动2、客户端Nac… 文章目录 基础知识注册中心Eureka注册中心与Ribbon负载均衡1、Eureka注册中心2、Eureka的搭建3、Eureka服务注册4、复制服务实例5、拉取服务6、Ribbon负载均衡的流程及Eureka规则调整7、Ribbon负载均衡饥饿加载 Nacos注册中心1、服务端Nacos安装与启动2、客户端Nacos注册3、Nacos分级存储模型4、修改NacosRule负载均衡规则5、Nacos环境隔离6、Nacos注册中心与Eureka注册中心的区别7、Nacos统一配置管理与热更新配置管理配置热更新 8、多环境配置共享9、Nacos集群 基础知识 远程调用 向其他服务器请求信息(远程调用) 先在application或者configuration中注册一个Bean方便之后使用可忽略 Beanpublic RestTemplate restTemplate(){return new RestTemplate();}使用restTemplate方法发送请求 getForObject/postForObject/… User user restTemplate.getForObject(http://localhost:8081/user/order.getUserId(), User.class);注册中心 Eureka注册中心与Ribbon负载均衡 1、Eureka注册中心 上面的url是硬编码写死的很不方便切换所以使用Eurake注册中心来管理服务提供者的地址 Eureka相当于一个中介所所有其他微服务都是它的客户eureka-client 每个微服务启动的时候都会给Eureka注册自己的信息其他微服务从Eureka用名称就能找到对应微服务提供者并远程调用。每个微服务提供者会以30s为间隔和Eureka通报自己的状态即“心跳”以确保它可用使用负载均衡Ribbon从几个实例中挑一个一个微服务在实际工作中可以有多个实例的 2、Eureka的搭建 1、引入服务端依赖 dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-server/artifactId /dependency2、使用EnableEurekaServer自动装配 SpringBootApplication EnableEurekaServer public class EurekaApplication {public static void main(String[] args) throws Exception {SpringApplication.run(EurekaApplication.class, args);} }3、配置文件注册Eureka自己方便之后的Eureka集群 server:port: 10086 spring:application:name: eurekaserver # 服务名称 eureka:client:service-url: # eureka地址信息defaultZone: http://127.0.0.1:10086/eureka3、Eureka服务注册 1、引入客户端依赖 dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-client/artifactId /dependency2、配置文件添加服务名字和Eureka服务的地址 记得给服务添加名字不然没办法去找到这个服务 spring:application:name: userservice # 服务名称eureka:client: service-url: # eureka 的地址defaultZone: http://127.0.0.1:10086/eureka 4、复制服务实例 右键复制 在弹出窗口中VM option输入-Dserver.port11111来选择一个端口就会产生一个新的服务 5、拉取服务 1、给RestTemplate添加负载均衡注解 Bean LoadBalanced // eureka负载均衡 public RestTemplate restTemplate(){return new RestTemplate(); }2、使用RestTemplate对象将地址直接换成服务名称有问题可以保留端口号试一下 // 对比 restTemplate.getForObject(http://localhost:8081/user/order.getUserId(), User.class); User user restTemplate.getForObject(http://userservice/user/order.getUserId(), User.class);这样就可以从eureka直接通过名字拉取服务而不是写死服务地址 6、Ribbon负载均衡的流程及Eureka规则调整 Ribbon是被Spring Boot Cloud内置的它可以帮助开发人员更轻松地实现客户端负载均衡。 Eureka和Nacos都使用了Ribbon来做负载均衡操作 其中IRule是一个代表查询规则的接口它有很多实现类(默认ZoneAvoidanceRule) 调整规则的方法(在消费者处修改) 在Application或者Configuration中定义IRule的Bean等于把容器中系统默认放进去的对象替换了 Bean public IRule randomRule(){return new RandomRule(); }局部地调整负载均衡规则在配置文件.yml中添加配置下面的例子是对userservice服务请求时使用随机选取规则 userservice:ribbon:NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule7、Ribbon负载均衡饥饿加载 Ribbon是个懒加载第一次访问的时候才创建RibbonLoadBalancerClient第一次请求时间长 饥饿加载会在项目启动时创建第一次访问快下面是一个对userservice、orderservice执行饥饿加载的示例 多个服务需要用“- name” ribbon:eager-load:enabled: true # 开启饥饿加载clients: - userservice - orderserviceNacos注册中心 alibaba提供的注册中心 1、服务端Nacos安装与启动 Nacos是要装在服务器端的学习的时候就装在本机 Nacos下载下载压缩包解压到非中文路径中 控制台cmd在当前目录startup -m standalone以单节点模式启动默认是集群模式会报IO错误 上面有一个地址是控制台账号密码默认nacos 2、客户端Nacos注册 在父工程中添加spring-cloud-alibaba的管理依赖(从springboot官网找) dependencyManagementdependenciesdependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion{project-version}/versiontypepom/typescopeimport/scope/dependency/dependencies /dependencyManagement删掉Eureka的依赖会产生冲突也记得删掉eureka的LoadBalanced注释等东西添加nacos客户端依赖 dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId /dependency修改配置注释eureka地址加入nacos的地址和端口默认8848 spring:cloud:nacos:server-addr: http://127.0.0.1:8848 # nacos 服务端地址启动客户端微服务这个时候在你的nacos控制台服务列表就能看到了 和eureka一样nacos也要在application上定义一个RestTemplate的Bean并且加上LoadBalanced使用时也是直接用服务名代替地址 3、Nacos分级存储模型 把服务的多个实例分到多个集群中每个集群一般不在一个地理位置 形成 服务-集群-实例 多级架构 一般尽可能使用本地集群快有故障的时候才使用异地的 在客户端修改application.yml添加配置集群名称即可 spring:cloud:nacos:server-addr: http://127.0.0.1:8848 # nacos 服务端地址discovery:cluster-name: ChengDu # 配置集群名称一般是机房位置先启动两个实例再把集群名字改了启动另一个实例就可以模拟两个集群的情况了 我在这个时候需要重新启动nacos可能是突然多了一个集群它有点呆连不上控制台了 4、修改NacosRule负载均衡规则 Nacos也是用了Spring cloud的Ribbon负载均衡 修改规则就是给Ribbon不同的规则实现类 优先寻找与自己同集群的服务本地集群中的实例随机选择 userservice:ribbon:NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则根据权重控制访问频率 在服务详情中编辑实例权重值越大权重越高权重变成0就不会被调用这个时候就可以更新升级这个实例 5、Nacos环境隔离 Nacos的服务存储和数据存储的最外层都是一个namespace用来做最外层隔离不同namespace的不能互相访问 Nacos控制台命名空间选项选择新建 在application.yml中添加配置将服务分到某命名空间 spring:cloud:nacos:discovery:namespace: 71097ffc-c1e7-471b-8538-879599cbf6eb # 命名空间id6、Nacos注册中心与Eureka注册中心的区别 Nacos会把实例分成临时默认或非临时对他们的健康检测不同 对临时实例与Eureka一样对Nacos服务器发送心跳检测出现问题就剔除该实例对非临时实例不做心跳而是Nacos服务器主动发请求询问服务提供者状态不健康时也不会剔除会一直问Nacos中不仅客户端会定时从注册中心拉取服务与Eureka相同注册中心也会主动推送服务的变更信息 服务提供者中添加配置从而设置为非临时实例 spring:cloud:nacos:discovery:ephemeral: false # 设置为非临时实例7、Nacos统一配置管理与热更新 配置管理 一个服务的配置文件可能和几十个服务实例有关系在更新配置后这些服务都需要重启 我们需要对服务的配置统一管理并且对实例做热更新 在Nacos控制台配置管理新增配置配置内容里应该是可能有变化的配置不是所有配置 yml就是yaml 在业务中使用Spring的Value注解就可以去读取配置文件中的值 之后在项目启动时会先读取nacos配置文件再读取本地配置文件application.yml并且将其合并再创建spring容器加载bean 引入Nacos的配置管理客户端依赖 !-- nacos配置管理--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependency在resource中新建bootstrap.yml文件它是个引导文件这个文件的优先级比nacos.yml和application.yml都要高 我们可以把nacos服务器信息和配置文件信息写在bootstrap.yml中以方便找到服务对应配置 # 配置的名字是userservice-dev.yaml spring:application:name: userservice # 服务名称就是配置名称的前半段profiles:active: dev # 开发环境这里是dev配置名称的后半段cloud:nacos:config:server-addr: localhost:8848 # nacos地址file-extension: yaml # 文件后缀名如果出问题试一下加上bootstrap的依赖新版springboot不默认启动它 !-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-bootstrap -- dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-bootstrap/artifactIdversion4.0.4/version /dependency 还要注意nacos控制台中配置文件和服务需要在一个namespace中 Value获取不到配置的问题查看这个博主 配置热更新 Nacos中的配置文件变更后微服务无需重启即可感知有两种方法 方法一在Value注入的变量所在类上添加注解RefreshScope RestController RequestMapping(/user) RefreshScope public class UserController {Value(${pattern.dateformat}) // 尝试通过名字获取nacos配置文件中的值private String dateformat; }方法二使用ConfigurationProperties 新建一个类要保证: 其结构与nacos配置文件中的某条相同重要有Getter和Setter方法注解中使用相同前缀prefixComponent以方便其他地方使用 Data Component ConfigurationProperties(prefix pattern) public class PatternProperties {private String dateformat; }//对比配置文件的内容 pattern:dateformat: yyyy-MM-dd HH:mm:ss8、多环境配置共享 有的配置是多个环境共有的 配置优先级 服务名-profile.yaml服务名.yaml本地配置文件 9、Nacos集群 这篇博文
http://www.pierceye.com/news/537774/

相关文章:

  • 网站seo设置是什么怎么知道网站被百度k了
  • 个人网站开发的意义自己建设网站需要什么手续
  • 网站的建设流程怎样使用仿站小工具做网站
  • 佛山企业模板建站企业微信管理系统
  • 百度推广登录网站网站开发需要什么技术人员
  • 有关网站升级建设的申请书中国工业设计公司
  • 线上销售怎么做优化网站哪家好
  • 成都网站建设备案audio player wordpress 使用
  • 做网站设计的公司上海装修公司名字
  • 处理器优化软件se 网站优化
  • 网站制作公司汉狮网络电子商务网站建设评估的指标有哪些?
  • asp网站伪静态教程网站建设多少钱实惠湘潭磐石网络
  • wordpress 外贸网站建设wordpress模板安装
  • 中国精准扶贫网站建设现状惠安规划局建设局网站
  • 营销型网站制作建设网络营销推广技巧
  • 哪里有做网站推广的宁波招聘网站开发
  • 建站工具帝国双语网站开发
  • 呼和浩特企业网站建设赞叹天河网站建设公司
  • 新郑做网站公司吉林省建设项目招标网
  • 深圳做网站哪里最好南宁seo外包平台
  • 新开传奇网站推荐做百度推广怎么做才能有电话
  • 文件夹里内容做网站的分类做网站上线一般要多久
  • 企业网站页头背景图河南网络优化服务
  • 成品网站nike源码免费现在装宽带要多少钱
  • 綦江建设银行网站外贸精品网站建设
  • 互动性的网站做第一个php网站
  • 移动网站开发视频怎样嵌入遵义市公共资源交易平台
  • 教做美食的视频网站青岛手机网站建设报价
  • 校园网站建设网成功做网站
  • 网站策划方案如何做网页设计师职业认知