- 博客(27)
- 收藏
- 关注
原创 4层负载均衡和7层负载均衡
*更多的错误和故障可能:**七层负载均衡的复杂度和难以维护性也增加了系统中的错误和故障可能,例如可能会出现会话状态的丢失、应用程序的崩溃等问题,这增加了系统的复杂度和难以维护性。**更多的配置和设置:**七层负载均衡需要更多的配置和设置,例如需要配置不同的规则和策略来处理不同的流量类型和会话状态,这增加了系统的复杂度和难以维护性。:七层负载均衡需要对应用层的知识和技术有深入的理解,例如需要了解应用程序的逻辑和行为,以便实现合适的负载均衡策略,这增加了系统的复杂度和难以维护性。因此,成本也增加了。
2024-07-12 14:59:08
1211
1
原创 Oracle存储字段类型
BINARY_FLOAT 和 BINARY_DOUBLE 数据类型是 Oracle 中的二进制浮点数类型,用于存储小数。推荐使用 NUMBER 或 DECIMAL 数据类型来存储小数,因为它们可以指定精度和刻度,避免精度问题。Oracle 中有多种数据类型,可以存储不同的数据类型。NUMBER 数据类型是 Oracle 中最常用的数字数据类型,可以存储小数。NUMBER 数据类型是 Oracle 中最常用的数字数据类型,易于维护和管理。总之,选择合适的数据类型来存储小数,取决于具体的应用场景和需求。
2024-05-16 19:07:13
1712
原创 java中小数处理
精度:BigDecimal 类可以提供任意精度的小数表示,而 float 和 double 数据类型的精度是固定的(约 6-7 位十进制数字和 15-16 位十进制数字)。可以使用 String 数据类型来表示小数,并使用 Float.parseFloat() 或 Double.parseDouble() 方法将其转换为浮点数。注意:float 数据类型的精度约为 6-7 位十进制数字,而 double 数据类型的精度约为 15-16 位十进制数字。// 舍入到 2 位小数。// 设置精度为 2 位小数。
2024-05-16 15:54:10
2351
原创 正向代理和反向代理
反向代理隐藏了目标服务器的真实身份,客户端只能看到代理服务器的身份,而代理服务器负责将请求路由到多个后端服务器上,以提供负载均衡、缓存、安全过滤等功能。正向代理隐藏了客户端的真实身份,目标服务器只能看到代理服务器的身份,因此可以用于突破访问限制、隐藏客户端真实 IP 地址等场景。客户端向反向代理发送请求,然后反向代理将请求转发给后端的目标服务器,再将目标服务器的响应返回给客户端。客户端向代理服务器发送请求,然后代理服务器将请求转发给目标服务器,并将目标服务器的响应返回给客户端。
2024-04-12 17:15:21
523
原创 为什么要在内网做多次转发
*安全性:**通过在内网进行多次转发,可以将内部系统与外部网络隔离,提高了整体系统的安全性。内网通常受到更严格的访问控制和监控,可以减少外部攻击的可能性。**性能优化:**在内网进行多次转发可以减少外部请求对内网系统的直接冲击,避免外部请求直接访问内网资源,从而减轻服务器的压力,提高系统的性能和稳定性。**代理服务:**内网多次转发也可以用于设置代理服务,通过代理服务对外部请求进行过滤和处理,保护内网资源不受非法访问或恶意攻击。
2024-03-14 20:38:04
410
原创 apache
该模式是由线程来监听客户的连接。在上面的示例中,错误日志会被记录在 /var/log/apache2/error.log,而访问日志则会被记录在 /var/log/apache2/access.log,采用了 combined 格式。在上面的示例中,所有访问 http://www.example.com 的请求都会被重定向到 https://www.example.com。值得注意的是,为了确保安全性,建议定期审查 Apache 的配置文件,并采取必要的安全措施,比如限制目录访问权限、禁用不必要的模块等。
2024-03-14 10:39:28
911
原创 oracle数据库序号
通过 employee_seq.NEXTVAL 可以获取序列的下一个值,从而为 employee_id 字段赋予一个唯一的值。在这个表中,employee_id 是主键字段,我们可以使用序列来为 employee_id 字段生成唯一的标识。上述语句创建了一个名为 employee_seq 的序列,从 1 开始递增,每次递增值为 1,而且不会进行缓存。这样,每次插入新的员工信息时,employee_id 字段都会自动获得一个唯一的值,保证数据的完整性和唯一性。
2024-03-13 17:12:04
672
原创 良好的编码习惯
通过持续实践这些良好的代码习惯,开发者可以提高自己的编码效率和代码质量,同时也有助于提升整个团队的协作效率和项目的成功率。不要忽略可能出现的异常情况,即使是在认为“这里不可能出错”的代码段也应该进行适当的错误处理。分支管理:遵循一定的分支策略,如 Git Flow 或 GitHub Flow,以保持项目的组织性和可管理性。例如,如果可以使用简单的条件表达式替代复杂的逻辑判断,那么应该优先考虑简单的方式。持续学习新的编程技术和最佳实践,不断地对现有代码进行重构和优化,以提高代码质量和性能。
2024-03-11 16:44:37
597
1
原创 linux命令
rsync -avz source_directory user@host:destination_directory 高效同步本地和远程目录。docker run -d --name container_name image_name 运行Docker容器。chown user:user file_or_directory 更改文件或目录的所有者。cp -r source_directory target_directory 复制目录。mv old_name new_name 重命名或移动文件/目录。
2024-03-11 16:39:06
377
1
原创 hash常用
4.HMAC(Hash-based Message Authentication Code):HMAC是一种基于哈希算法的消息认证码,结合了哈希算法和密钥,用于验证消息的完整性和真实性,常用于网络通信中的身份认证和数据完整性验证。常见的哈希算法包括MD5、SHA-1、SHA-256等。2.输入唯一性:对于不同的输入,哈希算法应该生成唯一的输出,即使输入数据只有微小的改动,其哈希值也应该大不相同。5.碰撞概率低:好的哈希算法应当有很低的碰撞概率,即不同的输入数据生成相同的哈希值的可能性非常小。
2024-03-09 11:23:08
756
1
原创 linux、windows
总的来说,针对不同的应用场景和需求,Linux 和 Windows 在性能方面都有各自的优势,选择适合自己需求的系统,并通过优化来提高系统性能是非常重要的。系统设计和优化:Linux 在设计上更加注重服务器和高性能计算领域的优化,而 Windows 更注重桌面应用和游戏领域的优化。Windows:Windows 也有很好的硬件利用率,尤其在桌面环境下易用性较好,对于游戏和一般办公应用有良好的性能支持。使用高效的编程语言和库:选择合适的编程语言和库来开发应用程序,以提高系统的性能。
2024-03-08 17:31:26
391
1
原创 redis、mongodb、elasticsearch
安全与权限控制:使用 Elasticsearch 提供的安全特性,实现对数据的访问权限控制、用户认证和角色管理,确保数据的安全性和隐私保护。数据备份与恢复:利用 Elasticsearch 的快照和恢复功能,对索引数据进行定期备份,并在需要时恢复数据,保证数据的安全性和可靠性。地理位置搜索:利用 Elasticsearch 的地理信息功能,存储和搜索地理位置信息,实现地理位置相关的搜索和分析功能。搜索性能优化:结合具体的查询需求和数据量,使用合适的索引策略、查询优化和分片配置,优化搜索性能,提高搜索效率。
2024-03-08 14:35:01
454
3
原创 大型分布式系统实践和主流微服务框架理解
**Spring Cloud:***Spring Cloud 提供了一整套微服务解决方案,包括服务注册与发现(Eureka、Consul)、服务调用(Feign、RestTemplate)、断路器(Hystrix)、API 网关(Zuul、Spring Cloud Gateway)等组件,支持快速搭建和管理微服务架构。***Kubernetes:***作为容器编排引擎,Kubernetes 提供了强大的容器集群管理功能,支持自动化部署、扩展和管理容器化应用程序,是构建微服务架构的理想选择。
2024-03-08 14:25:07
391
1
原创 elasticsearch性能优化
合理配置段缓存:通过调整 index.merge.scheduler.max_thread_count、indices.memory.index_buffer_size、indices.memory.min_index_buffer_size 等参数来优化段缓存的性能。合理设置分片和副本:根据数据量和集群规模设置合适的分片数量和副本数量,避免分片过多或过少。精简映射:避免过多的字段映射,只保留必要的字段,并根据字段类型设置合适的数据类型。定期优化:定期分析性能指标,根据实际情况调整优化策略,持续改进性能。
2024-03-08 11:50:21
409
1
原创 消息中间件
通过使用消息中间件,可以更好地构建可靠、高效的分布式系统,实现系统之间的异步通信和解耦。消息队列(Message Queue):消息中间件通过消息队列来存储和传递消息,保证消息的可靠性和顺序性。解耦:通过消息中间件,生产者和消费者之间解耦,避免直接依赖,提高系统的灵活性和可维护性。异步通信:生产者和消费者之间的通信是异步的,提高系统的响应速度和吞吐量。异步任务处理:将耗时的任务放入消息队列中异步处理,提高系统的响应速度。日志收集:通过消息中间件收集和处理系统产生的日志,方便监控和分析。
2024-03-08 11:35:31
360
1
原创 redis常见性能优化
示例:根据实际需求选择合适的数据结构,如字符串、哈希、列表、集合等。示例:使用 Redis 监控工具如 Redis 命令行客户端、RedisInsight 等进行性能监控和调优,及时发现和解决性能问题。示例:尽量减少单个命令的调用次数,考虑使用批量操作命令如 MSET、MGET、DEL 等,减少网络开销和命令执行时间。示例:根据数据重要性和系统要求选择合适的持久化方式,可以是 RDB 快照、AOF 日志或混合模式。示例:考虑使用 Redis 集群或分片技术,将数据分布在多个节点上,提高性能和可伸缩性。
2024-03-08 11:31:08
418
1
原创 Oracle性能优化
当优化 Oracle 数据库性能时,优化 SQL 查询是至关重要的一部分。定期收集表的统计信息,以便优化查询执行计划。根据实际需求调整 SGA、PGA 的大小以提高性能,确保数据库有足够的内存支持查询和事务处理。避免在 SQL 中硬编码参数值,使用绑定变量可以提高 SQL 语句的重用性和性能。尽量避免嵌套子查询或重复执行相同的子查询,考虑优化为 JOIN 或其他方式。调整数据库连接池的大小和管理方式,以适应并发连接数的需求。监控长时间运行的查询和事务,及时发现性能问题并进行优化。
2024-03-08 11:11:33
477
1
原创 使用Socket编程、NIO和多线程技术来构建一个简单的聊天应用
服务器:使用ServerSocketChannel和Selector处理来自多个客户端的连接请求和消息,以非阻塞方式读写数据。客户端:使用SocketChannel与服务器建立连接,并在独立的线程中监听来自服务器的消息。客户端可以发送消息到服务器,服务器再将消息广播给所有客户端。多线程:服务器利用NIO的非阻塞特性处理多个连接,而客户端使用一个额外的线程来异步地接收来自服务器的消息。客户端:通过一个单独的线程监听服务器发来的消息,并在主线程中读取用户输入,发送给服务器。
2024-03-08 10:54:07
400
1
原创 Socket、Nio、多线程编程
在Java中,Socket编程、NIO(非阻塞I/O)和多线程编程是实现高效网络应用的关键技术。NIO是Java提供的一种新的I/O API,支持非阻塞模式,使得程序可以同时处理多个通道(Channel)上的I/O操作。多线程与并发编程:掌握Java中的多线程编程技巧和java.util.concurrent包中的并发工具类使用。在实际开发中,经常需要将Socket编程、NIO和多线程编程结合起来使用,以实现高性能的网络服务。利用NIO的非阻塞模式和选择器来管理多个客户端连接,提高应用的响应能力和吞吐量。
2024-03-08 10:13:56
391
1
原创 tomcat和nginx服务器的常用配置
Tomcat和Nginx是两种常见的Web服务器,它们经常被用在一起,其中Nginx作为反向代理服务器和负载均衡器,而Tomcat则处理具体的Java应用程序。Tomcat的主要配置文件是conf/server.xml,其中包含了关于服务端口、连接器(Connector)、虚拟主机等的配置。Nginx的主要配置文件是nginx.conf,通常位于/etc/nginx/或/usr/local/nginx/conf/目录下。根据具体的应用场景和需求,可能还需要进行更多的配置和优化。
2024-03-08 09:57:48
475
1
原创 oracle数据库千万数据表设置自动分区sql
Oracle提供了一种名为“间隔分区”(Interval Partitioning)的功能,允许自动基于指定的间隔创建新的分区。起始分区(在示例中是p_before_2023)是必需的,它定义了第一个分区的边界,并且Oracle将从这个点开始自动创建后续的分区。使用间隔分区时,所有自动创建的分区将采用系统生成的名称,但你也可以通过ALTER TABLE命令手动重命名分区。当数据插入到表中且该数据所属的分区不存在时,Oracle会根据间隔设置自动创建新的分区。
2024-03-08 09:48:33
659
1
原创 oracle百万数据表
在这个例子中,根据region_id字段的值,表orders被划分为四个分区:p_north、p_south、p_east和p_west。在这个例子中,根据order_date字段的值,表orders被划分为四个分区:p2020、p2021、p2022和p2023。在创建分区表之前,请确保你的Oracle版本支持所需的分区类型,并考虑好分区策略对于未来数据增长和维护的影响。Oracle还支持更复杂的分区策略,如复合分区(结合了两种或以上的分区方法),可以根据具体需求进行设计。
2024-03-08 09:42:04
981
1
原创 【无标题】
*阻塞:**同步任务会阻塞程序的执行,直到当前任务执行完成才会执行下一行代码;**执行方式:**同步任务按照顺序执行,每一行代码都会等待上一行代码执行完毕后再执行;事件处理:当绑定事件处理函数时,程序会继续执行后续代码,直到事件触发后才执行事件处理函数。异步函数调用:当调用一个异步函数时,程序会继续执行后续代码,而不会等待异步函数执行完毕。函数调用:当调用一个函数时,程序会等待函数执行完毕后再继续执行下一行代码。数据计算:当进行复杂的数据计算时,程序会一直执行计算过程,直到计算完成。
2023-09-25 15:38:16
51
1
原创 sessionStorage使用
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + S
2023-06-08 15:16:29
296
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人