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

虚拟商品交易网站建设页面简单的网站模板免费下载

虚拟商品交易网站建设,页面简单的网站模板免费下载,网站建设维护服务协议,wordpress显示选项解决方法1. 注册中心的设计思路 1.1. 微服务为什么会用到注册中心#xff1f; 服务与服务之间调用需要有服务发现功能#xff1b;例如订单服务调用库存服务#xff0c;库存服务如果有多个#xff0c;订单服务到底调用那个库存服务呢#xff08;负载均衡器#xff09;#xff0…1. 注册中心的设计思路 1.1. 微服务为什么会用到注册中心 服务与服务之间调用需要有服务发现功能例如订单服务调用库存服务库存服务如果有多个订单服务到底调用那个库存服务呢负载均衡器如果某个库存服务不可用了心跳上报如何知道不可用呢这里就牵涉到服务的注册与发现。 1.2. 如何设计一个注册中心 注册中心肯定需要存储服务的信息服务的 ip 和端口健康状态等服务的注册与发现功能心跳上报健康检查功能是必要的。 1.3. 注册中心应该包含哪些常见功能 服务的注册与发现、服务的健康检查、服务心跳集群的话可能就需要服务同步。 1.4. 注册中心的设计思路 2. Nacos 注册中心核心概念和功能 2.1. 核心概念 官网 Nacos 的概念及架构Nacos 概念 | Nacos 官网 服务Service 服务是指一个或一组软件功能例如特定信息的检索或一组操作的执行其目的是不同的客户端可以为不同的目的重用例如通过跨进程的网络调用。 服务注册中心Service Registry 服务注册中心它是服务其实例及源数据的数据库。 服务元数据Service Metadata 服务元数据是指包括服务端点endpoints、服务标签、服务版本号、服务实例权重、路由规则、安全策略等描述服务的数据。Nacos数据如配置和服务描述信息如服务版本、权重、容灾策略、负载均衡策略、鉴权配置、各种自定义标签 (label)从作用范围来看分为服务级别的元信息、集群的元信息及实例的元信息。 命名空间Namespace 用来进行租户粒度的配置隔离。不同的命名空间下可以存在相同的 Group 或 DataID 的配置。 Namespace 的常用场景之一是不同环境的配置的区分隔离例如开发测试环境和生产环境的资源如配置、服务隔离等。 服务分组Group 不同的服务可以归类到同一分组。 2.2. 核心功能 服务注册 Nacos Client 会通过发送 REST 请求的方式向 Nacos Server 注册自己的服务提供自身的元数据比如 ip 地址、端口等信息。Nacos Server 接受到注册请求后就会把这些元数据信息存储在一个双层的内存 Map 中。 服务心跳 在服务注册后Nacos Client 会维护一个定时心跳来持续通知 Nacos Server说明服务一直处于可用状态防止被剔除。默认 5s 发送一次心跳。 服务同步 Nacos Server 集群之间会互相同步服务实例用来保证服务信息的一致性。 服务发现 服务消费者Nacos Client在调用服务提供者的服务时会发送一个 REST 请求给 Nacos Server获取上面注册的服务清单并且缓存在 Nacos Client 本地同时会在 Nacos Client 本地开启一个定时任务定时拉取服务端最新的注册表信息更新到本地缓存。 服务健康检查 Nacos Server 会开启一个定时任务用来检查注册服务实例的健康情况对于超过 15s 没有收到客户端心跳的实例会将它的 healthy 属性置为 false 客户端服务发现时不会发现如果某个实例超过 30s 没有收到心跳直接剔除该实例被剔除的实力如果恢复发送心跳则会重新注册。 3. 微服务整合 Nacos 注册中心常用配置项详解 3.1. 准备测试环境 会员服务icoolkj-mall-user 订单服务icoolkj-mall-order01 速通版git checkout v2.0.0 版本 icoolkj-microservices-code 标签 - Gitee.com 启动服务获取会员订单信息 http://localhost:8580/api/user/getOrderByUserId?userId1 3.2. 服务逻辑隔离配置 3.2.1. 数据模型 Nacos 数据模型 Key 由三元组唯一确定Namespace 默认是空串公共命名空间public分组默认是 DEFAULT_GROUP。 3.2.2. Namespace 隔离设计 命名空间Namespace用于进行租户用户粒度的隔离Namespace 的常用场景之一是不同环境的隔离例如开发测试环境和生产环境的资源如配置、服务隔离等。 3.2.2.1. 在 nacos 控制台创建一个 dev 的命名空间 3.2.2.2. 配置订单服务 namespace 为 dev cloud:nacos:discovery:server-addr: icoolkj-mall-nacos-server:8848namespace: dev # 指定 dev 开发环境命名空间 3.2.2.3. 重启订单服务测试 用户调用订单接口能否查询到订单信息 问题无法调用订单服务提示No instances available for icoolkj-mall-order01 原因icoolkj-mall-order01 和 icoolkj-mall-user 使用了不同的 namespace导致服务隔离icoolkj-mall-user 无法发现可用的 icoolkj-mall-order01 服务。 3.2.3. group 服务分组隔离 不同的服务可以归类到同一个分组group 也可以起到服务隔离的作用yml 中可以通过 spring.cloud.nacos.discovery.group 参数配置。group 更多应用场景是配置分组。 3.2.3.1. 配置订单服务分组为 group1 cloud:nacos:discovery:server-addr: icoolkj-mall-nacos-server:8848namespace: dev # 指定 dev 开发环境命名空间group: group1 # 指定 group1 分组 3.2.3.2. 重启订单服务测试 用户调用订单接口能否查询到订单信息 问题无法调用订单服务提示No instances available for icoolkj-mall-order01 原因icoolkj-mall-order01 和 icoolkj-mall-user 使用了不同的分组导致服务隔离icoolkj-mall-user 无法发现可用的 icoolkj-mall-order01 服务。 3.3. 服务领域模型 注册中心的核心数据是服务名称和它对应的网络地址当服务注册了多个实例时需要对不健康的实力进行过滤或者对实例的一些特征进行流量的分配就需要再实例上存储一些例如 IP、端口、健康状态、权重等属性。随着服务的规模扩大需要再整个服务级别设定一些权限规则以及对所有实例都生效的一些开关于是在服务级别又会设立一些属性。我们发现单个服务的实力又会划分为多个子集的需求例如一个服务是多个机房部署的可能需要对每个机房的实例做不同的胚子这样有需要在服务和实例之间再设定一个数据级别。 Nacos 在经过内部多年生产经验提炼除的数据模型则是一种服务-集群-实例的三层模型。这样基本可以满足服务在所有场景下的数据存储和管理。 3.3.1. 集群配置 spring:cloud:nacos:discovery:server-addr: icoolkj-mall-nacos-server:8848namespace: dev # 指定 dev 开发环境命名空间#group: group1 # 指定 group1 分组cluster-name: BJ # 指定集群名称 北京机房 重启订单服务测试不同的集群的微服务之间是可以调用的一般情况不隔离可以实现本地集群优先调用例如上海订单先调用上海机房集群如果上海集群出问题了可以调用其他地方集群。 3.3.2. 临时实例和持久化实例 3.3.2.1. 健康检查的方式 临时实例使用客户端上报模式需要能够自动摘除不健康实例而且无需持久化存储实例。 持久化实例使用服务端探测的健康检查方式因为客户端不会上报心跳所以不能自动摘除下线的实例。 3.3.2.2. 适用场景 上层业的业务服务例如订单服务库存服务都可以上报心跳都是临时实例 一些基础的组件例如数据库、缓存等这些往往不能上报心跳这种类型的服务在注册时就需要作为持久化实例注册。 3.3.2.3. 如何配置 # 持久化实例 spring.cloud.nacos.discovery.ephemeral: false Nacos 默认注册的都是临时实例。 常见错误 Current service DEFAULT_GROUPicoolkj-mall-order01 is ephemeral service, cant register persistent instance. 在 Nacos2.0 中将是否持久化的数据抽象至服务级别且不再允许一个服务同时存在持久化实例和非持久化实例实例的持久化属性继承自服务的持久化属性。 The Raft Group [naming_persistent_service_v2] did not find the Leader node 要配置持久化实例必须得是 nacos 集群模式。 3.4. Nacos 安全配置 官方参考文档配置鉴权 | Nacos 官网 Nacos 是一个内部微服务组件需要在可信的内部网络中运行不可暴露在公网环境防止带来安全风险。 3.4.1. 如何实现安全配置 3.4.1.1. nacos server 端 nacos-server-2.3.2/nacos/conf/application.properties 添加如下配置 # 开启认证 nacos.core.auth.enabledtrue # 配置自定义身份识别的key不可为空和value不可为空 #这两个属性是auth的白名单用于标识来自其他服务器的请求。 #具体实现见 com.alibaba.nacos.core.auth.AuthFilter # 用于服务端api鉴权注意并不是nacos的用户名密码 nacos.core.auth.server.identity.keyauthKey nacos.core.auth.server.identity.valuenacosSecurty# 默认鉴权插件用于生成用户登陆临时accessToken所使用的密钥使用默认值有安全风险 (2.2.0.1后无默认值) #自定义密钥时推荐将配置项设置为Base64编码的字符串且原始密钥长度不得低于32字符。 nacos.core.auth.plugin.nacos.token.secret.keypDEYqLTBvWAp16osN6dxLvZTo9RfNsY3DfhI 注意在2.2.0.1版本后社区发布版本需要自行填充nacos.core.auth.plugin.nacos.token.secret.key的值否则无法启动节点。 随机字符串生产工具随机字符串生成 - 程序员工具箱 - 在线工具 注意鉴权开关是修改之后立马生效的不需要重启服务端。 3.4.1.2. nacos client 端 nacos server 开启鉴权后微服务提示 user not found! 微服务的 application.yml 中添加如下配置 spring:application:name: icoolkj-mall-usercloud:nacos:discovery:server-addr: icoolkj-mall-nacos-server:8848namespace: dev # 指定 dev 开发环境命名空间#group: group1 # 指定 group1 分组#cluster-name: BJ # 指定集群名称 北京机房username: nacospassword: nacos 默认用户名密码都是 nacos可以在 ncaos 控制台创建新用户。 4. Nacos 高可用集群最佳实践 4.1. nacos 部署方式 单机模式用于测试和单机使用。默认使用的是 derby 数据库。 注意单机模式下 Linux 运行Nacossh startup.sh -m standalone 集群模式用于生产环境确保高可用。 4.2. 官方文档 集群部署说明 4.3. 集群部署架构图 最终方案nginx 三个节点 nacos 集群 mysql 为保证数据一致性集群环境需要用 mysql三个节点都可以访问到 mysql替换内部的 derby 数据库。 4.4. 搭建步骤 官方部署手册Nacos支持三种部署模式 4.4.1. 前期环境准备 4.4.1.1. 三台 Linux 虚拟机 # 准备三台 centOS7 服务器 200.8.9.16:8848 200.8.9.17:8848 200.8.9.18:8848 安装好 JDK需要 1.8 及其以上版本建议2 核 CPU4G 内存及其以上。 注意nacos2.3.2 不能使用 OpenJDK会出现开启鉴权后控制台无论使用什么密码登录都显示账号密码错误问题。 4.4.1.2. 准备好 Nacos2.3.2 的安装包 下载地址发布历史 | Nacos 官网 4.4.2. 配置集群配置文件 在 nacos 的解压目录 nacos/的conf 目录下有配置文件 cluster.conf请每行配置成 ip:port。 #解压进入nacos 安装目录 unzip nacos-server-2.3.2.zip cd nacos/ mv conf/cluster.conf.example conf/cluster.conf vim conf/cluster.conf# ip:port 200.8.9.16:8848 200.8.9.17:8848 200.8.9.18:8848 注意不要使用 localhost 或 127.0.0.1针对多网卡环境Nacos 可以指定网卡或 IP 当本地环境比较复杂的时候Nacos 服务在启动的时候需要选择运行时使用的 IP 或者网卡。 #多网卡IP选择 # ip-address 参数可以直接设置 nacos 的 ip #该参数设置后将会使用这个 IP 去 cluster.conf 里进行匹配请确保这个 IP 的值在 cluster.conf 里是存在的 nacos.inetutils.ip-address200.8.9.16# use-only-site-local-interfaces 参数可以让nacos使用局域网 ip 这个在 nacos 部署的机器有多网卡时很有用可以让 nacos 选择局域网网卡 nacos.inetutils.use-only-site-local-interfacestrue# ignored-interfaces 支持网卡数组可以让 nacos 忽略多个网卡 nacos.inetutils.ignored-interfaces[0]eth0 nacos.inetutils.ignored-interfaces[1]eth1# preferred-networks 参数可以让 nacos 优先选择匹配的 ip支持正则匹配和前缀匹配 nacos.inetutils.preferred-networks[0]200.8.9. nacos.inetutils.preferred-networks[0]200.8.9.(25[0-5]|2[0-4]\\d|((1d{2})|([1-9]?\\d))),200.8.9.(25[0-5]|2[0-4]\\d|((1d{2})|([1-9]?\\d))) 4.4.3. 开启默认鉴权插件 修改 conf 目录下的 application.properties 文件 nacos.core.auth.enabledtrue nacos.core.auth.server.identity.key${自定义保证所有节点一致} nacos.core.auth.server.identity.value${自定义保证所有节点一致} nacos.core.auth.plugin.nacos.token.secret.key${自定义保证所有节点一致} 4.4.4. 配置数据源 使用外置 mysql 数据源生产使用建议至少主备模式 4.4.4.1. 初始化 mysql 数据库 sql 脚本nacos-server-2.3.2/nacos/conf/mysql-schema.sql 4.4.4.2. 修改 application.properties 配置 spring.sql.init.platformmysql db.num1 db.url.0jdbc:mysql://200.8.9.16:3306/nacos?characterEncodingutf8connectTimeout1000socketTimeout3000autoReconnecttrueuseUnicodetrueuseSSLfalseserverTimezoneUTC db.user.0root db.password.0123456 4.4.4.3. 常见错误 java.lang.RuntimeException: [db-load-error]load jdbc.properties error 检查 nacos 的 mysql 连接数据库的 ip、数据库、用户名和密码。 4.4.5. 分别启动三个 nacos 节点 以 200.8.9.16 为例进入 nacos 目录启动 nacos。 sh bin/startup.sh 4.4.6. 访问 nacos 管理界面 登录 200.8.9.16:8848/nacos用户名和密码默认都是 nacos 5. 小结 通过 Nacos 注册中心可以实现微服务的注册与发现。生产环境搭建高可用集群模式。
http://www.hkea.cn/news/14302661/

