赞
踩
需要选择适合项目的微服务通信框架,如Dubbo、Spring Cloud或gRPC Feign RestTemplate 等。调研方式可以是通过官方文档、技术交流社区和开源项目等途径了解各个框架的优缺点,并根据项目需求进行选型。
为了更好地管理微服务,需要将每个服务打包成容器镜像,如Docker等。调研方式可以是通过官方文档、技术交流社区和实践案例等途径了解Docker的使用方法和最佳实践,并学习如何将Spring Boot应用打包成Docker镜像。
微服务架构中的服务数量众多,需要通过服务注册与发现来定位和调用其他服务。调研方式可以是通过官方文档、技术交流社区和开源项目等途径了解ZooKeeper、Eureka或Nacos 等服务注册与发现框架的原理和使用方法。
在微服务架构中,需要保证事务的一致性和可靠性。调研方式可以是通过官方文档、技术交流社区和开源项目等途径了解Seata、Atomikos或Spring Cloud Transaction等分布式事务框架的原理和使用方法。
微服务架构中的系统复杂度较高,需要对各个服务的性能和异常情况进行监控和日志管理。调研方式可以是通过官方文档、技术交流社区和开源项目等途径了解Prometheus、Grafana、Logstash或Kibana等监控和日志管理工具的原理和使用方法。
Api网关是微服务架构中的重要组件 Zuul \ Gateway 等 我会部署一个Api网关 所有的外部请求都会先经过API 网关 再由Api 网关路由到相应的服务器. 以上是将SpringBoot项目演进到微服务架构过程中需要调研和落地的一些技术,调研方式包括官方文档、技术交流社区和实践案例等途径。在调研过程中需要根据项目需求和项目人员进行选型,并结合实际情况进行实践和调整。
像Zipkin、Jaeger、SkyWalking等分布式追踪系统可以帮助你追踪一个请求在系统中流转的情况,包括每个部分的耗时。这些系统通常需要你在代码中集成相关的库,然后它们就可以自动收集和上报追踪数据。
应用性能管理(APM)工具,如New Relic、Dynatrace、AppDynamics等,可以提供全面的性能监控和分析,包括接口耗时、数据库查询耗时、外部服务调用耗时等。
像JProfiler、YourKit等Profiler工具可以帮助你分析Java应用的性能,包括方法调用的耗时。这些工具通常需要你在启动Java应用时加入相关的参数,然后它们就可以收集和展示性能数据。
如果你的应用是Spring Boot应用,那么你可以使用Spring Boot Actuator的/metrics端点来查看一些基本的性能数据,包括接口的请求次数、平均耗时等。
如果你的应用将详细的日志(包括接口调用的开始时间和结束时间)输出到文件或者发送到日志服务,那么你可以使用日志分析工具,如ELK(Elasticsearch、Logstash、Kibana)堆栈,来分析日志,从而得到接口的耗时
排查接口执行慢,可以从以下角度考虑:
可以基于监控工具进行全链路排查,查看QPS、TPS、瞬时峰值,用户规模等。之后在针对性的分析具体的系统流程。之后结合工具 JProfiler(一般全链路监控工具是有集成的)之后就可以看到具体的内存高的代码片段,在做分析和验证处理
Nacos作为注册中心,通过心跳机制来检测服务实例是否存活。每一个注册到Nacos的服务实例,都会定期向Nacos发送心跳包,表明它们的存在。默认情况下,这个心跳间隔是5秒,也就是说每5秒,服务实例就会向Nacos发送一次心跳。
如果Nacos在15秒(默认配置,也就是3个心跳周期)内没有收到某个服务实例的心跳,那么Nacos会认为这个服务实例已经下线或者崩溃,然后从服务列表中移除这个服务实例。
这个心跳间隔和超时时间都可以在Nacos的配置中修改。如果你的服务实例在高负载下运行,或者网络状况不稳定,可能需要增大这些值以避免误判。
需要注意的是,这个机制只能检测服务实例是否能够正常响应心跳,不能判断服务实例是否能够正常提供服务。如果一个服务实例虽然能够发送心跳,但是由于某种原因无法正常处理请求,那么这个服务实例仍然会被Nacos认为是存活的。在这种情况下,可能需要额外的健康检查机制来判断服务实例的状态。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。