![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
架构之路
文章平均质量分 78
贺公子之数据科学与艺术
科技向善,拥抱开源,要用技术的影响力来领导人,而不是威权和职位!
展开
-
【架构之路】行技术选型
性能需求:根据项目的性能需求,考虑选择适合的技术。根据功能需求,选择适合的技术栈,例如前端框架、后端语言、数据库等。可扩展性:考虑到项目的长期发展,需要选择具有良好可扩展性的技术。技术生态和社区支持:考虑选择具有成熟技术生态和强大社区支持的技术,以便能够获取到大量的资源和帮助,同时也能够从社区中获得更新和改进。例如,如果团队对某种技术已经有深入了解,可以选择使用该技术来提高开发效率和质量。例如,如果项目预算有限,可以选择成本较低的开源技术或云平台来降低开发和运维成本。原创 2024-04-29 17:52:53 · 194 阅读 · 0 评论 -
java 监听 sqlserver 数据库的变化
来定时查询数据库变化。首先,我们初始化数据库连接,并执行初始查询语句获得初始数据。然后,使用定时器每隔一段时间执行查询语句获取最新的数据库数据,并进行处理。在程序运行一段时间后,我们关闭连接并取消定时器。在Java中,可以使用JDBC和JDK提供的API来监听SQL Server数据库的变化。欢迎关注微信公众号:数据科学与艺术 作者WX:superhe199。在上面的示例中,我们使用。原创 2024-04-12 08:23:00 · 310 阅读 · 0 评论 -
【如何从CS架构客户端获取详尽数据】
服务器接收到请求消息后,根据消息内容查询数据库或执行相应的业务逻辑,获取详尽的数据,并将数据封装为响应消息发送给客户端。使用日志和事件记录:客户端可以记录各种事件和操作的日志,包括用户交互、网络请求、错误和异常等。使用网页爬虫技术:客户端可以通过模拟浏览器的行为来访问网页,并从网页中提取所需的详尽数据。访问服务器端API:客户端可以通过与服务器端的API通信来请求所需的详尽数据。使用数据库查询:如果客户端与一个数据库相连,您可以使用查询语言如SQL来向数据库发送查询请求来获取详尽的数据。原创 2024-04-12 08:22:44 · 319 阅读 · 0 评论 -
HTTPS通信过程
服务器的加密组件内容是从接收到的客户端加密组件内筛选出来的。报文中包含客户端支持的 SSL 的指定版本、加密组件(Cipher Suite)列表(所使用的加密算法及密钥长度等)。2.client和server之间协商加密算法,用公钥(服务器发过来的)加密随机数串(共享密钥)发给服务器,协商加密技术成功。步骤 4: 最后服务器发送 Server Hello Done 报文通知客户端,最初阶段的 SSL 握手协商部分结束。3.SSL连接建立,受SSL保护,开始加密通信,交换HTTP报文阶段(共享密钥加密)。原创 2024-04-10 10:13:31 · 311 阅读 · 0 评论 -
【缓存库来存储数据】
在Java中,可以使用各种缓存库来存储数据。其中最常见的缓存库是Ehcache和Guava Cache。这样,在缓存中不存在数据或数据已过期时,会自动调用回调函数从数据库中获取最新的数据并将其存入缓存。对于Guava Cache,你可以使用。如果数据不存在或已过期,你可以在。原创 2024-04-07 08:54:03 · 281 阅读 · 0 评论 -
数据驱动:从方法到实践
1.随着技术的发展,企业竞争出现白日化现象,加之目前互联网各种技术的不停发展,互联网行业出现大量的数据,导致新的互联网公司交与传统公司相比较出现数据精准营销现象发生。2.通过在平台中采集使用用户产生的大量数据来加之以分析,进行网页页面,APP界面进行各个元素的点击分析对比,判断用户界面设计,商品主要窗口商品的摆放,以及用户在每个页面浏览停留有的时间,来逐步提升公司产品的运营能力,增加公司产品的销售量。原创 2024-03-05 08:48:58 · 1536 阅读 · 0 评论 -
【程序员如何选择职业赛道】
程序员的职业赛道就像是一座迷宫,有前端的美丽花园,后端的黑暗洞穴,还有数据科学的神秘密室。准备好探索这个充满挑战和机遇的迷宫了吗?快来了解如何选择职业赛道吧!选择职业赛道是程序员职业发展的重要决策之一。以下是程序员在选择职业赛道时可以考虑的一些方向。选择职业赛道是一个个人化的决策过程。程序员需要通过自我评估、市场分析和借鉴他人的经验,综合考虑自身条件和长期目标,做出最适合自己的选择。最重要的是,选择职业赛道要与自己的兴趣和激情相匹配,才能在工作中获得更大的满足和成就感。原创 2024-03-05 08:44:39 · 949 阅读 · 0 评论 -
【案例分析之重构方案】
通过重新构建架构,可以解决远程无人干预情况下的升级和调试需求。采用可靠的技术选型和合适的架构设计,确保系统具有稳定性、连续性和安全性,并能满足使用场景的需求。技术委员会的管理和管控确保了技术的正确使用和发展。原创 2024-03-04 11:59:12 · 905 阅读 · 0 评论 -
Rest 和微服务的要点
它是一种无状态的、可缓存的、可伸缩的、可扩展的、轻量级的通信协议。需要注意的是,使用REST作为微服务之间的通信协议并不是唯一的选择,还有其他协议和技术,如GraphQL、MQTT等。微服务架构是一种灵活、可扩展和可靠的架构风格,可以提高开发速度和质量,并促进团队间的协作和创新。灵活性:由于微服务之间使用REST通信,可以使用不同的编程语言和技术栈来实现不同的微服务,增加了系统的灵活性和技术选型的自由度。明确的API接口、独立的数据存储和业务逻辑、可独立部署和扩展、可通过HTTP进行通信、松耦合和高内聚。原创 2024-03-04 10:27:39 · 799 阅读 · 0 评论 -
【企业高管的职责】
例如,你可以提到你在一个项目中遇到了挑战,但通过反思和与团队成员的讨论,你学会了如何更好地应对类似的情况,并在下次取得了更好的成果。此外,准备好回答关于你的职业目标、团队合作经验、解决问题的能力等常见问题,并在面试中展示你的沟通技巧和逻辑思维能力。例如,你可以提到你在一个紧迫的项目期限下工作过,但通过制定清晰的计划、与团队成员协作和适时寻求帮助,你成功地应对了压力并完成了任务。了解并应用当前行业的技术趋势,可以帮助公司保持竞争优势,创新产品和服务,提高运营效率,拓展市场份额,满足顾客需求,实现可持续发展。原创 2024-02-21 08:14:45 · 911 阅读 · 0 评论 -
【软件架构设计-业务逻辑和技术分离】
关于架构这个概念很难给出一个明确的定义,也没有一个标准的定义。硬是要给一个概述,我认为架构就是对系统中的实体以及实体之间的关系所进行的抽象描述。架构始于建筑,是因为人类发展(原始人自给自足住在树上,也就不需要架构),分工协作的需要,将目标系统按某个原则进行切分,切分的原则,是要便于不同的角色进行并行工作。原创 2024-02-19 10:54:28 · 1126 阅读 · 0 评论 -
当系统遇到性能瓶颈时,如何进行性能分析和优化
这可能涉及到检查系统的日志文件、跟踪系统的调用流程,以及使用代码分析工具来找出慢速代码或资源耗尽的问题。Profilers(性能分析器):可以帮助你监测程序的执行时间,找出执行时间长的函数或方法,从而定位慢速代码的问题。Logging tools(日志工具):通过分析系统的日志文件,可以获取系统的运行状态和潜在的性能问题。一旦找到性能瓶颈的源头,我会考虑采取不同的优化策略来改善系统的性能。这可能涉及到监控系统的关键指标,如响应时间、吞吐量等,并与系统的预期性能进行比较。原创 2024-02-20 08:39:45 · 554 阅读 · 2 评论 -
微服务架构的理解,以及它的优缺点
每个服务都可以独立部署、管理和扩展,通过定义明确的接口进行通信,并以弹性和可靠性为基础。可替代性:由于每个服务都是相对独立的,可以选择性地使用不同的技术栈和编程语言。此外,如果服务之间有复杂的依赖关系,可能会增加系统的复杂性和性能开销。弹性和容错性:由于每个服务都是自治的,即使其中一个服务发生故障或不可用,其他服务仍然可以正常工作。可扩展性:由于每个服务都是自治的,可以根据需求独立扩展每个服务。运维复杂性:微服务架构中可能存在大量的服务,每个服务都需要独立进行部署、监控和管理。这增加了运维的复杂性和成本。原创 2024-02-20 08:38:58 · 353 阅读 · 0 评论 -
在设计大型系统时,系统的安全性和数据保护
综上所述,考虑系统的安全性和数据保护涉及多个方面,包括访问控制、加密、网络安全、安全审计、数据备份和恢复等。通过综合应用这些措施,可以提高系统的安全性和数据保护水平。原创 2024-02-20 08:38:37 · 824 阅读 · 0 评论 -
用工具或者技术进行数据库性能调优
可以通过使用Prometheus和Grafana来监控数据库的性能指标,如查询响应时间、TPS(每秒事务处理数)、QPS(每秒查询数)等,并通过图表展示分析结果。比如pt-query-digest可以帮助分析慢查询日志,pt-stalk可以在出现性能问题时自动收集诊断信息,pt-summary可以提供服务器的性能概要信息等。以上只是一些常见的数据库性能调优技术和工具,实际的调优过程会更加复杂,需要根据具体的业务需求和数据库系统进行调整。将大型表分成更小的分区,可以减少查询的范围,提高查询性能。原创 2024-02-20 07:47:31 · 743 阅读 · 0 评论 -
分布式数据库的使用经验和感受
总的来说,分布式数据库是处理大规模数据和高并发访问的有效解决方案,具备高可用性、可伸缩性和容错性等优势。然而,使用分布式数据库也面临一些挑战,如数据一致性和负载均衡等问题,需要仔细规划和设计。原创 2024-02-20 07:45:04 · 325 阅读 · 0 评论 -
【在处理大量数据时,如何设计数据库架构以确保数据的可扩展性和可维护性】
总之,设计可扩展和可维护的数据库架构需要考虑多个方面,包括数据拆分、复制、索引、缓存和分布式等技术的选择和应用。通过合理的架构设计和维护策略,可以提高大数据处理的效率和可靠性。原创 2024-02-19 17:43:55 · 902 阅读 · 0 评论 -
【常用的分布式中间件作用和原理】
RabbitMQ的原理是将消息存储在队列中,并通过交换机将消息路由到不同的队列,支持多种消息模式和灵活的消息路由。总之,RabbitMQ通过提供一个可靠的消息传递机制,支持多种消息模式和灵活的消息路由,使得应用程序之间可以进行可靠的异步通信。Kafka的原理是通过将消息存储在分布式的日志中,并允许多个消费者同时读取和处理这些消息,支持消息的持久化和高可用。命令解析与执行的代码主要包括命令的解析、参数的验证、命令的执行和结果的返回等。网络通信的代码包括接收客户端的命令、解析命令参数、执行命令并返回结果等。原创 2024-02-19 17:43:39 · 932 阅读 · 0 评论 -
【设计一个分布式容错性和可恢复性的系统】
总而言之,通过考虑容错性和可恢复性的设计原则、使用合适的技术和工具,可以提高分布式系统的稳定性和可靠性,减少故障对系统的影响。原创 2024-02-19 17:30:37 · 346 阅读 · 0 评论 -
【边缘存储-云端计算】
*边缘存储就是把数据直接存储在数据采集点或者靠近的边缘计算节点中,例如MEC服务器或CDN服务器,而不需要将数据通过网络即时传输到中心服务器(或云存储)的数据存储方式。边缘存储一般采用分布式存储,也称为去中心化存储。下面通过几个案例来说明:1、在安防监控领域,智能摄像头或网络视频录像机(NVR)直接保存数据,即时处理,不需要将所有数据传输至中心机房再处理。原创 2024-01-28 13:09:12 · 992 阅读 · 0 评论 -
外部配置文件和Class打包到jar 然后重新启动java -jar
一.将DeviceDataService.class和DeviceDataPushTOSEventListener.class替换到jar内部。我这边以bpvs-backend-2.0.0-SNAPSHOT.jar和application-dev.properties配置文件为例。二、优先加载外部的配置文件application-dev.properties,启动jar应用。步骤1:解压原始bpvs-backend-2.0.0-SNAPSHOT.jar。步骤2:替换或添加class文件。原创 2024-01-18 14:19:42 · 595 阅读 · 0 评论 -
史上最全:TCP三次握手原因、过程、失败以及不采用三次握手的后果
TCP介绍原创 2022-06-10 19:19:06 · 1256 阅读 · 0 评论 -
SpringCloud-Gateway
SpringCloud-Gateway原创 2022-05-16 19:59:33 · 264 阅读 · 0 评论 -
2021-09-16Sharding 分片模式
Sharding 分片模式Sharding 分片模式将一个数据存储到一组水平分区或碎片。存储和访问大量数据时,这个模式可以提高可扩展性。背景和问题由一个单一的服务器托管的数据存储区可能会受到以下限制:存储空间。一种数据存储为一个大型云应用可以预期含有数据量巨大,可以随着时间的推移显著增加。服务器通常提供的磁盘存储仅是有限的,但它可以是能与较大的取代现有的磁盘,或者添加另外的磁盘的机器作为数据量的增加。然而,由此,不能够容易地增加一个给定的服务器上的存储容量的系统最终将达到一个硬限制。计算资源。云原创 2021-09-16 14:15:45 · 170 阅读 · 0 评论 -
消息队列
消息队列中间件、分布式面向对象中间件和事务处理中间件等。 消息队列服务是一种松耦合的分布式应用集成形式。发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候再将消息转发给接收者。这种模式下,发送和接收是异步的,发送者无需等待;二者的生命周期未必相同;发送消息的时候接收者不一定运行,接收消息的时候发送者也不一定运行;一对多通信:对于一个消息可以有多个接收者。消息队列中间件最重原创 2017-12-20 14:39:47 · 245 阅读 · 0 评论 -
单例模式(Singleton)
单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处:1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。3、有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了。(比如一个队伍出现了...原创 2017-12-20 14:44:08 · 115 阅读 · 0 评论 -
工作流引擎
a) 设计建模环境:设计建模环境基于GEF架构,以Plugins的思想,实现对图元的自定义扩展能力。b)执行期:普元BPS的执行引擎,即流程定义的执行语义解析、加载和调度的容器,是基于普元专有的专利技术GVM、PVM架构的基础上,通过可插拔的机制,实现对流程模型的执行解析和调度。 资源池。该模式正是为了解决资源频繁分配、释放所造成的问题的。把该模式应用到数据库连接管理领域,就是建立一个数据库连接池,原创 2017-12-20 14:47:23 · 304 阅读 · 0 评论 -
Mysql使用规范
一: 基础规范1、使用InnoDB存储引擎支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高2、推荐使用utf8mb4字符集无需转码,无乱码风险, 支持emoji表情以及部分不常见汉字3、表、字段必须加注释方便他人理解字段意思。4、不在数据库做计算禁止使用存储过程、视图、触发器、Event。在并发量大的情况下,这些功能很可能将数据库拖跨,业务逻辑放到服务层具备更好的扩展性,原创 2017-12-29 15:28:34 · 214 阅读 · 0 评论 -
分布式系统
分布式系统中可横向扩展是一个相当重要的特性,加机器能解决的问题都不是问题。那么如何实现一个能够实现横向扩展的消息队列呢? 我们知道数据库的QPS是一定的,而上层应用一般可以横向扩容,这个时候如果到了双11这种请求突然的场景,数据库会吃不消,那么我们就可以引入消息队列,将每个队数据库的操作写到日志中,由另外一个应用专门负责消费这些日志记录并应用到数据库中,而且就算数据库挂了,当恢复的时候也可以从上次消原创 2017-12-29 16:02:08 · 190 阅读 · 0 评论 -
java的四种线程池
Java通过Executors提供四种线程池,分别为: newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。 newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。原创 2018-01-22 16:09:57 · 183 阅读 · 0 评论 -
linux、mysql、nginx、tomcat 环境下压力测试的主要调试参数
一、linux 系统内核参数 /etc/sysctl.conf文件常用参数 net.core.netdev_max_backlog = 32768 #允许送到队列的数据包的最大数目 net.core.rmem_max = 8388608 #SOCKET读缓存区大小 net.core.wmem_max = 8388608 #SOCKE...原创 2018-03-13 10:49:17 · 317 阅读 · 0 评论 -
Postman 使用方法详解
一、Postman背景介绍用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。今天给大家介绍的这款网页调试工具不仅可以调试简单的css、html、脚本等简单的网页基本信息,它还可以发送几乎所有类型的HTTP请求!Postman在发送网络HTTP请求方面可以说是Chrome插件类产品中的代表...原创 2018-10-18 18:36:36 · 534 阅读 · 0 评论 -
6种负载均衡算法
1、轮询法 将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。2、随机法 通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。由概率统计理论可以得知,随着客户端调用服务端的次数增多,其实际效果越来越接近于平均分配调用量到后端的每一台服务器,也就是轮询的结果。原创 2017-10-11 14:36:05 · 260 阅读 · 0 评论