相关文章:

  • 注册域名和建立网站的过程网站的网站制作
  • 电子商务营销网站建设app制作成本
  • wordpress多语言站点移动开发的几种方式
  • wordpress导出网站太原网站建设质量推荐
  • 做网站怎么去进行链接佛山住建
  • 网站营销活动页面制作建网站公司要钱吗
  • 网站建设公司做ppt吗瑞华特散热器网站谁给做的
  • 句容做网站栾城做网站
  • 上海医疗旅游开发网站建设卖童书的网站该怎么做
  • 低价网站建设费用预算做当地门户网站多少钱
  • 企业网站建设会计分录微信商家联盟平台
  • 大连外贸网站建设太原市网站建设网站
  • 荥阳做网站优化wordpress图库主题
  • 南京城乡建设局网站首页重庆哪里有做淘宝网站推广的
  • 响应式网站模板的优势企业网站更新什么内容
  • 济南网站建设 选搜点o零基础学室内设计需要多久
  • 中国建设银行网站对公账户首页湖南省郴州市永兴县
  • 创建网站有免费的吗做集团网站一年多少钱
  • 做个网站多少钱南京宣传片制作公司
  • 网站建设与运营的预算方案营销方案设计
  • 网站建设的文本事例网站建设公司天成
  • 怎么看网站是什么语言做的后台网站添加在线qq聊天
  • 网站建设后台管理流程网站的开发费用吗
  • 建设工程交易中心网站收费标准宁波网站建设流程有哪些
  • 三明购物网站开发设计wordpress 博客编辑
  • 内衣网站建设详细方案沈阳网站建设联系方式
  • 怎么做赌钱网站南昌网站建设工作
  • 一起做网站欧洲站wordpress登录后台404
  • 免费网站建设服务wap版网站 加app提示
  • 推广网站有哪些wordpress新建页面发布失败