
软件设计研讨
文章平均质量分 74
小小哭包
1,在云计算,大数据,物联网,人工智能,领域深耕数十年。
2,这四大领域的科技,逐渐成为我们生活和工作的方方面面。
3,未来,这四大领域也将会大放异彩,这是方向,也是大势所趋,更是风口浪尖,有机遇,也有挑战。
4,我个人非常看好这些领域的前景。本人的工作也是跟这些领域密切相关,一直在这些领域垂直深耕多年。
有需要了解的朋友,或者需要软件项目合作的朋友,或者您有好的点子,欢迎咨询,沟通交流哦,一定提供完美的解决方案,让您满意。
展开
-
从入门到熟悉 HTTPS 的 9 个问题
公钥加密的内容只有私钥可以解密,私钥加密的内容只有公钥可以解密。所以如果不小心安装过非权威机构的根证书,比如黑客提供的恶意证书,这时候设备上就多了一个预设的公钥,那么用恶意私钥加密的证书就能被正常解析出来。这里我们引入非对称加密的方式,非对称加密的特性决定了服务器用私钥加密的内容并不是真正的加密,因为公钥所有人都有,所以服务器的密文能被所有人解析。是这样,所以不能明文传递对称秘钥,而且也不能用一个新的对称加密算法来加密原来的对称秘钥,否则新的对称秘钥同样无法传输,这就是鸡生蛋、蛋生鸡的悖论。原创 2024-01-21 17:01:13 · 1403 阅读 · 0 评论 -
读写分离如何在业务中落地?
读写分离是业务开发中常用的技术手段,在面试中也是热点问题,今天我们要讲的是在什么业务场景下需要读写分离,读写分离实现的机制,以及实际生产中应用读写分离要注意的问题。原创 2023-12-14 11:24:55 · 1016 阅读 · 0 评论 -
ServiceMeh:服务网格有哪些应用?
微服务的部署架构中有一个有趣的边车模式,并且基于边车模式,扩展出了 Service Mesh 服务网格的概念。本文我们一起来学习下 Service Mesh 相关的知识。原创 2023-12-13 09:45:37 · 1058 阅读 · 0 评论 -
分布式锁有哪些应用场景和实现?
电商网站都会遇到秒杀、特价之类的活动,大促活动有一个共同特点就是访问量激增,在高并发下会出现成千上万人抢购一个商品的场景。虽然在系统设计时会通过限流、异步、排队等方式优化,但整体的并发还是平时的数倍以上,参加活动的商品一般都是限量库存,如何防止库存超卖,避免并发问题呢?分布式锁就是一个解决方案。原创 2023-12-07 08:42:25 · 1863 阅读 · 0 评论 -
如何在业务中体现 TCC 事务模型?
在分布式系统设计中,随着微服务的流行,通常一个业务操作被拆分为多个子任务,比如电商系统的下单和支付操作,就涉及到了创建和更新订单、扣减账户余额、扣减库存、发送物流消息等,那么在复杂业务开发中,如何保证最终数据一致性呢?原创 2023-12-07 08:39:56 · 1134 阅读 · 0 评论 -
分布式事务有哪些解决方案?
分布式事务是分布式系统中非常重要的一部分,最典型的例子是银行转账和扣款,A 和 B 的账户信息在不同的服务器上,A 给 B 转账 100 元,要完成这个操作,需要两个步骤,从 A 的账户上扣款,以及在 B 的账户上增加金额,两个步骤必须全部执行成功;否则如果有一个失败,那么另一个操作也不能执行。分布式事务的经典应用比如转账扣款,下订单扣库存,新会员送积分等等涉及多个业务共同参与在一个请求中。原创 2023-12-03 10:04:08 · 1110 阅读 · 0 评论 -
ZooKeeper 如何保证数据一致性?
ZooKeeper 如何保证数据一致性?原创 2023-12-02 12:23:37 · 1949 阅读 · 0 评论 -
如何透彻理解 Paxos 算法
Paxos 算法在分布式领域具有非常重要的地位,开源分布式锁组件 Google Chubby 的作者 Mike Burrows 说过,这个世界上只有一种一致性算法,那就是 Paxos 算法,其他的算法都是残次品。Paxos 算法虽然重要,但是也因算法复杂而著名,不过 Paxos 算法是学习分布式系统必需的一个知识点,我们就知难而上,一起来学习下 Paxos 算法。原创 2023-12-02 12:18:55 · 979 阅读 · 0 评论 -
接口中的大事务,该如何进行优化?
接口中的大事务,该如何进行优化?原创 2023-11-28 17:57:29 · 987 阅读 · 0 评论 -
三次输错密码后,系统是怎么做到不让我继续尝试的?
三次输错密码后,系统是怎么做到不让我继续尝试的?转载 2023-11-24 10:57:28 · 1420 阅读 · 0 评论 -
5种主流API网关技术选型,yyds!
5种主流API网关技术选型原创 2023-11-24 10:47:44 · 3326 阅读 · 0 评论 -
图解分库分表
图解分库分表原创 2023-11-23 17:50:15 · 476 阅读 · 0 评论 -
亿级流量架构服务降级
亿级流量架构服务降级原创 2023-11-23 17:43:29 · 174 阅读 · 0 评论 -
如何解决系统中可能存在的性能问题?
如何解决系统中可能存在的性能问题?原创 2023-10-27 08:34:47 · 710 阅读 · 0 评论 -
权重基本介绍
权重是一个相对的概念,针对某一指标而言。某一指标的权重是指该指标在整体评价中的相对重要程度。而新华词典里面的解释更为全面。权重是指权力,大权。具体分开解释为。权:职责范围内支配和指挥的力量,权力,权威。重:认为重要而认真对待:重视,尊重,器重,隆重。原创 2023-10-24 08:32:10 · 286 阅读 · 0 评论 -
CAP理论及BASE思想等
CAP理论及BASE思想等原创 2023-10-19 08:59:41 · 141 阅读 · 0 评论 -
我对程序员写注释的一点看法
你是在为公司写代码,为团队写代码,为客户写代码的话,而不是你自己一个人代码,你更应该有责任把代码写好注释,甭管您的代码水平如何,如果您写的代码可读性没那么好,没达到那种境界的话。但是话说回来,无论您的代码多么优秀,在非常重要且逻辑复杂的地方,还是要注释的,好记性不如烂笔头,这个注释以后对自己对别人都是有很大的帮助的。你代码可读性好,非常标准,别人看起来很舒服,很容易理解读懂,那当然可以不用写注释,更不用每行都写注释,代码本身就是注释,或者代码就是文档。2,代码写的好,可读性强,可以适当的少些注释;原创 2023-10-10 21:33:52 · 390 阅读 · 0 评论 -
几种软件系统集成方式详细介绍
几种软件系统集成方式详细介绍原创 2023-10-08 07:00:12 · 3681 阅读 · 0 评论 -
XA分布式事务处理
分布式事务处理是指一个事务可能涉及多个数据库操作,分布式事务处理的关键是必须有一种方法可以知道事务在任何地方所做的所有动作,提交或回滚事务的决定必须产生统一的结果(全部提交或全部回滚)。原创 2023-10-07 11:18:51 · 575 阅读 · 0 评论 -
web中缓存的几种方式
web中缓存的几种方式原创 2023-10-05 21:12:53 · 1150 阅读 · 0 评论 -
OA产品选型的指导原则
OA产品选型的指导原则原创 2023-10-05 21:01:45 · 295 阅读 · 0 评论 -
高性能高负载解决思路
高性能高负载解决思路原创 2023-10-01 10:19:40 · 620 阅读 · 0 评论 -
不同部署环境下事务特性
不同部署环境下事务特性原创 2023-10-01 09:33:55 · 147 阅读 · 0 评论 -
分库分表总结
分库分表总结原创 2023-09-30 20:06:09 · 280 阅读 · 0 评论 -
细说适配器模式
结构型模式,顾名思义讨论的是类和对象的结构,它采用继承机制来组合接口或实现,或者通过组合一些对象,从而实现新的功能。GoF23种设计模式中的结构型模式有7种,分别是适配器模式(Adapter)、装饰器模式(Decorator)、代理模式(Proxy)、外观模式(Facade)、桥接模式(Bridge)、组合模式(Composite)、享元模式(Flyweight)。原创 2023-09-28 12:08:14 · 535 阅读 · 0 评论 -
CAP理论与BASE理论
CAP理论与BASE理论原创 2023-09-28 08:58:31 · 86 阅读 · 0 评论 -
同步与异步IO、阻塞与非阻塞IO
很多时候我们常常看到同步与异步,阻塞与非阻塞的出现。有的地方直接将同步与阻塞画上了等号。异步与非阻塞画上了等号。事实上这是不对的。同步不等于阻塞,而异步也不等于非阻塞。下面就来仔细的看看同步与异步、阻塞与非阻塞的概念差别,及他们的组合应用。原创 2023-09-04 10:06:09 · 81 阅读 · 0 评论 -
聊聊架构师的能力模型
要想从一名普通程序员发展成为优秀的架构师,“个人特性”与“技术技能”缺一不可;而“技术专业能力”、“人际关系能力”和“业务能力”更是优秀架构师重要的三种能力。原创 2023-08-30 11:43:53 · 184 阅读 · 0 评论 -
Mycat事务补偿设计
在使用数据分片场景下,单库下的事务处理无法满足系统的需求,因而需要进行分布式事务处理设计。原创 2023-08-26 10:24:25 · 135 阅读 · 0 评论 -
从奥运订票系统瘫痪说起—谈FastCGI与IT架构
在说架构之前,我先说一个老的技术,FastCGI。因为这个技术在后面的结构阐述中将起到非常重要的用处,原以为应该会有不少人会知道,但后来发现好像并非如此。 关于FastCGI的历史我就不再赘述,好像自1993年便有了。目前最热门的视频网站YouTube体系结构中,就有fast-cgi的模块。它支持很多httpd服务器,在官方网站上列了很多,如apache,aXesW3 ,Microsoft IIS,Zeus,近几年才出的lighttpd没写,其实这个新的httpd也支持,但我个人觉得,支持最好的,可原创 2023-08-24 09:58:09 · 125 阅读 · 0 评论 -
Mycat跨分片Join指南
Mycat跨分片Join指南原创 2023-08-23 08:20:08 · 174 阅读 · 0 评论 -
RocketMQ与Kafka对比(18项差异)
为了方便大家选型,整理一份RocketMQ与Kafka的对比文档。原创 2023-08-22 09:23:50 · 1342 阅读 · 0 评论 -
Mysql存储引擎中InnoDB与Myisam的主要区别
在mysql命令窗口中,输入show engins,可以看到mysql的所有引擎,那么这么多的引擎,我们经常使用到的也就两种,MyISAM和InnoDB,这两种引擎究竟有什么区别呢?在mysql命令窗口中,输入show engins,可以看到mysql的所有引擎,那么这么多的引擎,我们经常使用到的也就两种,MyISAM和InnoDB,这两种引擎究竟有什么区别呢?原创 2023-08-18 08:38:10 · 196 阅读 · 0 评论 -
Web Service开发实践之开始XFire
XFire是与Axis2 并列的新一代WebService平台。之所以并称为新一代,因为它:1、支持一系列Web Service的新标准--JSR181、WSDL2.0 、JAXB2、WS-Security等;2、使用Stax解释XML,性能有了质的提高。XFire采用Woodstox 作Stax实现;3、容易上手,可以方便快速地从pojo发布服务;4、Spring的结合;5、灵活的Binding机制,包括默认的Acegis,xmlbeans,jaxb2,castor。原创 2023-08-17 08:51:21 · 244 阅读 · 0 评论 -
软件系统之间的接口方式
本文从Socket通讯,消息队列,WebService三个方面描述了软件系统之间的接口调用方式原创 2023-08-16 09:15:28 · 1344 阅读 · 0 评论 -
系统组件化接口设计
当【销售管理】项目包生成发票时,同时将【应收管理】所需的发票数据放入发票数据缓存中,然后调用发票接口程序,将数据存入【应收管理】的发票数据缓存。【应收管理】将财务生成凭证所需的发票数据放入发票数据缓存中,然后调用发票接口程序,将数据存入【总帐管理】的发票数据缓存,系统的销售凭证生成模块利用新的发票数据生成对应的销售凭证。当【应收管理】发生回款时,记录回款的同时将回款数据放入缓存中,然后调用回款接口程序,将数据存入【销售管理】项目包的回款数据中。保持各项目包间的高度独立性,包括设计的独立性和运行的独立性。原创 2023-08-16 08:58:41 · 206 阅读 · 0 评论 -
Java多线程线程间的通信—wait及notify方法
线程调用wait()方法,释放它对锁的拥有权,然后等待另外的线程来通知它(通知的方式是notify()或者notifyAll()方法),这样它才能重新获得锁的拥有权和恢复执行。比如,一个可能的情况是,一个增加线程执行的时候,其他三个线程都在wait,这时候第一个线程调用了notify()方法,其他线程都将被唤醒,然后执行各自的增加或减少方法。这种选择是随意的,和具体实现有关。另一个会导致线程暂停的方法:Thread.sleep(),它会导致线程睡眠指定的毫秒数,但线程在睡眠的过程中是不会释放掉对象的锁的。原创 2023-08-15 09:33:04 · 203 阅读 · 0 评论 -
接口设计规范
service层是每个模块逻辑处理的位置,一个service对应一个action和若干个DAO,service中每一个方法都来自页面功能的需求,所有service层的接口都必须继承自BaseService,所有方法都应当以BaseForm(或其子类)的对象作为参数,根据需要可以添加PageInfo的对象,其他参数一般不要添加。DAO层的作用是操作数据库,每一个接口对应数据库中的一个表,可以被多个service调用。DAO层接口中所有的方法都与数据库的“增删改查”相联系。获取某个相册下的所有照片。原创 2023-08-15 09:30:02 · 218 阅读 · 0 评论 -
什么是心跳功能,心跳功能如何实现
一般来说,出于效率的考虑,是由客户端主动向服务器端发包,而不是 就是在客户端和服务器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。客户端每隔一段时间发一个包,使用TCP的,用send发,使用UDP的,用sendto发,服务器收到后,就知道当前客户端还处于“活着”的状态,否则,如果隔一定时间未收到这样的包,则服务器认为客户端已经断开,进行相应的客户端断开逻辑处理。心跳包是用户数据包,与协议无关,所以会发送数据就会发送心跳包,格式自定义。原创 2023-08-14 09:20:59 · 3868 阅读 · 0 评论 -
正视架构设计的重要作用
从事过软件项目开发的专业人士都有这样的困惑:为什么到了项目接近尾声的时候,仍然还有那么多没有解决的问题?原创 2023-05-17 08:44:03 · 303 阅读 · 0 评论