网站数据库购买北京最好的网站制作公司

张小明 2026/1/17 2:16:57
网站数据库购买,北京最好的网站制作公司,建站行业现状探讨,企业咨询顾问的工作内容一、先搞懂#xff1a;为什么需要 Spring Cloud#xff1f;#xff08;微服务痛点#xff09;单体应用#xff08;一个项目包含所有功能#xff09;的问题#xff1a;代码臃肿、开发协作难、升级风险高、并发瓶颈明显。微服务就是把单体应用拆成多个独立服务#xff08…一、先搞懂为什么需要 Spring Cloud微服务痛点单体应用一个项目包含所有功能的问题代码臃肿、开发协作难、升级风险高、并发瓶颈明显。微服务就是把单体应用拆成多个独立服务如下单服务、用户服务、库存服务但拆分后会出现新问题服务太多怎么找到对方注册发现服务配置太多数据库、端口等怎么统一管理配置中心一个请求要调用多个服务怎么简化调用远程调用多个服务实例请求怎么分配负载均衡某个服务挂了怎么避免连锁崩溃熔断降级所有服务入口不一样怎么统一访问API 网关分布式系统中怎么保证跨服务数据一致分布式事务二、Spring Cloud 核心组件按使用优先级排序1. 服务注册与发现 — 解决「服务怎么找对方」核心作用所有服务启动后自动注册到「注册中心」其他服务通过注册中心获取目标服务的地址IP 端口不用硬编码配置。主流组件Nacos阿里开源功能最全推荐、EurekaNetflix 开源简单轻量已停更。工作流程下单服务启动 → 向 Nacos 注册自己的地址如192.168.1.100:8081库存服务启动 → 也向 Nacos 注册自己的地址如192.168.1.101:8082下单服务需要调用库存服务时先向 Nacos 查询「库存服务的地址列表」Nacos 返回库存服务的可用地址下单服务直接调用。实战配置Nacos 为例1、引入依赖Spring Boot 2.x 对应 Spring Cloud Alibaba 版本!-- Nacos 服务注册发现依赖 -- dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId version2.2.7.RELEASE/version !-- 版本需与 Spring Boot 匹配 -- /dependency2、配置application.ymlspring: application: name: order-service # 服务名称注册到 Nacos 的唯一标识 cloud: nacos: discovery: server-addr: localhost:8848 # Nacos 服务器地址本地启动的 Nacos server: port: 8081 # 下单服务端口3、启动类加注解开启服务注册发现SpringBootApplication EnableDiscoveryClient // 开启服务注册发现Spring Cloud 通用注解Nacos/Eureka 都支持 public class OrderServiceApplication { public static void main(String[] args) { SpringApplication.run(OrderServiceApplication.class, args); } }4、启动 Nacos 服务器本地版下载 Nacos 安装包执行startup.cmdWindows访问http://localhost:8848/nacos账号密码默认nacos/nacos即可看到注册的服务。2. 配置中心Nacos Config—— 解决「配置统一管理」核心作用把所有服务的配置数据库、端口、自定义参数等集中存储在 Nacos支持「动态刷新」改配置不用重启服务、「多环境隔离」开发 / 测试 / 生产配置分开。实战配置Nacos Config 为例1、引入依赖dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-starter-alibaba-nacos-config/artifactId version2.2.7.RELEASE/version /dependency2、新建bootstrap.yml优先级比application.yml高用于加载 Nacos 配置spring: application: name: order-service cloud: nacos: config: server-addr: localhost:8848 # Nacos 地址 file-extension: yml # 配置文件格式yml/properties group: DEFAULT_GROUP # 配置分组默认即可 profiles: active: dev # 激活开发环境配置3、在 Nacos 控制台添加配置配置 IDorder-service-dev.yml格式服务名-环境名.文件格式配置内容数据库、自定义参数等spring: datasource: url: jdbc:mysql://localhost:3306/order_db?useSSLfalse username: root password: 123456 myapp: notify: true # 自定义配置4、配置注入与动态刷新Component RefreshScope // 开启动态刷新Nacos 配置修改后自动更新注入值 public class OrderConfig { Value(${myapp.notify}) private boolean notify; // getter/setter }效果修改 Nacos 中的myapp.notify为false无需重启服务OrderConfig中的notify会自动更新。3. 远程调用OpenFeign—— 解决「服务间怎么调用」核心作用简化服务间 HTTP 调用不用手动写客户端支持负载均衡、熔断降级且能和 Spring 无缝整合注解式调用。实战配置OpenFeign 为例1、引入依赖!-- OpenFeign 依赖 -- dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-openfeign/artifactId version2.2.9.RELEASE/version /dependency2、启动类加注解开启 Feign 功能SpringBootApplication EnableDiscoveryClient EnableFeignClients // 开启 OpenFeign public class OrderServiceApplication { public static void main(String[] args) { SpringApplication.run(OrderServiceApplication.class, args); } }3、定义 Feign 接口映射库存服务的接口// 声明要调用的服务名称Nacos 中注册的 stock-service 名称 FeignClient(name stock-service) public interface StockFeignClient { // 映射库存服务的扣库存接口和 stock-service 的 Controller 接口一致 PostMapping(/stock/deduct) ResultBoolean deductStock(RequestBody StockDTO stockDTO); } // 库存服务的 DTO和 stock-service 中的 DTO 完全一致 Data public class StockDTO { private Long goodsId; private Integer num; }4、服务端stock-service的接口被调用方RestController RequestMapping(/stock) public class StockController { Autowired private StockService stockService; PostMapping(/deduct) public ResultBoolean deductStock(RequestBody StockDTO stockDTO) { boolean success stockService.deduct(stockDTO.getGoodsId(), stockDTO.getNum()); return Result.success(success); } }5、下单服务调用 Feign 接口Service public class OrderServiceImpl implements OrderService { Autowired private StockFeignClient stockFeignClient; Autowired private OrderMapper orderMapper; Transactional Override public Order createOrder(OrderDTO dto) { // 1. 远程调用库存服务扣库存 StockDTO stockDTO new StockDTO(); stockDTO.setGoodsId(dto.getGoodsId()); stockDTO.setNum(dto.getNum()); ResultBoolean deductResult stockFeignClient.deductStock(stockDTO); if (!deductResult.getData()) { throw new BusinessException(库存不足); } // 2. 创建订单本地事务 Order order new Order(); order.setUserId(dto.getUserId()); order.setGoodsId(dto.getGoodsId()); orderMapper.insert(order); return order; } }效果下单服务调用StockFeignClient.deductStock()Feign 会自动通过 Nacos 找到 stock-service 的地址发起 HTTP 请求且支持负载均衡如果 stock-service 启动多个实例会自动分发请求。4. API 网关Spring Cloud Gateway—— 解决「统一入口 路由转发」核心作用所有前端请求都通过网关进入网关负责路由转发把请求转发到对应服务、统一拦截登录校验、权限控制、限流、跨域处理等不用每个服务都单独实现这些功能。实战配置Gateway 为例1、新建网关服务独立的 Spring Boot 项目引入依赖!-- Gateway 依赖注意Gateway 基于 WebFlux不能和 spring-boot-starter-web 共存 -- dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-gateway/artifactId version2.2.9.RELEASE/version /dependency !-- Nacos 注册发现依赖网关需要从 Nacos 获取服务地址 -- dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId version2.2.7.RELEASE/version /dependency2、配置application.yml路由规则spring: application: name: gateway-service # 网关服务名称 cloud: nacos: discovery: server-addr: localhost:8848 # Nacos 地址 gateway: routes: # 路由1下单服务/order/** 开头的请求转发到 order-service - id: order-service-route uri: lb://order-service # lb负载均衡指向 Nacos 中的服务名 predicates: - Path/order/** # 路径匹配规则 filters: - StripPrefix1 # 去掉路径前缀/order/deduct → /deduct转发到 order-service # 路由2库存服务/stock/** 开头的请求转发到 stock-service - id: stock-service-route uri: lb://stock-service predicates: - Path/stock/** filters: - StripPrefix1 server: port: 8080 # 网关端口前端统一访问 80803、启动类SpringBootApplication EnableDiscoveryClient public class GatewayApplication { public static void main(String[] args) { SpringApplication.run(GatewayApplication.class, args); } }前端访问http://localhost:8080/order/create→ 网关转发到order-service的/create接口前端访问http://localhost:8080/stock/deduct→ 网关转发到stock-service的/deduct接口所有请求都走网关后续登录校验、限流等都可以在网关统一实现。5. 熔断降级Sentinel—— 解决「服务雪崩」核心作用当某个服务如库存服务挂了或响应超时调用方下单服务不会一直等待而是快速返回「降级结果」如 “当前库存服务繁忙请稍后重试”避免下单服务线程阻塞进而导致整个系统崩溃服务雪崩。主流组件Sentinel阿里开源轻量、功能强推荐、HystrixNetflix 开源已停更。实战配置Sentinel 为例1、引入依赖在下单服务中引入因为是调用方需要熔断!-- Sentinel 核心依赖 -- dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-starter-alibaba-sentinel/artifactId version2.2.7.RELEASE/version /dependency !-- Sentinel 与 OpenFeign 整合对 Feign 调用进行熔断 -- dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-alibaba-sentinel-feign/artifactId version2.2.7.RELEASE/version /dependency2、配置application.ymlspring: cloud: sentinel: transport: dashboard: localhost:8080 # Sentinel 控制台地址本地启动的 Sentinel port: 8719 # 与控制台通信的端口默认即可 feign: sentinel: enabled: true # 开启 Feign 与 Sentinel 的整合对 Feign 调用熔断3、定义 Feign 降级类服务熔断时返回的默认结果// 实现 StockFeignClient 接口重写熔断时的方法 Component public class StockFeignFallback implements StockFeignClient { Override public ResultBoolean deductStock(StockDTO stockDTO) { // 降级逻辑返回失败提示用户 return Result.fail(库存服务繁忙请稍后重试); } }4、修改 Feign 接口指定降级类FeignClient(name stock-service, fallback StockFeignFallback.class) // 指定降级类 public interface StockFeignClient { PostMapping(/stock/deduct) ResultBoolean deductStock(RequestBody StockDTO stockDTO); }5、启动 Sentinel 控制台本地版下载 Sentinel jar 包执行java -jar sentinel-dashboard-1.8.6.jar访问http://localhost:8080账号密码默认sentinel/sentinel。效果当 stock-service 正常时下单服务调用 Feign 接口正常返回当 stock-service 挂了或响应超时Sentinel 触发熔断调用StockFeignFallback.deductStock()返回 “库存服务繁忙请稍后重试”下单服务不会阻塞系统正常运行。三、其他重要组件进阶必备1. 分布式事务Seata—— 解决「跨服务数据一致性」问题下单服务创建订单本地事务调用库存服务扣库存远程事务如果扣库存成功但下单服务后续抛异常会出现「库存扣了但订单没创建」的不一致情况。解决方案Seata阿里开源支持「AT 模式」无侵入推荐通过全局事务协调器保证跨服务事务的原子性要么都成功要么都回滚。2. 服务监控Spring Cloud Actuator Prometheus Grafana作用监控每个服务的运行状态内存、CPU、接口耗时、异常数通过 Grafana 可视化展示方便运维排查问题。3. 链路追踪SkyWalking/Zipkin—— 解决「跨服务调用排查」问题一个请求要调用多个服务如前端→网关→下单服务→库存服务如果出现错误不知道是哪个服务的问题。解决方案SkyWalking追踪整个调用链路记录每个服务的执行时间、是否报错快速定位问题所在。4. 限流Sentinel/Gateway 限流—— 解决「高并发流量控制」作用限制某个接口的并发请求数如下单接口每秒最多处理 100 个请求避免高并发导致服务崩溃。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设公司的经营范围mvc 5 做网站的教程

