日常学习--20240713

1、字节流转字符流时,除了使用字节流实例作为参数,还需要什么参数?

还需要使用字符编码作为参数,保证即使在不同平台上也是使用相同的字符编码(否则会使用平台默认的编码,不同平台默认编码可能不一样)

2、在使用spring service调用方法A时,A上面没有事务标记;同时又在A的内部调用了方法B,B上面有事务标记且其事务传播属性为默认,则方法A、B上开启事务的情况是什么样的?

        正常来说因为A上没有事务标记,即A上不开启事务;而B上因为有事务标记,而且事务传播属性为默认,即调用者有事务就假如,没有则自己开启一个事务,所以B上一般是会开启事务的;

        但是因为spring的声明式事务是通过springAOP实现的,如果方法A和B在同一个类中,则方法A调用方法B就会是自我调用,而不是通过spring的代理类来调用(即spring声明式事务失效);这种情况下方法A、B都不会开启事务。(解决方案:A、B不在一个类中,或者使用编程式事务替代)

3、集群Tomcat和单例的Tomcat相比在开发过程中需要注意哪些?

集群Tomcat开发注意事项
  1. 时间同步
    • 重要性:集群中所有的服务器需要保持时间同步。时间差不仅会影响session过期判断,还可能导致集群无法正确建立。
    • 实现方式:Linux系统下通常使用ntp协议进行时间同步。可以在每个服务器上设置自动运行脚本,如通过cron任务每天自动同步时间。
  2. Session管理
    • 会话复制:在集群环境下,需要确保用户的session信息能够在不同的Tomcat节点之间正确复制和共享。这通常通过配置Tomcat的session复制功能来实现。
    • Serializable接口:所有放在session里的对象都需要实现java.io.Serializable接口,以便能够在不同节点之间进行序列化和反序列化。
    • 监听器与过滤器:可能需要在web应用中添加特定的监听器或过滤器来处理session的创建、销毁和迁移等事件。
  3. Web应用配置
    • web.xml修改:在web应用的web.xml文件中增加<distributable/>标签,以标记该应用支持分布式部署。
    • Context配置:在Tomcat的server.xml文件中配置<Context>标签时,可能需要为应用指定特定的部署路径、资源访问控制等参数。
  4. 网络配置
    • IP地址获取:确保每台服务器上的Tomcat进程能够获取到非127.0.0.1的IP地址,以便在集群中正确通信。这可能需要修改/etc/hosts文件或网络配置。
    • 端口配置:避免不同Tomcat节点之间的端口冲突,特别是HTTP和AJP等常用端口。
  5. 性能与资源优化
    • 负载均衡:集群Tomcat可以通过负载均衡器来分发用户请求,以提高系统性能和可用性。需要根据实际业务需求配置合适的负载均衡策略。
    • 内存与线程:合理配置Tomcat的内存大小和线程池参数,以应对高并发请求。避免因为资源不足导致系统崩溃或响应缓慢。
  6. 故障恢复与容错
    • 冗余部署:在集群中部署多个Tomcat节点可以提高系统的容错能力。当某个节点出现故障时,其他节点可以接管其工作负载。
    • 监控与日志:建立完善的监控和日志系统,以便及时发现并处理集群中的异常情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值