- 在服务无法启动得时候,需要首先考虑得问题就是:jar包冲突的问题,这个时候jar包冲突得话,会在一些类无法自动的导入进去。
- 凡是报错due to a StackOverflowError. Possible root causes include a too low就是因为jar包的相互依赖出现的问题,这个其实就是jar包冲突 。
- 再hibernate的映射文件配置的时候,不能将映射文件放入到依赖的jar包当中,因为无法扫描到。
- eureka如何保证他的高可用呢?其实就是相互注册服务,因为自己的服务在自己的注册中心是可以见的,那么只需要注册上另外机器的服务即可。
- 在注册中心服务端,需要添加注释为:@EnableEurekaServer,标志此工程是一个enreka server,负责提供注册中心。
- 在客户端,需要去将自己服务端注册到注册中心,那么需要注释:@EnableDiscoveryClient,标志此工程需要去发现服务。
- Ribbon是一个基于客户端的负载均衡器。而nginx是基于服务器端的负载均衡器。
- 服务器端负载均衡:例如Nginx,通过Nginx进行负载均衡,先发送请求,然后通过负载均衡算法,在多个服务器之间选择一个进行访问;即在服务器端再进行负载均衡算法分配。客户端负载均衡:例如spring cloud中的ribbon,客户端会有一个服务器地址列表,在发送请求前通过负载均衡算法选择一个服务器,然后进行访问,这是客户端负载均衡;即在客户端就进行负载均衡算法分配。
- Ribbon其实就是通过restTemplate来实现远程调用的,底层使用的是okhttp,负载均衡就是依靠注释@LoadBalanced实现的。
- 远程接口的调用要是能够像调用本地的服务一样调用那该多好,所以就有了feign+ribbon。使用的方式为:
-
@FeignClient(value = "MANAGER_CMS") public interface TestFeign { // 通过feign远程调用接口(可见feign也是集成了spring mvc) @GetMapping("/cms/page/get/{id}") public CmsPage getCmsPageById(@PathVariable("id") String id); }
调用者:
-
@EnableFeignClients // 标识FeignClient,开启后会扫描所有FeignClient的bean @SpringBootTest @RunWith(SpringRunner.class) public class TestController { @Autowired TestFeign testFeign; // 其实就是个代理对象 @Test public void findTeachplanList(){ // 开始远程调用 CmsPage sssss = testFeign.getCmsPageById("sssss"); } }
-
ES的数据节点和主节点,数据节点就是专存储数据,主节点就是专门进行管理分节点,不存储数据。
-
ES的索引如何与数据库同步呢?可以使
工作常见问题汇总
本文汇总了Java开发中遇到的一些常见问题,包括jar包冲突、Eureka高可用配置、Ribbon与Nginx的负载均衡区别、ES数据同步、HLS工作原理等。还涉及了异常处理、权限认证、分布式事务、定时任务、锁机制等多个技术点,是开发者日常工作的实用参考。
摘要由CSDN通过智能技术生成