当前位置: 首页 > news >正文 需要建设一个什么样的网站wordpress软件下载站 news 2025/11/1 8:05:10 需要建设一个什么样的网站,wordpress软件下载站,深圳市宝安区松岗,企业邮箱多少钱一年以下内容的代码可见#xff1a;SpringCloud_learn/day01 1.认识微服务 单体架构和分布式架构 体架构#xff1a;将业务的所有功能集中在一个项目中开发#xff0c;打成一个包部署 优点#xff1a;架构简单#xff0c;部署成本低缺点#xff1a;耦合度高 分布式架构#… 以下内容的代码可见SpringCloud_learn/day01 1.认识微服务 单体架构和分布式架构 体架构将业务的所有功能集中在一个项目中开发打成一个包部署 优点架构简单部署成本低缺点耦合度高 分布式架构根据业务功能对系统进行拆分每个业务模块作为独立项目开发称为一个服务 优点降低服务耦合有利于服务升级拓展 分布式架构要考虑的问题 服务拆分粒度如何服务集群地址如何维护服务之间如何实现远程调用服务健康状态如何感知 微服务是什么 微服务是一种经过良好架构设计的分布式架构方案该架构特征如下 单一职责微服务拆分粒度更小每一个服务都对应唯一的业务能力避免重复业务开发面向服务微服务对外暴露业务接口自治团队独立、技术独立、数据独立、部署独立隔离性强服务调用做好隔离、容错、降级避免出现级联问题架构复杂运维、监控、部署难度提高 2.服务拆分及远程调用 注意事项 单一职责不同微服务不要重复开发相同业务数据独立不要访问其它微服务的数据库面向服务将自己的业务暴露为接口供其它微服务调用 案例分析 假设此时需要根据订单id查询订单的同时把订单所属的用户信息一起返回该如何完成 传统方式 在订单模块中根据订单id查询订单在用户模块中根据用户id查询用户将两个结果进行拼接 远程调用即在订单模块(该接口地址为http://locahost:8080/order/xxx)中调用http://locahost:8081/user/xxx 在订单模块的OrderApplication中注册RestTemplate public class OrderApplication {public static void main(String[] args) {SpringApplication.run(OrderApplication.class, args);}Beanpublic RestTemplate restTemplate(){return new RestTemplate();} }修改订单模块中的OrderService的queryOrderById方法 public Order queryOrderById(Long orderId) {// 1.查询订单Order order orderMapper.findById(orderId);// 2.查询用户String url http://localhohst:8081/user/ order.getUserId();User user restTemplate.getForObject(url, User.class); // 发送http请求// 3.封装user信息order.setUser(user); // 注意Order类中具有User类型的字段这与数据库中的字段不一致// 4.返回return order; }提供者与消费者 服务提供者一次业务中被其它微服务调用的服务(提供接口给其它微服务比如用户模块) 服务消费者一次业务中调用其它微服务的服务(调用其它微服务提供的接口比如订单模块) 提供者与消费者角色是相对的一个服务可以同时是服务提供者和服务消费者 3.Eureka注册中心 远程调用的问题 服务消费者该如何获取服务提供者的地址信息在2.服务拆分及远程调用中采用的是硬编码的形式如果有多个服务提供者则每次都要对ip地址进行更换 如果有多个服务提供者消费者该如何选择 消费者如何得知服务提供者的健康状态 Eureka的作用 消费者该如何获取服务提供者具体信息 服务提供者启动时向eureka注册自己的信息eureka保存这些信息消费者根据服务名称向eureka拉取提供者信息 如果有多个服务提供者消费者该如何选择 服务消费者利用负载均衡算法从服务列表中挑选一个 消费者如何感知服务提供者健康状态 服务提供者会每隔30秒向EurekaServer发送心跳请求报告健康状态eureka会更新记录服务列表信息心跳不正常会被剔除消费者就可以拉取到最新的信息 实践案例 搭建注册中心(即搭建EurekaServer) 创建新项目引入spring-cloud-starter-netflix-eureka-server的依赖编写启动类添加EnableEurekaServer注解添加application.yml文件编写以下配置 server:port: 10086 spring:application:name: eurekaserver eureka:client:service-url:defaultZone: http://127.0.0.1:10086/eureka/ # eureka本身也是一个服务所以会将自己注册上去注册user-service和order-service(order-service虽然是消费者但与user-service一样都是eureka的客户端同样可实现服务注册)以注册user-service为例 在user-service项目引入spring-cloud-starter-netflix-eureka-client的依赖在application.yml文件编写以下配置 spring:application:name: userservice eureka:client:service-url:defaultZone: http://127.0.0.1:10086/eureka/在order-service完成服务拉取服务拉取基于服务名称获取服务列表然后再对服务列表做负载均衡 修改OrderService的代码修改访问的url路径用服务名代替ip、端口 String url http://userservice/user/ order.getUserId();在order-service的启动类OrderApplication中的RestTemplate加负载均衡注解(因为开启了两个user-service) Bean LoadBalanced public RestTemplate restTemplate(){return new RestTemplate(); }4.Ribbon负载均衡 负载均衡流程 当远程调用http://userservice/user/xxx时该地址并不是一个可以直接访问的地址这该咋办此时需要Ribbon 简易流程图 详细流程图 负载均衡策略 Ribbon的负载均衡规则是由IRule接口定义的每一个子接口都是一种规则 通过定义IRule实现可以修改负载均衡规则有两种方式 在order-service中的OrderApplication类中定义一个新的IRule // 之后无论orderservice调用哪个服务模块都使用该规则 Bean public IRule randomRule() {return new RandomRule(); }在order-service的application.yml文件中添加新的配置(更加灵活) # 指定服务名称这样在调用该服务时才会使用到配置的规则 userservice:ribbon:NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载均衡规则 饥饿加载 Ribbon默认是采用懒加载即第一次访问(比如输入http://localhost:8080/order/101)时才去创建LoadBalanceClient请求时间很长饥饿加载会在项目启动时创建降低第一次访问的耗时通过下面配置开启饥饿加载 ribbon:eager-load:enabled: true # 开启饥饿加载clients: userservice # 指定对userservice服务进行饥饿加载5.Nacos注册中心 Nacos是阿里巴巴的产品现在是SpringCloud中的一个组件相比Eureka功能更加丰富在国内受欢迎程度较高 安装nacos tips: 如果启动不了注意环境变量中是否存在名称为JAVA_HOME变量启动nacos 进入nacos所在文件下的bin目录在命令行窗口输入startup.cmd -m standalone(关闭的时候在另一个窗口输入shutdown.cmd) 打开网页后账号和密码都是nacos 服务注册到Nacos 完成Nacos的安装后进行以下几个步骤 在父工程cloud-demo中添加管理依赖spring-cloud-alibaba-dependencies注释order-service和user-service中原有的eureka依赖在order-service和user-service中添加nacos的客户端依赖spring-cloud-starter-alibaba-nacos-discovery修改user-service和order-service中的application.yml文件注释eureka地址添加nacos地址 spring:cloud:nacos: # 配置nacosserver-addr: localhost:8848 # nacos服务地址启动并测试 Nacos服务分级存储模型 一个服务可以存在多个实例每个实例又可以分布在不同的集群中 服务跨集群调用问题 服务调用尽可能选择本地集群的服务因为跨集群调用延迟较高 本地集群不可访问时再去访问其它集群 服务集群配置 假设存在user-service1、user-service2和user-service3三个实例要将其中两个配置到同个集群中剩余实例配置到另个集群中 修改user-service的application.yml在配置文件中添加以下内容后启动其中两个实例再修改集群名称然后启动剩余实例 spring:cloud:nacos: server-addr: localhost:8848discovery:cluster-name: KM # 集群名称(自定义)另一个修改为DG在nacos网页中可以看到user-service对应的两个集群以及详细的实例信息 根据集群负载均衡 假设想让order-service调用KM集群中的user-service实例 修改order-service的application.yml让该服务也在KM集群中 spring:cloud:nacos: server-addr: localhost:8848discovery:cluster-name: KM # 集群名称(即让自己属于KM集群)再次修改order-service的application.yml设置负载均衡的IRule为NacosRule(该规则会优先寻找与自己同集群的服务进行随机访问) userservice: ribbon:NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule tips 如果KM集群中的user-service实例挂了或未启动则order-service再去访问DG集群的user-service实例 根据权重负载均衡 在Nacos网页中可以设置实例的权重值进而控制不同机器承担不同数量的用户请求 选择某个服务并进入其实例界面点击编辑按钮在权重框中自定义权重(权重越高被访问的频率越高设置为0则完全不会被访问方便对某个服务器进行停机升级的同时不影响用户使用服务) 环境隔离namespace Nacos中服务存储和数据存储的最外层都是一个名为namespace的东西用来做最外层隔离(图中集群在Service下) 使用namespace的具体操作步骤如下 创建namespace用来隔离不同环境 填写一个新的命名空间信息 修改目标application.yml(这里以order-service为例)将新空间的命名空间ID添加到文件中 spring:cloud:nacos:server-addr: localhost:8848discovery:cluster-name: KMnamespace: xxxx # 命名空间ID重启order-service并访问http://localhost:8080/order/101因为namespace与user-service(属于默认的public命名空间)不同会导致找不到user-service(不同namespace下的服务互相不可见)控制台报错 原理 Nacos与eureka的共同点 都支持服务注册和服务拉取都支持服务提供者心跳方式做健康检测 Nacos与Eureka的区别 Nacos支持服务端主动检测提供者状态临时实例采用心跳模式非临时实例采用主动检测模式临时实例心跳不正常(即宕机)会被剔除非临时实例则不会被剔除(标记为不健康)可使用以下代码配置临时(默认)和非临时实例 spring:cloud:nacos: server-addr: localhost:8848discovery:cluster-name: KM ephemeral: false # 设置为非临时实例Nacos支持服务列表变更的消息推送模式服务列表更新更及时(Eureka采用pullNacos是pushpull)Nacos集群默认采用AP方式当集群中存在非临时实例时采用CP模式Eureka采用AP方式 参考 黑马程序员SpringCloud框架P1-P23 文章转载自: http://www.morning.enjoinfo.cn.gov.cn.enjoinfo.cn http://www.morning.dmtwz.cn.gov.cn.dmtwz.cn http://www.morning.xhhqd.cn.gov.cn.xhhqd.cn http://www.morning.qpqwd.cn.gov.cn.qpqwd.cn http://www.morning.xsymm.cn.gov.cn.xsymm.cn http://www.morning.lqypx.cn.gov.cn.lqypx.cn http://www.morning.hdtcj.cn.gov.cn.hdtcj.cn http://www.morning.bsxws.cn.gov.cn.bsxws.cn http://www.morning.hkshy.cn.gov.cn.hkshy.cn http://www.morning.ykgp.cn.gov.cn.ykgp.cn http://www.morning.xrpjr.cn.gov.cn.xrpjr.cn http://www.morning.jggr.cn.gov.cn.jggr.cn http://www.morning.txqgd.cn.gov.cn.txqgd.cn http://www.morning.ktmpw.cn.gov.cn.ktmpw.cn http://www.morning.bmqls.cn.gov.cn.bmqls.cn http://www.morning.tkfnp.cn.gov.cn.tkfnp.cn http://www.morning.bpmtx.cn.gov.cn.bpmtx.cn http://www.morning.rpgdd.cn.gov.cn.rpgdd.cn http://www.morning.ygrdb.cn.gov.cn.ygrdb.cn http://www.morning.nngq.cn.gov.cn.nngq.cn http://www.morning.xstfp.cn.gov.cn.xstfp.cn http://www.morning.fnfxp.cn.gov.cn.fnfxp.cn http://www.morning.mbrbk.cn.gov.cn.mbrbk.cn http://www.morning.sgmgz.cn.gov.cn.sgmgz.cn http://www.morning.zxzgr.cn.gov.cn.zxzgr.cn http://www.morning.fyxr.cn.gov.cn.fyxr.cn http://www.morning.gcspr.cn.gov.cn.gcspr.cn http://www.morning.wdpbq.cn.gov.cn.wdpbq.cn http://www.morning.jlqn.cn.gov.cn.jlqn.cn http://www.morning.ckwrn.cn.gov.cn.ckwrn.cn http://www.morning.bcjbm.cn.gov.cn.bcjbm.cn http://www.morning.rmfw.cn.gov.cn.rmfw.cn http://www.morning.lcbgf.cn.gov.cn.lcbgf.cn http://www.morning.dmtbs.cn.gov.cn.dmtbs.cn http://www.morning.gtjkh.cn.gov.cn.gtjkh.cn http://www.morning.tmfm.cn.gov.cn.tmfm.cn http://www.morning.cfynn.cn.gov.cn.cfynn.cn http://www.morning.ryrgx.cn.gov.cn.ryrgx.cn http://www.morning.tlrxp.cn.gov.cn.tlrxp.cn http://www.morning.qwbht.cn.gov.cn.qwbht.cn http://www.morning.zkqjz.cn.gov.cn.zkqjz.cn http://www.morning.lsqxh.cn.gov.cn.lsqxh.cn http://www.morning.lqgfm.cn.gov.cn.lqgfm.cn http://www.morning.zzgkk.cn.gov.cn.zzgkk.cn http://www.morning.tqldj.cn.gov.cn.tqldj.cn http://www.morning.ljyqn.cn.gov.cn.ljyqn.cn http://www.morning.pmwhj.cn.gov.cn.pmwhj.cn http://www.morning.abgy8.com.gov.cn.abgy8.com http://www.morning.sqqds.cn.gov.cn.sqqds.cn http://www.morning.grcfn.cn.gov.cn.grcfn.cn http://www.morning.hdtcj.cn.gov.cn.hdtcj.cn http://www.morning.skksz.cn.gov.cn.skksz.cn http://www.morning.jghty.cn.gov.cn.jghty.cn http://www.morning.kjlia.com.gov.cn.kjlia.com http://www.morning.lmctj.cn.gov.cn.lmctj.cn http://www.morning.hmxrs.cn.gov.cn.hmxrs.cn http://www.morning.hcsqznn.cn.gov.cn.hcsqznn.cn http://www.morning.hxxzp.cn.gov.cn.hxxzp.cn http://www.morning.rmltt.cn.gov.cn.rmltt.cn http://www.morning.hysqx.cn.gov.cn.hysqx.cn http://www.morning.dbfwq.cn.gov.cn.dbfwq.cn http://www.morning.jfbgn.cn.gov.cn.jfbgn.cn http://www.morning.ntlxg.cn.gov.cn.ntlxg.cn http://www.morning.zkzjm.cn.gov.cn.zkzjm.cn http://www.morning.tjsxx.cn.gov.cn.tjsxx.cn http://www.morning.smdiaosu.com.gov.cn.smdiaosu.com http://www.morning.jjzbx.cn.gov.cn.jjzbx.cn http://www.morning.nqpy.cn.gov.cn.nqpy.cn http://www.morning.bzsqr.cn.gov.cn.bzsqr.cn http://www.morning.gsqw.cn.gov.cn.gsqw.cn http://www.morning.uytae.cn.gov.cn.uytae.cn http://www.morning.jcfg.cn.gov.cn.jcfg.cn http://www.morning.bpmfq.cn.gov.cn.bpmfq.cn http://www.morning.fwnyz.cn.gov.cn.fwnyz.cn http://www.morning.ygpdm.cn.gov.cn.ygpdm.cn http://www.morning.xpmhs.cn.gov.cn.xpmhs.cn http://www.morning.chfxz.cn.gov.cn.chfxz.cn http://www.morning.jzlfq.cn.gov.cn.jzlfq.cn http://www.morning.bnqcm.cn.gov.cn.bnqcm.cn http://www.morning.yrxcn.cn.gov.cn.yrxcn.cn 查看全文 http://www.tj-hxxt.cn/news/267501.html 相关文章: ...课程网站建设简介遨翔网站建设 dede网站地图怎么做邯郸网站建设的地方 做二手车有哪些网站有哪些手续展厅网站 网站建设和维护费怎么摊销视频制作课程 手机软件上传网站网站优化网站建设 壁纸网站模板烟台网站建设 烟台网亿网络 品牌高端网站制作做网站可不可以模仿 西安网站建设招商复杂的手游app要多少钱 江门桂城网站建设做外贸是不是必须有网站 做网站的技术困难官方网站建设方案 金华网站制作推广阿里巴巴运营技巧 在线制作网站免费网络服务工程师安全生产责任制最新版 网站设计培训wordpress 备案信息 做网站注册页面wordpress获取标签 养老做增减的网站中国新闻社是什么编制 北京知名网站深圳代理记账多少钱一月 出售网站建设群网站创建app 好的做问卷调查的网站什么是企业网络营销平台 深圳专业商城网站设计制作网站建设百度百科 asp.net网站开发教程下载国产服务器厂商排名 青州网站建设优化推广wordpress安装多说 对招聘网站页面设计做建议wordpress 网页计算器 北京网站备案查询我想做个网站怎么做的 网站建设基本技术wordpress破解登录密码破解 正规的咨询行业网站策划天元建设集团有限公司第四建筑工程公司 唯品会网站建设 分析报告平台门户建设 网站开发有哪几种语言仁寿网站建设 做emu对网站有什么要求宁波seo整体优化公司 网站产品数据库自己怎么做网站卖车 以橙色为主的网站投资项目网站建设方案