Free Texture Packer:高效游戏开发纹理打包利器 【免费下载链接】free-tex-packer Free texture packer 项目地址: https://gitcode.com/gh_mirrors/fr/free-tex-packer Free Texture Packer是一款专为游戏开发和网页设计优化的开源纹理打包工具,…

张小明 2026/1/14 3:05:38 网站建设

湖北 网站备案wordpress copyright

YOLO-World模型部署完整指南:云边协同推理架构与实战优化 【免费下载链接】YOLO-World 项目地址: https://gitcode.com/gh_mirrors/yo/YOLO-World YOLO-World作为突破性的开放词汇目标检测模型,通过文本-视觉交互实现了前所未有的泛化能力。本文…

张小明 2026/1/13 9:22:00 网站建设

天津做国外网站包装设计网官网

ComfyUI-Manager升级指南:零风险平滑迁移方案 【免费下载链接】ComfyUI-Manager 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Manager 还在为ComfyUI-Manager版本升级而烦恼吗?作为ComfyUI生态中不可或缺的扩展管理工具,Co…

张小明 2026/1/14 2:14:37 网站建设

网站开发及维护合同到哪里查网站备案信息

1. 棒球运动员识别:使用Cascade-RCNN训练模型识别Dragons队、Lions队队员及裁判角色 1.1. 项目概述 在体育赛事分析中,自动识别运动员身份是一项重要任务。本文将介绍如何使用Cascade-RCNN模型实现棒球比赛中Dragons队和Lions队队员以及裁判的自动识别…

张小明 2026/1/14 2:31:38 网站建设

网站建设实训主要收获及体会官方网站下载12306

当你更换手机时,数据迁移是一个重要步骤。我们相信你不希望丢失任何信息。那么,你知道如何将数据从一加手机传输到一加手机吗?过去,将数据从旧手机迁移到新手机通常是一个繁琐且耗时的过程。然而,随着先进工具的发展&a…

张小明 2026/1/14 2:17:25 网站建设

wordpress图站网站关于我们怎么做单页面模板

本文详解如何将树莓派打造成家庭服务器,运行各种实用服务,并实现远程访问。 前言 想搭建家庭服务器,但又觉得NAS太贵、旧电脑功耗太高? 树莓派是一个很好的选择: 价格便宜(几百块) 功耗超低(5-10W) 体积小巧(手掌大小) 性能够用(日常服务绑绑有余) 今天就来把树…

张小明 2026/1/14 2:21:57 网站建设